/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
package org.springblade.jfpt.equipmentinfo.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.annotations.*;
|
import lombok.AllArgsConstructor;
|
import org.springblade.common.vo.DeptVo;
|
import org.springblade.core.boot.ctrl.BladeController;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.jfpt.equipment.entity.Equipment;
|
import org.springblade.jfpt.equipment.feign.DeptFeignApi;
|
import org.springblade.jfpt.equipment.vo.EquipmentVO;
|
import org.springblade.jfpt.equipment.vo.EquipmentVOS;
|
import org.springblade.jfpt.equipmentinfo.entity.EquipmentInfo;
|
import org.springblade.jfpt.equipmentinfo.service.EquipmentInfoService;
|
import org.springblade.jfpt.equipmentinfo.vo.EquipmentInfoVo;
|
import org.springblade.system.entity.Region;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import java.text.ParseException;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* 设备管理控制器
|
*
|
* @author BladeX
|
* @since 2020-07-01
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/equipmentInfo")
|
public class EquipmentInfoController extends BladeController {
|
|
private final EquipmentInfoService equipmentInfoService;
|
|
private final DeptFeignApi deptFeignApi;
|
|
/**
|
* 新增或修改设备信息
|
* @param equipmentInfo 设备信息
|
*/
|
@PostMapping("/submit")
|
public R submit(@Valid @RequestBody EquipmentInfo equipmentInfo) {
|
return R.status(equipmentInfoService.saveOrUpdate(equipmentInfo));
|
}
|
|
|
/**
|
* 删除设备信息
|
* @param ids id数组
|
*/
|
@PostMapping("/delete")
|
public R delete(@RequestParam String ids) {
|
return R.status(equipmentInfoService.removeByIds(Func.toIntList(ids)));
|
}
|
|
/**
|
* 自定义分页(部门挂接)
|
* @param equipment 设备对象信息
|
* @param query 查询参数
|
* @param response servlet 响应对象
|
*/
|
@GetMapping("/selectEquipmentInfoDeptPages")
|
public R<IPage<EquipmentInfoVo>> selectEquipmentInfoDeptPages(EquipmentInfoVo equipment, Query query,String pid,HttpServletResponse response) {
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
//获取部门数据
|
List<DeptVo> deptVos = deptFeignApi.selDeptList();
|
//获取设备数据信息
|
IPage<EquipmentInfoVo> page = equipmentInfoService.selectEquipmentInfoDeptPages(Condition.getPage(query),pid, equipment);
|
//遍历数据
|
for (int j = 0; j < page.getRecords().size(); j++) {
|
if (null != page.getRecords().get(j).getDeptId()) {
|
String[] split = page.getRecords().get(j).getDeptId().split(",");
|
List<String> list = Arrays.asList(split);
|
StringBuffer deptNameBuiffer = new StringBuffer();
|
//数据匹配封装
|
for (String deptId : list) {
|
for (DeptVo deptVo : deptVos) {
|
if (deptId.equals(deptVo.getId().toString())) {
|
deptNameBuiffer.append(deptVo.getDeptName()).append(",");
|
}
|
}
|
}
|
//封装部门名称数据
|
page.getRecords().get(j).setDeptName(deptNameBuiffer.substring(0, deptNameBuiffer.length() - 1));
|
}
|
}
|
return R.data(page);
|
}
|
|
/**
|
* 详情
|
* @param response
|
* @param equipment EquipmentInfo 设备信息 ,必须包含id
|
*/
|
@GetMapping("/detail")
|
public R<EquipmentInfoVo> detail(EquipmentInfo equipment, HttpServletResponse response) {
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
EquipmentInfoVo equipmentInfo = equipmentInfoService.getEquipmentInfoById(equipment.getId());
|
//获取部门数据
|
List<DeptVo> deptVos = deptFeignApi.selDeptList();
|
if (null!=equipmentInfo.getDeptId()){
|
String[] split =equipmentInfo.getDeptId().split(",");
|
List<String> list = Arrays.asList(split);
|
StringBuffer deptNameBuiffer = new StringBuffer();
|
//数据匹配封装
|
for (String deptId:list) {
|
for (DeptVo deptVo:deptVos) {
|
if (deptId.equals(deptVo.getId().toString())){
|
deptNameBuiffer.append(deptVo.getDeptName()).append("/");
|
}
|
}
|
}
|
//封装部门名称数据
|
equipmentInfo.setDeptName(deptNameBuiffer.substring(0,deptNameBuiffer.length()-1));
|
}
|
return R.data(equipmentInfo);
|
}
|
}
|