package com.moral.api.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Device; import com.moral.api.entity.SpecialDevice; import com.moral.api.entity.Version; import com.moral.api.service.DeviceService; import com.moral.api.service.SpecialDeviceService; import com.moral.api.service.VersionService; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import com.moral.util.WebUtils; @Slf4j @Api(tags = {"设备管理"}) @RestController @RequestMapping(value = "/device") public class DeviceController { @Autowired private DeviceService deviceService; @Autowired private VersionService versionService; @Autowired private SpecialDeviceService specialDeviceService; @ApiOperation(value = "添加设备", notes = "添加设备") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "insert", method = RequestMethod.POST) public ResultMessage insert(@RequestBody Device device) { String name = device.getName(); String mac = device.getMac(); Integer monitorPointId = device.getMonitorPointId(); Integer versionId = device.getDeviceVersionId(); if (name == null || mac == null || monitorPointId == null || versionId == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } //判断mac是否已存在,普通设备表和特殊设备表都要判断 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE); QueryWrapper specialDeviceQueryWrapper = new QueryWrapper<>(); queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE); if (deviceService.getOne(queryWrapper) != null || specialDeviceService.getOne(specialDeviceQueryWrapper) != null) { return ResultMessage.fail(ResponseCodeEnum.MAC_IS_EXIST.getCode(), ResponseCodeEnum.MAC_IS_EXIST.getMsg()); } deviceService.insert(device); return ResultMessage.ok(); } @ApiOperation(value = "删除设备", notes = "删除设备") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "delete", method = RequestMethod.GET) public ResultMessage delete(Integer deviceId) { if (deviceId == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } deviceService.delete(deviceId); return ResultMessage.ok(); } @ApiOperation(value = "修改设备", notes = "修改设备") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "update", method = RequestMethod.POST) public ResultMessage update(@RequestBody Device device) { if (device.getId() == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } if (device.getMac() != null) { //判断mac是否已存在,普通设备表和特殊设备表都要判断 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE); QueryWrapper specialDeviceQueryWrapper = new QueryWrapper<>(); queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE); if (deviceService.getOne(queryWrapper) != null || specialDeviceService.getOne(specialDeviceQueryWrapper) != null) { return ResultMessage.fail(ResponseCodeEnum.MAC_IS_EXIST.getCode(), ResponseCodeEnum.MAC_IS_EXIST.getMsg()); } } deviceService.update(device); return ResultMessage.ok(); } @ApiOperation(value = "分页设备列表", notes = "分页设备列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "order", value = "排序字段", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "orderType", value = "排序类型,升序:0,降序:1", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), @ApiImplicitParam(name = "name", value = "设备名称模糊查询", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "mac", value = "mac模糊查询", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "organizationId", value = "根据组织查询", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "monitorPointId", value = "站点id", required = false, paramType = "query", dataType = "String") }) @RequestMapping(value = "select", method = RequestMethod.GET) public ResultMessage select(HttpServletRequest request) { Map parameters = WebUtils.getParametersStartingWith(request, null); Map result = deviceService.selectDevices(parameters); return ResultMessage.ok(result); } @ApiOperation(value = "所有组织", notes = "所有组织") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "allOrganization", method = RequestMethod.GET) public ResultMessage selectAllOrganization() { List> organizations = deviceService.selectAllOrganization(); return ResultMessage.ok(organizations); } @ApiOperation(value = "所有站点", notes = "所有站点") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "allMonitorPoint", method = RequestMethod.GET) public ResultMessage selectAllMonitorPoint() { List> organizations = deviceService.selectAllMonitorPoint(); return ResultMessage.ok(organizations); } @ApiOperation(value = "根据组织查站点", notes = "根据组织查站点") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "monitorPoints", method = RequestMethod.GET) public ResultMessage selectMonitorPoints(Integer orgId) { List> monitorPoints = deviceService.selectMonitorsByOrgId(orgId); return ResultMessage.ok(monitorPoints); } @ApiOperation(value = "根据组织查设备", notes = "根据组织查设备") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "order", value = "排序字段", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "orderType", value = "排序类型,升序:0,降序:1", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), @ApiImplicitParam(name = "organizationId", value = "组织id", required = false, paramType = "query", dataType = "int"), }) @RequestMapping(value = "devicesByOrgId", method = RequestMethod.GET) public ResultMessage selectDevicesByOrg(HttpServletRequest request) { Map parameters = WebUtils.getParametersStartingWith(request, null); if (parameters.get("organizationId") == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } Map devices = deviceService.selectDevicesByOrgId(parameters); return ResultMessage.ok(devices); } @ApiOperation(value = "根据站点查设备", notes = "根据站点查设备") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "order", value = "排序字段", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "orderType", value = "排序类型,升序:0,降序:1", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), @ApiImplicitParam(name = "monitorPointId", value = "站点id", required = false, paramType = "query", dataType = "int"), }) @RequestMapping(value = "devicesByMpId", method = RequestMethod.GET) public ResultMessage selectDevicesByMp(HttpServletRequest request) { Map parameters = WebUtils.getParametersStartingWith(request, null); if (parameters.get("monitorPointId") == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } Map devices = deviceService.selectDevicesByMpId(parameters); return ResultMessage.ok(devices); } @ApiOperation(value = "型号列表", notes = "型号列表") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "versions", method = RequestMethod.GET) public ResultMessage selectVersions() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE); List> maps = versionService.listMaps(queryWrapper); return ResultMessage.ok(maps); } @ApiOperation(value = "维护人列表", notes = "维护人列表") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "operators", method = RequestMethod.GET) public ResultMessage selectOperators() { return ResultMessage.ok(deviceService.selectAllOperators()); } @ApiOperation(value = "所有行业", notes = "所有行业") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "professions", method = RequestMethod.GET) public ResultMessage selectProfessions() { List> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PROFESSION); return ResultMessage.ok(professions); } @ApiOperation(value = "所有工艺", notes = "所有工艺") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "techs", method = RequestMethod.GET) public ResultMessage selectTechs() { List> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_TECH); return ResultMessage.ok(professions); } @ApiOperation(value = "所有设备检测器", notes = "所有设备检测器") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "detectors", method = RequestMethod.GET) public ResultMessage selectDetectors() { List> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_DETECTOR); return ResultMessage.ok(professions); } @ApiOperation(value = "所有采购商", notes = "所有采购商") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "purchasers", method = RequestMethod.GET) public ResultMessage selectPurchasers() { List> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PURCHASER); return ResultMessage.ok(professions); } }