jinpengyong
2021-09-14 db2b30bbe239427a89521cd858b2b191d56086ef
screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -14,16 +15,20 @@
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.Device;
import com.moral.api.entity.ManageAccount;
import com.moral.api.entity.Organization;
import com.moral.api.entity.User;
import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.entity.SpecialDevice;
import com.moral.api.entity.Version;
import com.moral.api.service.DeviceService;
import com.moral.api.service.OrganizationService;
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.PageResult;
import com.moral.util.WebUtils;
@Slf4j
@Api(tags = {"设备管理"})
@@ -35,7 +40,10 @@
    private DeviceService deviceService;
    @Autowired
    private OrganizationService organizationService;
    private VersionService versionService;
    @Autowired
    private SpecialDeviceService specialDeviceService;
    @ApiOperation(value = "添加设备", notes = "添加设备")
    @ApiImplicitParams({
@@ -43,8 +51,168 @@
    })
    @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 (ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(mac) || ObjectUtils.isEmpty(monitorPointId) || ObjectUtils.isEmpty(versionId)) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        //判断mac是否已存在,普通设备表和特殊设备表都要判断
        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE);
        QueryWrapper<SpecialDevice> specialDeviceQueryWrapper = new QueryWrapper<>();
        specialDeviceQueryWrapper.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<Device> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE);
            QueryWrapper<SpecialDevice> 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<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        Map<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        if (parameters.get("organizationId") == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        Map<String, Object> 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<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        if (parameters.get("monitorPointId") == null) {
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        Map<String, Object> 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<Version> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE);
        List<Map<String, Object>> maps = versionService.listMaps(queryWrapper);
        return ResultMessage.ok(maps);
    }
    @ApiOperation(value = "维护人列表", notes = "维护人列表")
@@ -53,44 +221,46 @@
    })
    @RequestMapping(value = "operators", method = RequestMethod.GET)
    public ResultMessage selectOperators() {
        List<ManageAccount> operators = deviceService.selectAllOperator();
        return ResultMessage.ok(operators);
        return ResultMessage.ok(deviceService.selectAllOperators());
    }
    @ApiOperation(value = "型号列表", notes = "型号列表")
    @RequestMapping(value = "versions", method = RequestMethod.GET)
    public ResultMessage selectVersions() {
        return null;
    }
    @ApiOperation(value = "组织列表", notes = "组织列表")
    @ApiOperation(value = "所有行业", notes = "所有行业")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "organizations", method = RequestMethod.GET)
    public ResultMessage selectOrganizations() {
        List<Organization> organizations = deviceService.selectAllOrganization();
        return ResultMessage.ok(organizations);
    @RequestMapping(value = "professions", method = RequestMethod.GET)
    public ResultMessage selectProfessions() {
        List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PROFESSION);
        return ResultMessage.ok(professions);
    }
    @ApiOperation(value = "分页设备列表", notes = "分页设备列表")
    @ApiOperation(value = "所有工艺", notes = "所有工艺")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "order", value = "排序字段", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "orderType", value = "排序类型,升序:0,降序:1", defaultValue = "0", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
            @ApiImplicitParam(name = "organizationName", value = "组织模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "monitorPointName", value = "站点模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "deviceName", value = "设备名称模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "mac", value = "mac模糊查询", required = false, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
    })
    @RequestMapping(value = "select", method = RequestMethod.POST)
    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
        Page<DeviceVO> userPage = deviceService.selectDevices(parameters);
        PageResult<DeviceVO> pageResult = new PageResult<>(
                userPage.getTotal(), userPage.getPages(), userPage.getRecords()
        );
        return ResultMessage.ok(pageResult);
    @RequestMapping(value = "techs", method = RequestMethod.GET)
    public ResultMessage selectTechs() {
        List<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PURCHASER);
        return ResultMessage.ok(professions);
    }
}