diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java deleted file mode 100644 index c373083..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.controller; - - -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.neutron.service.INeutronOptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -@RequestMapping("/Neutron") -public class NeutronController { - - @Autowired - private INeutronOptService neutronOptService; - - - /** - * 中子源控制 - * - * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) - */ - @RequestMapping("/control") - @ResponseBody - public Object control(String command) { - neutronOptService.control(command); - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java deleted file mode 100644 index c373083..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.controller; - - -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.neutron.service.INeutronOptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -@RequestMapping("/Neutron") -public class NeutronController { - - @Autowired - private INeutronOptService neutronOptService; - - - /** - * 中子源控制 - * - * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) - */ - @RequestMapping("/control") - @ResponseBody - public Object control(String command) { - neutronOptService.control(command); - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java deleted file mode 100644 index aad4ab7..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.service; - -/** - * 中子源设备操作 - */ -public interface INeutronOptService { - - /** - * No.1 初始化 - * 中子源设备初始化 - * tcp控制指令表依次发送指令 1-16 - */ - void deviceInit(); - - /** - * No.2 加压,开始工作 - */ - void pressurize(); - - /** - * No.3 解析 - * 设备会在tcp上 上报数据,读取后进行解析 - */ - void analysis(String msg); - - /** - * No.4 退高压,停止工作 - */ - void depress(); - - void control(String command); - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java deleted file mode 100644 index c373083..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.controller; - - -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.neutron.service.INeutronOptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -@RequestMapping("/Neutron") -public class NeutronController { - - @Autowired - private INeutronOptService neutronOptService; - - - /** - * 中子源控制 - * - * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) - */ - @RequestMapping("/control") - @ResponseBody - public Object control(String command) { - neutronOptService.control(command); - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java deleted file mode 100644 index aad4ab7..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.service; - -/** - * 中子源设备操作 - */ -public interface INeutronOptService { - - /** - * No.1 初始化 - * 中子源设备初始化 - * tcp控制指令表依次发送指令 1-16 - */ - void deviceInit(); - - /** - * No.2 加压,开始工作 - */ - void pressurize(); - - /** - * No.3 解析 - * 设备会在tcp上 上报数据,读取后进行解析 - */ - void analysis(String msg); - - /** - * No.4 退高压,停止工作 - */ - void depress(); - - void control(String command); - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java deleted file mode 100644 index 5d4428a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.neutron.service.impl; - -import com.casic.missiles.netty.CacheUtils; -import com.casic.missiles.netty.InstructCode; -import com.casic.missiles.netty.NettyClient; -import com.casic.missiles.neutron.service.INeutronOptService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Slf4j -@Service -public class NeutronOptServiceImpl implements INeutronOptService { - - @Resource - private NettyClient nettyClient; - - @Override - public void deviceInit() { - for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { - try { - nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - @Override - public void pressurize() { - nettyClient.send(InstructCode.DAC_UP); - } - - - @Override - public void analysis(String msg) { - CacheUtils.processData(msg); - } - - @Override - public void depress() { - nettyClient.send(InstructCode.DAC_DOWN); - } - - @Override - public void control(String command) { - switch (command) { - case "init": - this.deviceInit(); - break; - case "start": - this.pressurize(); - break; - case "stop": - this.depress(); - break; - case "off": - default: - break; - } - } - - -} - - diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java deleted file mode 100644 index c373083..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.controller; - - -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.neutron.service.INeutronOptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -@RequestMapping("/Neutron") -public class NeutronController { - - @Autowired - private INeutronOptService neutronOptService; - - - /** - * 中子源控制 - * - * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) - */ - @RequestMapping("/control") - @ResponseBody - public Object control(String command) { - neutronOptService.control(command); - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java deleted file mode 100644 index aad4ab7..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.service; - -/** - * 中子源设备操作 - */ -public interface INeutronOptService { - - /** - * No.1 初始化 - * 中子源设备初始化 - * tcp控制指令表依次发送指令 1-16 - */ - void deviceInit(); - - /** - * No.2 加压,开始工作 - */ - void pressurize(); - - /** - * No.3 解析 - * 设备会在tcp上 上报数据,读取后进行解析 - */ - void analysis(String msg); - - /** - * No.4 退高压,停止工作 - */ - void depress(); - - void control(String command); - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java deleted file mode 100644 index 5d4428a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.neutron.service.impl; - -import com.casic.missiles.netty.CacheUtils; -import com.casic.missiles.netty.InstructCode; -import com.casic.missiles.netty.NettyClient; -import com.casic.missiles.neutron.service.INeutronOptService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Slf4j -@Service -public class NeutronOptServiceImpl implements INeutronOptService { - - @Resource - private NettyClient nettyClient; - - @Override - public void deviceInit() { - for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { - try { - nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - @Override - public void pressurize() { - nettyClient.send(InstructCode.DAC_UP); - } - - - @Override - public void analysis(String msg) { - CacheUtils.processData(msg); - } - - @Override - public void depress() { - nettyClient.send(InstructCode.DAC_DOWN); - } - - @Override - public void control(String command) { - switch (command) { - case "init": - this.deviceInit(); - break; - case "start": - this.pressurize(); - break; - case "stop": - this.depress(); - break; - case "off": - default: - break; - } - } - - -} - - diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 85ae239..daafafc 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8 username: root password: Casic203 jms: diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java new file mode 100644 index 0000000..8ead6a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/ConfigController.java @@ -0,0 +1,97 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 下发参数日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:06 + */ +@Controller +@RequestMapping("/config") +public class ConfigController extends BaseController { + + +// @Autowired +// private IConfigService configService; +// +// +// /** +// * 获取下发参数日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return configService.selectList(null); +// } +// +// /** +// * 获取下发参数日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = configService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增下发参数日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Config config) { +// configService.insert(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除下发参数日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String configId) { +// configService.deleteById(configId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("configIds") List configIds) { +// configService.deleteBatchIds(configIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改下发参数日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Config config) { +// configService.updateById(config); +// return SUCCESS_TIP; +// } +// +// /** +// * 下发参数日志详情 +// */ +// @RequestMapping(value = "/detail/{configId}") +// @ResponseBody +// public Object detail(@PathVariable("configId") String configId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(configService.selectById(configId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java new file mode 100644 index 0000000..cbf66a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/LogController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.ILogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 升降压操作日志控制器 + * + * @author dev + * @Date 2023-11-15 09:48:31 + */ +@Controller +@RequestMapping("/log") +public class LogController extends BaseController { + + + @Autowired + private ILogService logService; + +// +// /** +// * 获取升降压操作日志列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return logService.selectList(null); +// } +// +// /** +// * 获取升降压操作日志分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = logService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增升降压操作日志 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Log log) { +// logService.insert(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除升降压操作日志 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String logId) { +// logService.deleteById(logId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("logIds") List logIds) { +// logService.deleteBatchIds(logIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改升降压操作日志 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Log log) { +// logService.updateById(log); +// return SUCCESS_TIP; +// } +// +// /** +// * 升降压操作日志详情 +// */ +// @RequestMapping(value = "/detail/{logId}") +// @ResponseBody +// public Object detail(@PathVariable("logId") String logId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(logService.selectById(logId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java new file mode 100644 index 0000000..f08576b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/NeutronController.java @@ -0,0 +1,58 @@ +package com.casic.missiles.modular.neutron.controller; + + +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.model.response.dto.ResponseDataDTO; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Api(tags = "探测器管理(包括控制)") +@Controller +@RequestMapping("/Neutron") +public class NeutronController { + + @Autowired + private INeutronOptService neutronOptService; + @Autowired + private IPsdService iPsdService; + + /** + * 中子源控制 + * + * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) + */ + @ApiOperation("控制指令类型(start-加压开始工作,stop-退高压,停止工作") + @RequestMapping("/control") + @ResponseBody + public ResponseDataDTO control(String command) { + //toDo:需要加返回值 + neutronOptService.control(command); + return ResponseDataDTO.success(); + } + + @ApiOperation("控制台中告警列表,需传taskId") + @RequestMapping("/alarmList") + @ResponseBody + public ResponseDataDTO alarmList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.getPsdAlarm(taskId)); + } + + + @ApiOperation("控制台曲线显示,需传taskId") + @RequestMapping("/dataList") + @ResponseBody + public ResponseDataDTO dataList(Long taskId) { + + return ResponseDataDTO.success(iPsdService.dataList(taskId)); + } + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java new file mode 100644 index 0000000..32a300d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/PsdController.java @@ -0,0 +1,96 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IPsdService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器PSD数据控制器 + * + * @author dev + * @Date 2023-11-13 09:57:01 + */ +@Controller +@RequestMapping("/psd") +public class PsdController extends BaseController { + + + @Autowired + private IPsdService psdService; + + +// /** +// * 获取探测器PSD数据列表 +// */ +// @RequestMapping(value = "/list") +// @ResponseBody +// public Object list(String condition) { +// return psdService.selectList(null); +// } +// +// /** +// * 获取探测器PSD数据分页列表 +// */ +// @RequestMapping(value = "/listPage") +// @ResponseBody +// public Object listPage(String condition) { +// Page page = new PageFactory().defaultPage(); +// EntityWrapper query = new EntityWrapper<>(); +// page = psdService.selectPage(page,query); +// return super.packForBT(page); +// } +// /** +// * 新增探测器PSD数据 +// */ +// @RequestMapping(value = "/add") +// @ResponseBody +// public Object add(Psd psd) { +// psdService.insert(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 删除探测器PSD数据 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String psdId) { +// psdService.deleteById(psdId); +// return SUCCESS_TIP; +// } +// +// /** +// * 批量删除 +// */ +// @RequestMapping(value = "/batchDelete") +// @ResponseBody +// public Object delete(@RequestParam("psdIds") List psdIds) { +// psdService.deleteBatchIds(psdIds); +// return SUCCESS_TIP; +// } +// +// /** +// * 修改探测器PSD数据 +// */ +// @RequestMapping(value = "/update") +// @ResponseBody +// public Object update(Psd psd) { +// psdService.updateById(psd); +// return SUCCESS_TIP; +// } +// +// /** +// * 探测器PSD数据详情 +// */ +// @RequestMapping(value = "/detail/{psdId}") +// @ResponseBody +// public Object detail(@PathVariable("psdId") String psdId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(psdService.selectById(psdId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java new file mode 100644 index 0000000..c9d0ca8 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/controller/VolController.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.neutron.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 探测器电压数据控制器 + * + * @author dev + * @Date 2023-11-13 09:56:36 + */ +@Controller +@RequestMapping("/vol") +public class VolController extends BaseController { + + + @Autowired + private IVolService volService; + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java new file mode 100644 index 0000000..fc5fe1b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/ConfigMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器参数下发记录 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ConfigMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java new file mode 100644 index 0000000..d3aedd4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/LogMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器升降压操作日志 Mapper 接口 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface LogMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java new file mode 100644 index 0000000..04e0ef5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/PsdMapper.java @@ -0,0 +1,29 @@ +package com.casic.missiles.modular.neutron.dao; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + *

+ * 探测器psd数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface PsdMapper extends BaseMapper { + + List getPsdAlarm(@Param("startTime") String startTime, + @Param("robotId") Long robotId); + + List getPsdData(@Param("startTime") String startTime, + @Param("endTime") String endTime, + @Param("robotId") Long robotId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java new file mode 100644 index 0000000..6a39270 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/VolMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.dao; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 探测器电压数据 Mapper 接口 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface VolMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml new file mode 100644 index 0000000..5a02cdb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/ConfigMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_6 AS vol6, RAW_TRIG AS rawTrig, RAW_PERIOD AS rawPeriod, RAW_VTH AS rawVth, RAW_SAMPLE AS rawSample, PSD_E AS psdE, PSD_TRIG AS psdTrig, PSD_PERIOD AS psdPeriod, PSD_VTH AS psdVth, PSD_OFFSET AS psdOffset, PSD_LONG_GATE AS psdLongGate, PSD_SHORT_GATE AS psdShortGate, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml new file mode 100644 index 0000000..6d3190f --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/LogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, INCREASE_TIME AS increaseTime, DECREASE_TIME AS decreaseTime, STATUS AS status, CHANNEL AS channel, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml new file mode 100644 index 0000000..5ac549c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/PsdMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + ID + AS id, DETECTOR_ID AS detectorId, GATE_OFFET AS gateOffet, BASE_LINE AS baseLine, SHORT_GATE AS shortGate, QLONG AS qlong, LONG_GATE AS longGate, QSHORT AS qshort, CREATE_TIME AS createTime, DESCRIPTION AS description + + + + + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml new file mode 100644 index 0000000..9d256bb --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dao/mapping/VolMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + ID AS id, DETECTOR_ID AS detectorId, VOL_DATA1 AS volData1, VOL_DATA2 AS volData2, VOL_DATA3 AS volData3, VOL_DATA4 AS volData4, VOL_DATA5 AS volData5, VOL_DATA6 AS volData6, CREATE_TIME AS createTime, DESCRIPTION AS description + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java new file mode 100644 index 0000000..0054993 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdAlarmDTO.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdAlarmDTO { + + @ApiModelProperty(value = "设备名称", dataType = "String") + private String deviceName; + @ApiModelProperty(value = "任务类型", dataType = "String") + private String taskType; + @ApiModelProperty(value = "识别类型", dataType = "String") + private String discernType; + @ApiModelProperty(value = "告警次数", dataType = "String") + private String count; + @ApiModelProperty(value = "告警X值", dataType = "String") + private String alarmX; + @ApiModelProperty(value = "告警y值", dataType = "String") + private String alarmY; + @ApiModelProperty(value = "告警时间", dataType = "String") + private String alarmTime; + + public PsdAlarmDTO() { + } + + public PsdAlarmDTO(String deviceName, String taskType, + String discernType, String count, + String alarmX, String alarmY, + String alarmTime) { + this.deviceName = deviceName; + this.taskType = taskType; + this.discernType = discernType; + this.count = count; + this.alarmX = alarmX; + this.alarmY = alarmY; + this.alarmTime = alarmTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java new file mode 100644 index 0000000..edf8d19 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/dto/PsdDataDTO.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * psd报警DTO + */ +@Data +public class PsdDataDTO { + + @ApiModelProperty(value = "中子数量", dataType = "String") + private String valueCount; + @ApiModelProperty(value = "时间值", dataType = "String") + private String timeCount; + + public PsdDataDTO() { + } + + public PsdDataDTO(String valueCount, String timeCount) { + this.valueCount = valueCount; + this.timeCount = timeCount; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java new file mode 100644 index 0000000..720460d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Config.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器参数下发记录 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_config") +@ApiModel(value = "配置信息对象", description = "配置信息记录表") +public class Config extends Model { + + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "降压时间") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + + private Long detectorId; + /** + * 高压参数 + */ + @ApiModelProperty(value = "高压参数") + @TableField("VOL_6") + private String vol6; + /** + * 高速-波形采样-触发方式 + */ + @TableField("RAW_TRIG") + @ApiModelProperty(value = "高速-波形采样-触发方式") + private String rawTrig; + /** + * 高速-波形采样-触发周期 + */ + @TableField("RAW_PERIOD") + @ApiModelProperty(value = "高速-波形采样-触发周期") + private String rawPeriod; + /** + * 高速-波形采样-触发阈值 + */ + @TableField("RAW_VTH") + @ApiModelProperty(value = "高速-波形采样-触发阈值") + private String rawVth; + /** + * 高速-波形采样-采取点数 + */ + @TableField("RAW_SAMPLE") + @ApiModelProperty(value = "高速-波形采样-采取点数") + private String rawSample; + /** + * 高速-波形甑别-E最大值 + */ + @TableField("PSD_E") + @ApiModelProperty(value = "高速-波形甑别-E最大值") + private String psdE; + /** + * 高速-波形甑别-触发方式 + */ + @TableField("PSD_TRIG") + @ApiModelProperty(value = "高速-波形甑别-触发方式") + private String psdTrig; + /** + * 高速-波形甑别-触发周期 + */ + @TableField("PSD_PERIOD") + @ApiModelProperty(value = " 高速-波形甑别-触发周期") + private String psdPeriod; + /** + * 高速-波形甑别-触发阈值 + */ + @TableField("PSD_VTH") + @ApiModelProperty(value = "高速-波形甑别-触发阈值") + private String psdVth; + /** + * 高速-波形甑别-门偏移 + */ + @TableField("PSD_OFFSET") + @ApiModelProperty(value = "高速-波形甑别-门偏移") + private String psdOffset; + /** + * 高速-波形甑别-长门 + */ + @TableField("PSD_LONG_GATE") + @ApiModelProperty(value = "高速-波形甑别-长门") + private String psdLongGate; + /** + * 高速-波形甑别-短门 + */ + @TableField("PSD_SHORT_GATE") + @ApiModelProperty(value = "高速-波形甑别-短门") + private String psdShortGate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty(value = "时间") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + @ApiModelProperty(value = "备注") + private String description; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java new file mode 100644 index 0000000..b128e3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Log.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 探测器升降压操作日志 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Data +@TableName("detector_log") +@ApiModel(value = "探测器升降压操作日志", description = "探测器升降压操作日志") +public class Log extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ApiModelProperty(value = "主键") + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @ApiModelProperty(value = "探测器id") + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 升压时间 + */ + @ApiModelProperty(value = "升压时间") + @TableField("INCREASE_TIME") + private String increaseTime; + /** + * 降压时间 + */ + @ApiModelProperty(value = "降压时间") + @TableField("DECREASE_TIME") + private String decreaseTime; + /** + * 当前状态 + */ + @ApiModelProperty(value = "当前状态") + @TableField("STATUS") + private String status; + /** + * 通道号 + */ + @ApiModelProperty(value = "通道号") + @TableField("CHANNEL") + private String channel; + /** + * 时间 + */ + @ApiModelProperty(value = "时间") + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField("DESCRIPTION") + private String description; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java new file mode 100644 index 0000000..e54ac10 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Psd.java @@ -0,0 +1,74 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器psd数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_psd") +public class Psd extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + @TableField("GATE_OFFET") + private String gateOffet; + @TableField("BASE_LINE") + private String baseLine; + @TableField("SHORT_GATE") + private String shortGate; + @TableField("QLONG") + private String qlong; + @TableField("LONG_GATE") + private String longGate; + @TableField("QSHORT") + private String qshort; + @TableField("PSD") + private String psd; + @TableField("IP_PORT") + private String ipPort; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + + + public Psd() { + } + + public Psd(Long detectorId, String gateOffet, String baseLine, String shortGate, String longGate, String qlong, String qshort, String createTime) { + this.detectorId = detectorId; + this.gateOffet = gateOffet; + this.baseLine = baseLine; + this.shortGate = shortGate; + this.qlong = qlong; + this.longGate = longGate; + this.qshort = qshort; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java new file mode 100644 index 0000000..ef4fc59 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/model/Vol.java @@ -0,0 +1,69 @@ +package com.casic.missiles.modular.neutron.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + *

+ * 探测器电压数据 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Data +@TableName("detector_vol") +public class Vol extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 探测器id + */ + @TableField("DETECTOR_ID") + private Long detectorId; + /** + * 电压数据 + */ + @TableField("VOL_DATA1") + private String volData1; + @TableField("VOL_DATA2") + private String volData2; + @TableField("VOL_DATA3") + private String volData3; + @TableField("VOL_DATA4") + private String volData4; + @TableField("VOL_DATA5") + private String volData5; + @TableField("VOL_DATA6") + private String volData6; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; + /** + * 备注 + */ + @TableField("DESCRIPTION") + private String description; + @TableField("IP_PORT") + private String ipPort; + + public Vol() { + } + + public Vol(Long detectorId, String volData6, String createTime) { + this.detectorId = detectorId; + this.volData6 = volData6; + this.createTime = createTime; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java new file mode 100644 index 0000000..f5a5336 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IConfigService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Config; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器参数下发记录 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface IConfigService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java new file mode 100644 index 0000000..357beef --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/ILogService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Log; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器升降压操作日志 服务类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +public interface ILogService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java new file mode 100644 index 0000000..cf1b357 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/INeutronOptService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; + +import java.util.List; + +/** + * 中子源设备操作 + */ +public interface INeutronOptService { + + /** + * No.1 初始化 + * 中子源设备初始化 + * tcp控制指令表依次发送指令 1-16 + */ + void deviceInit(); + + /** + * No.2 加压,开始工作 + */ + void pressurize(); + + /** + * No.3 解析 + * 设备会在tcp上 上报数据,读取后进行解析 + */ + void analysis(String deviceIpPort,String msg); + + /** + * No.4 退高压,停止工作 + */ + void depress(); + + void control(String command); + + List alarmList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java new file mode 100644 index 0000000..321336b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IPsdService.java @@ -0,0 +1,24 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 探测器psd数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IPsdService extends IService { + + List getPsdAlarm(Long taskId); + + List dataList(Long taskId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java new file mode 100644 index 0000000..d4a6b0c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/IVolService.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.neutron.service; + +import com.casic.missiles.modular.neutron.model.Vol; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 探测器电压数据 服务类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +public interface IVolService extends IService { + + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..cbb63a7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/ConfigServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Config; +import com.casic.missiles.modular.neutron.dao.ConfigMapper; +import com.casic.missiles.modular.neutron.service.IConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器参数下发记录 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class ConfigServiceImpl extends ServiceImpl implements IConfigService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..8abe7c4 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/LogServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.casic.missiles.modular.neutron.model.Log; +import com.casic.missiles.modular.neutron.dao.LogMapper; +import com.casic.missiles.modular.neutron.service.ILogService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器升降压操作日志 服务实现类 + *

+ * + * @author casic203123 + * @since 2023-11-15 + */ +@Service +public class LogServiceImpl extends ServiceImpl implements ILogService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java new file mode 100644 index 0000000..cc17fc7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -0,0 +1,105 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.INeutronOptService; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.neutron.service.IVolService; +import com.casic.missiles.netty.CacheUtils; +import com.casic.missiles.netty.InstructCode; +import com.casic.missiles.netty.NettyClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class NeutronOptServiceImpl implements INeutronOptService { + + @Resource + private NettyClient nettyClient; + @Resource + private IPsdService iPsdService; + @Resource + private IVolService iVolService; + + @Override + public void deviceInit() { + for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { + try { + nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void pressurize() { + nettyClient.send(InstructCode.DAC_UP); + } + + + @Override + public void analysis(String deviceIpPort, String msg) { + Map resultMap = CacheUtils.processData(msg); + List psdList = (List) resultMap.get("psd"); + List volList = (List) resultMap.get("vol"); + if (psdList != null && psdList.size() > 0) { + psdList.forEach(psd -> { + psd.setIpPort(deviceIpPort.substring(1)); + if (ObjectUtil.isAllNotEmpty(psd.getBaseLine(), psd.getLongGate(), + psd.getQlong(), psd.getShortGate(), psd.getQshort())) { + Long Qlong = Math.abs(Long.valueOf(psd.getQlong(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getLongGate(), 16)); + Long Qshort = Math.abs(Long.valueOf(psd.getQshort(),16) - Long.parseLong(psd.getBaseLine(), 16) * Long.parseLong(psd.getShortGate(), 16)); + Double psdRate = (Qlong - Qshort) * 1.000 / Qlong; + psd.setPsd(String.format("%.2f", psdRate)); + } + }); + iPsdService.saveBatch(psdList); + } + if (volList != null && volList.size() > 0) { + volList.forEach(vol -> { + vol.setIpPort(deviceIpPort.substring(1)); + }); + iVolService.saveBatch(volList); + } + } + + @Override + public void depress() { + nettyClient.send(InstructCode.DAC_DOWN); + } + + @Override + public void control(String command) { + switch (command) { + case "init": + this.deviceInit(); + break; + case "start": + this.pressurize(); + break; + case "stop": + this.depress(); + break; + case "off": + default: + break; + } + } + + @Override + public List alarmList(Long taskId) { + + return iPsdService.getPsdAlarm(taskId); + } +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java new file mode 100644 index 0000000..8a20e31 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -0,0 +1,114 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.modular.neutron.dao.PsdMapper; +import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; +import com.casic.missiles.modular.neutron.dto.PsdDataDTO; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; +import com.casic.missiles.modular.robot.model.TaskInfo; +import com.casic.missiles.modular.robot.service.IRobotInfoService; +import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; +import com.casic.missiles.modular.robot.service.ITaskInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 探测器psd数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class PsdServiceImpl extends ServiceImpl implements IPsdService { + + @Autowired + private ITaskInfoService iTaskInfoService; + @Autowired + private IRobotTrajectoryInfoService trajectoryInfoService; + @Autowired + private AbstractDictService dictService; + @Autowired + private IRobotInfoService robotInfoService; + + + @Override + public List dataList(Long taskId) { + List psdDataDTOS = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + String endTime = ObjectUtil.isNotEmpty(taskInfo.getEndTime()) ? DateUtil.formatDateTime(taskInfo.getEndTime()) : taskInfo.getEndTime() + ""; + Long robotId = taskInfo.getRobotId(); + List psdDataDTOList = this.baseMapper.getPsdData(startTime, endTime, robotId); + if (ObjectUtil.isNotEmpty(psdDataDTOList)) { + PsdDataDTO last = psdDataDTOList.get(psdDataDTOList.size() - 1); + long countX = DateUtil.between(DateUtil.parseDateTime(last.getTimeCount()), DateUtil.parseDateTime(startTime), DateUnit.SECOND, true); + for (int i = 0; i <= countX / 5; i++) { + if (i == 0) { + psdDataDTOS.add(new PsdDataDTO("0", "0")); + continue; + } + int countY = 0; + PsdDataDTO psdDataDTO = new PsdDataDTO(countY + "", (i * 5) + ""); + for (PsdDataDTO r : psdDataDTOList) { + if (ObjectUtil.isNotEmpty(r.getTimeCount())) { + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + break; + } + if (DateUtil.parseDateTime(r.getTimeCount()).isAfter(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i))) && + DateUtil.parseDateTime(r.getTimeCount()).isBefore(DateUtil.offsetSecond(DateUtil.parseDateTime(startTime), 5 * (i + 1)))) { + countY += Long.valueOf(r.getValueCount()); + } + } + } + psdDataDTO.setValueCount((int) Math.ceil(countY / 5) + ""); + psdDataDTOS.add(psdDataDTO); + } + } + } + return psdDataDTOS; + } + + @Override + public List getPsdAlarm(Long taskId) { + List psdAlarmDTOList = new ArrayList<>(); + TaskInfo taskInfo = iTaskInfoService.getById(taskId); + if (ObjectUtil.isNotEmpty(taskInfo)) { + String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; + Long robotId = taskInfo.getRobotId(); + RobotInfo robotInfo = robotInfoService.getById(robotId); + //查询满足13个中子的时间 + List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); + if (ObjectUtil.isNotEmpty(alarmTimeList) && alarmTimeList.size() >= 13) { + String alarmTime = alarmTimeList.get(12); + //用这个时间取查询最近的巡检点位 + RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); + if (ObjectUtil.isNotEmpty(trajectoryInfo)) { + psdAlarmDTOList.add(new PsdAlarmDTO(null != robotInfo ? robotInfo.getRobotName() : "", + ObjectUtil.isNotEmpty(taskInfo.getTaskType()) ? dictService.getDictNameByCode("taskType", taskInfo.getTaskType() + "") : "", + ObjectUtil.isNotEmpty(taskInfo.getDiscernType()) ? dictService.getDictNameByCode("discernType", taskInfo.getDiscernType() + "") : "", + "13", + trajectoryInfo.getPostionX() + "", + trajectoryInfo.getPostionY() + "", + alarmTime)); + return psdAlarmDTOList; + + } + } + } + return psdAlarmDTOList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java new file mode 100644 index 0000000..2bef02e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/VolServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.neutron.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.neutron.dao.VolMapper; +import com.casic.missiles.modular.neutron.model.Vol; +import com.casic.missiles.modular.neutron.service.IVolService; +import org.springframework.stereotype.Service; + +/** + *

+ * 探测器电压数据 服务实现类 + *

+ * + * @author casic123 + * @since 2023-11-13 + */ +@Service +public class VolServiceImpl extends ServiceImpl implements IVolService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java index c9d65d4..c80adf9 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotTrajectoryInfoService.java @@ -30,4 +30,12 @@ * @param message 消息体 */ void savePoseMessage(String robotId, MqttMessage message); + + /** + * 根据时间和机器人id查询 + * @param time 时间 + * @param robotId 机器人id + * @return + */ + RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time,Long robotId); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 4de13dc..286977e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -49,4 +49,15 @@ info.setTheta(dto.getTheta()); } } + + @Override + public RobotTrajectoryInfo getRobotTrajectoryInfoByTime(String time, Long robotId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("robot_id", robotId); + queryWrapper.ge("create_time", time); + queryWrapper.orderByAsc("create_time"); + queryWrapper.last("limit 1"); + List list = this.baseMapper.selectList(queryWrapper); + return list != null && list.size() > 0 ? list.get(0) : null; + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 99560bb..8b9aaf2 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -1,15 +1,15 @@ package com.casic.missiles.netty; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.neutron.model.Psd; +import com.casic.missiles.modular.neutron.model.Vol; import lombok.extern.slf4j.Slf4j; import net.jodah.expiringmap.ExpirationPolicy; import net.jodah.expiringmap.ExpiringMap; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @@ -102,23 +102,25 @@ public static void main(String[] args) { String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - msg="55aa55aa4dfccf1a2c000000"; - msg="22"; - String[] arr =msg.split(InstructCode.PSD1_HEAD); + + String[] arr = msg.split(InstructCode.PSD1_HEAD); + + + Double psdRate=(1234L-867L)*1.000/1234L; System.out.println(arr); } //解析PSD数据 - public static void processPSD(String msgT) { - + public static List processPSD(String msgT) { + List psdList = new ArrayList<>(); String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); - for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ - msg=InstructCode.PSD1_HEAD+msg; + for (int j = 0; j < msgArr.length; j++) { + String msg = msgArr[j]; + if (msgArr.length > 1 && ObjectUtil.isNotEmpty(msgArr[j]) && j > 0) { + msg = InstructCode.PSD1_HEAD + msg; } - if(ObjectUtil.isNotEmpty(msg)){ + if (ObjectUtil.isNotEmpty(msg)) { // 1、处理 PSD数据 if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { @@ -137,13 +139,14 @@ String longGate = msgi.substring(28, 32); String qlong = msgi.substring(48, 56); String qshort = msgi.substring(56, 64); - //toDo:算法计算 log.info("gateOff--->" + gateOff + "baseline--->" + baseline + "shortGate--->" + shortGate + "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } else { @@ -181,6 +184,7 @@ "longGate--->" + longGate + "qlong--->" + qlong + "qshort--->" + qshort); + psdList.add(new Psd(1L, gateOff, baseline, shortGate, longGate, qlong, qshort, DateUtil.formatDateTime(new Date()))); } } } @@ -190,10 +194,13 @@ } } + return psdList; + } //解析电压数据 - public static void processVOL(String msg) { + public static List processVOL(String msg) { + List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { //完整包处理 @@ -204,6 +211,7 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } else { //分包处理,先放到缓存 VOL_FLAG = true; @@ -222,18 +230,28 @@ //本设备只用到第6通道 String vol6 = volArr[5]; log.info("分包第6通道电压值-------->" + vol6); + volList.add(new Vol(1L, Long.parseLong(vol6,16)+"", DateUtil.formatDateTime(new Date()))); } } + return volList; } - public static void processData(String msg) { + public static Map processData(String msg) { + + Map resultMap = new HashMap<>(); //解析PSD数据 - processPSD(msg); + List psdList = processPSD(msg); //解析电压数据 - processVOL(msg); + List volList = processVOL(msg); + + resultMap.put("psd", psdList); + + resultMap.put("vol", volList); + + return resultMap; } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java new file mode 100644 index 0000000..24ec5a5 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -0,0 +1,78 @@ +package com.casic.missiles.netty; + + +import io.netty.channel.Channel; +import io.netty.channel.group.ChannelGroup; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ConcurrentHashMap; + +@Configuration +public class ChannelCache { + + // 存储所有Channel + private ChannelGroup channelGroup = new DefaultChannelGroup("channelGroups", GlobalEventExecutor.INSTANCE); + + // 存储Channel.id().asLongText()和用户id对应关系 + private ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); + + public ChannelGroup getChannelGroup() { + return channelGroup; + } + + public ConcurrentHashMap getChannelIdUid() { + return channelIdUid; + } + + + /** + * 获取Channel + * + * @return + */ + public Channel getChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + return channel_; + } + return null; + } + + /** + * 添加Channel到ChannelGroup + * + * @param uid + * @param channel + */ + public void addChannel(Channel channel, int uid) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ == null) { + channelGroup.add(channel); + } + + // redis添加对应用户和channelId之前的关系 + Integer userId = channelIdUid.get(channel.id().asLongText()); + channelIdUid.put(channel.id().asLongText(), userId); + } + + /** + * 删除Channel + * + * @param channel + */ + public void removeChannel(Channel channel) { + Channel channel_ = channelGroup.find(channel.id()); + if (channel_ != null) { + channelGroup.remove(channel_); + } + Integer userId = channelIdUid.get(channel.id().asLongText()); + if (userId != null) { + channelIdUid.remove(channel.id().asLongText()); + } + } + +} + + diff --git a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java index 5c61759..7755979 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/InstructCode.java @@ -9,32 +9,32 @@ * 设备初始化时需要依次发送1~16号指令 */ public static String[] InitCodeArr = { - "1", "设置高压", "set set_voltage 6 1.2\\n", - "2", "复位adc", "cmd set_adc_delay_rst 1 0\\n", - "3", "逻辑复位", "cmd set_logic_rst 1 0\\n", - "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\\n", - "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\\n", - "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\\n", - "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\\n", - "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\\n", - "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\\n", - "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\\n", - "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\\n", - "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\\n", - "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\\n", - "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\\n", - "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\\n", - "16", "取消逻辑复位", "cmd set_logic_rst 0 0\\n" + "1", "设置高压", "set set_voltage 6 1.2\n", + "2", "复位adc", "cmd set_adc_delay_rst 1 0\n", + "3", "逻辑复位", "cmd set_logic_rst 1 0\n", + "4", "设置波形采样触发方式为下降沿", "cmd set_raw_trig_sel_adc2 3 0\n", + "5", "设置波形采样触发周期", "cmd set_raw_trig_period_adc2 255 0\n", + "6", "设置波形采样触发阈值", "cmd set_raw_trig_vth_adc2 1911 0\n", + "7", "设置波形采样点数", "cmd set_raw_sample_len_adc2 2000 0\n", + "8", "设置波形甄别触发方式", "cmd set_psd_trig_sel 3 0\n", + "9", "设置波形甄别触发周期", "cmd set_psd_trig_period 100 0\n", + "10", "设置波形甄别触发阈值", "cmd set_psd_trig_vth 1911 0\n", + "11", "设置波形甄别门偏移", "cmd set_psd_gate_offset 12 0\n", + "12", "设置波形甄别延迟", "cmd set_adc2_delay_num 20 0\n", + "13", "设置波形甄别长门", "cmd set_psd_long_gate 112 0\n", + "14", "设置波形甄别短门", "cmd set_psd_short_gate 27 0\n", + "15", "取消复位adc", "cmd set_adc_delay_rst 0 0\n", + "16", "取消逻辑复位", "cmd set_logic_rst 0 0\n" }; /** * 加高压指令 */ - public static final String DAC_UP = "cmd dac_up 0 0\\n"; + public static final String DAC_UP = "cmd dac_up 0 0\n"; /** * 关闭高压指令 */ - public static final String DAC_DOWN = "cmd dac_down 0 0\\n"; + public static final String DAC_DOWN = "cmd dac_down 0 0\n"; /** * ` diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index a3f0167..4e612df 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -24,6 +24,8 @@ private final EventLoopGroup group = new NioEventLoopGroup(); private ChannelFuture mChannelFuture = null; private final ThreadLocal mChannel = new ThreadLocal<>(); +// private final ThreadLocalMap threadLocalMap = new ThreadLocalMap; +// ThreadLocalMap @Resource private NettyClientHandler nettyClientHandler; diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index 08abcc9..499795f 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -1,8 +1,7 @@ package com.casic.missiles.netty; -import com.casic.missiles.neutron.service.INeutronOptService; -import com.casic.missiles.neutron.service.impl.NeutronOptServiceImpl; +import com.casic.missiles.modular.neutron.service.INeutronOptService; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -25,7 +24,7 @@ // ctx.channel().writeAndFlush(String.format("server write:%s", msg)); //解析数据 try { - neutronOptService.analysis(msg.toString()); + neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString()); }catch (Exception e){ e.printStackTrace(); } diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java b/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java deleted file mode 100644 index c373083..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/controller/NeutronController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.controller; - - -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.neutron.service.INeutronOptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -@RequestMapping("/Neutron") -public class NeutronController { - - @Autowired - private INeutronOptService neutronOptService; - - - /** - * 中子源控制 - * - * @param command 控制指令类型(start-加压开始工作,stop-退高压,停止工作) - */ - @RequestMapping("/control") - @ResponseBody - public Object control(String command) { - neutronOptService.control(command); - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java deleted file mode 100644 index aad4ab7..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/INeutronOptService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.casic.missiles.neutron.service; - -/** - * 中子源设备操作 - */ -public interface INeutronOptService { - - /** - * No.1 初始化 - * 中子源设备初始化 - * tcp控制指令表依次发送指令 1-16 - */ - void deviceInit(); - - /** - * No.2 加压,开始工作 - */ - void pressurize(); - - /** - * No.3 解析 - * 设备会在tcp上 上报数据,读取后进行解析 - */ - void analysis(String msg); - - /** - * No.4 退高压,停止工作 - */ - void depress(); - - void control(String command); - -} diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java deleted file mode 100644 index 5d4428a..0000000 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.casic.missiles.neutron.service.impl; - -import com.casic.missiles.netty.CacheUtils; -import com.casic.missiles.netty.InstructCode; -import com.casic.missiles.netty.NettyClient; -import com.casic.missiles.neutron.service.INeutronOptService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Slf4j -@Service -public class NeutronOptServiceImpl implements INeutronOptService { - - @Resource - private NettyClient nettyClient; - - @Override - public void deviceInit() { - for (int i = 1; i <= InstructCode.InitCodeArr.length / 3; i++) { - try { - nettyClient.send(InstructCode.InitCodeArr[i * 3 - 1]); - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - @Override - public void pressurize() { - nettyClient.send(InstructCode.DAC_UP); - } - - - @Override - public void analysis(String msg) { - CacheUtils.processData(msg); - } - - @Override - public void depress() { - nettyClient.send(InstructCode.DAC_DOWN); - } - - @Override - public void control(String command) { - switch (command) { - case "init": - this.deviceInit(); - break; - case "start": - this.pressurize(); - break; - case "stop": - this.depress(); - break; - case "off": - default: - break; - } - } - - -} - - diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 85ae239..daafafc 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,7 +4,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8 username: root password: Casic203 jms: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index ca932a2..c2372d1 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -37,7 +37,7 @@ session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 session-validation-interval: 900 #多久检测一次失效的session(只在单机环境下生效) 单位:秒 no-login-urls: /user/login,/kaptcha,/config/baseConfig - hiklib: D:\workspace\server\keti\casic-robot-inspection\casic-web\src\main\resources\config\hiklib\HCNetSDK.dll + hiklib: D:\code\robot\casic-robot-inspection\casic-web\src\main\resources\config\hiklib\HCNetSDK.dll config: export-path: D:\java\boot\guns-web-1.0.0-SNAPSHOT\export\ config-path: E:\Develop\IdeaProject\smartcity\casic-smartcity-dcms\casic-web\src\main\resources\config\