/* * 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> 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 deptVos = deptFeignApi.selDeptList(); //获取设备数据信息 IPage 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 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 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 deptVos = deptFeignApi.selDeptList(); if (null!=equipmentInfo.getDeptId()){ String[] split =equipmentInfo.getDeptId().split(","); List 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); } }