| | |
| | | */ |
| | | package org.sxkj.fw.device.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import lombok.AllArgsConstructor; |
| | | import javax.validation.Valid; |
| | | |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.sxkj.fw.device.entity.FwDeviceEntity; |
| | | import org.sxkj.fw.device.vo.FwDeviceVO; |
| | | import org.sxkj.fw.device.excel.FwDeviceExcel; |
| | | import org.sxkj.fw.device.wrapper.FwDeviceWrapper; |
| | | import org.sxkj.fw.device.service.IFwDeviceService; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO; |
| | | import org.sxkj.fw.common.GenericConverter; |
| | | import org.sxkj.fw.common.IdParam; |
| | | import org.sxkj.fw.device.dto.FwDeviceDTO; |
| | | import org.sxkj.fw.device.entity.FwDeviceEntity; |
| | | import org.sxkj.fw.device.excel.FwDeviceExcel; |
| | | import org.sxkj.fw.device.param.FwDevicePageParam; |
| | | import org.sxkj.fw.device.service.IFwDeviceService; |
| | | import org.sxkj.fw.device.vo.DeviceTypeStatisticsVO; |
| | | import org.sxkj.fw.device.vo.FwDeviceVO; |
| | | import org.sxkj.fw.device.wrapper.FwDeviceWrapper; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | import java.util.Map; |
| | | import java.util.List; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 反无设备表 控制器 |
| | | * 设备表 控制器 |
| | | * |
| | | * @author AIX |
| | | * @since 2026-01-06 |
| | | * @author aix |
| | | * @since 2026-01-08 |
| | | */ |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("fwDevice/fwDevice") |
| | | @Api(value = "反无设备表", tags = "反无设备表接口") |
| | | @RequestMapping("device/fwDevice") |
| | | @Api(value = "设备表", tags = "设备表接口") |
| | | public class FwDeviceController extends BladeController { |
| | | |
| | | private final IFwDeviceService fwDeviceService; |
| | | |
| | | /** |
| | | * 反无设备表 详情 |
| | | * 设备表 详情 |
| | | */ |
| | | @GetMapping("/detail") |
| | | @ApiOperationSupport(order = 1) |
| | | @ApiOperation(value = "详情", notes = "传入fwDevice") |
| | | public R<FwDeviceVO> detail(FwDeviceEntity fwDevice) { |
| | | FwDeviceEntity detail = fwDeviceService.getOne(Condition.getQueryWrapper(fwDevice)); |
| | | public R<FwDeviceVO> detail(@Valid IdParam fwDevice) { |
| | | FwDeviceEntity detail = fwDeviceService.getOne(Condition.getQueryWrapper(GenericConverter.convert(fwDevice, FwDeviceEntity.class))); |
| | | |
| | | if (detail == null) { |
| | | return R.fail("该设备不存在"); |
| | | } |
| | | |
| | | return R.data(FwDeviceWrapper.build().entityVO(detail)); |
| | | } |
| | | /** |
| | | * 反无设备表 分页 |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "分页", notes = "传入fwDevice") |
| | | public R<IPage<FwDeviceVO>> list(@ApiIgnore @RequestParam Map<String, Object> fwDevice, Query query) { |
| | | IPage<FwDeviceEntity> pages = fwDeviceService.page(Condition.getPage(query), Condition.getQueryWrapper(fwDevice, FwDeviceEntity.class)); |
| | | return R.data(FwDeviceWrapper.build().pageVO(pages)); |
| | | } |
| | | |
| | | /** |
| | | * 反无设备表 自定义分页 |
| | | * 设备表 列表 |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "列表", notes = "传入isAreaSelect和区域id") |
| | | public R<List<FwDeviceVO>> list(@RequestParam(value = "isAreaSelect", required = false) Integer isAreaSelect, |
| | | @RequestParam(value = "areaId", required = false) Long areaId) { |
| | | List<FwDeviceEntity> list = fwDeviceService.selectFwDeviceList(isAreaSelect, areaId); |
| | | FwDeviceWrapper wrapper = FwDeviceWrapper.build(); |
| | | return R.data(list.stream().map(wrapper::entityVO).collect(Collectors.toList())); |
| | | } |
| | | |
| | | /** |
| | | * 设备表 自定义分页 |
| | | */ |
| | | @GetMapping("/page") |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "分页", notes = "传入fwDevice") |
| | | public R<IPage<FwDeviceVO>> page(FwDeviceVO fwDevice, Query query) { |
| | | IPage<FwDeviceVO> pages = fwDeviceService.selectFwDevicePage(Condition.getPage(query), fwDevice); |
| | | return R.data(pages); |
| | | public R<IPage<FwDeviceVO>> page(FwDevicePageParam fwDevice, Query query) { |
| | | IPage<FwDeviceEntity> pages = fwDeviceService.selectFwDevicePage(Condition.getPage(query), GenericConverter.convert(fwDevice, FwDeviceDTO.class)); |
| | | IPage<FwDeviceVO> result = FwDeviceWrapper.build().pageVO(pages); |
| | | List<FwDeviceVO> records = result.getRecords(); |
| | | if (records != null && !records.isEmpty()) { |
| | | List<Long> deviceIds = records.stream() |
| | | .map(FwDeviceVO::getId) |
| | | .filter(id -> id != null) |
| | | .collect(Collectors.toList()); |
| | | Map<Long, String> sceneNameMap = fwDeviceService.selectSceneNameByDeviceIds(deviceIds); |
| | | for (FwDeviceVO record : records) { |
| | | String sceneName = sceneNameMap.get(record.getId()); |
| | | record.setSceneName(StringUtil.isBlank(sceneName) ? "/" : sceneName); |
| | | } |
| | | } |
| | | return R.data(result); |
| | | } |
| | | |
| | | /** |
| | | * 反无设备表 新增 |
| | | */ |
| | | @PostMapping("/save") |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "新增", notes = "传入fwDevice") |
| | | public R save(@Valid @RequestBody FwDeviceEntity fwDevice) { |
| | | return R.status(fwDeviceService.save(fwDevice)); |
| | | } |
| | | |
| | | /** |
| | | * 反无设备表 修改 |
| | | */ |
| | | @PostMapping("/update") |
| | | @ApiOperationSupport(order = 5) |
| | | @ApiOperation(value = "修改", notes = "传入fwDevice") |
| | | public R update(@Valid @RequestBody FwDeviceEntity fwDevice) { |
| | | return R.status(fwDeviceService.updateById(fwDevice)); |
| | | } |
| | | |
| | | /** |
| | | * 反无设备表 新增或修改 |
| | | * 设备表 新增或修改 |
| | | */ |
| | | @PostMapping("/submit") |
| | | @ApiOperationSupport(order = 6) |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "新增或修改", notes = "传入fwDevice") |
| | | public R submit(@Valid @RequestBody FwDeviceEntity fwDevice) { |
| | | return R.status(fwDeviceService.saveOrUpdate(fwDevice)); |
| | | public R submit(@Valid @RequestBody FwDeviceDTO fwDevice) { |
| | | return R.status(fwDeviceService.saveOrUpdate(FwDeviceWrapper.build().entityDTO(fwDevice))); |
| | | } |
| | | |
| | | /** |
| | | * 反无设备表 删除 |
| | | * 设备表 删除 |
| | | */ |
| | | @PostMapping("/remove") |
| | | @ApiOperationSupport(order = 7) |
| | | @ApiOperationSupport(order = 5) |
| | | @ApiOperation(value = "逻辑删除", notes = "传入ids") |
| | | public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { |
| | | return R.status(fwDeviceService.deleteLogic(Func.toLongList(ids))); |
| | | } |
| | | |
| | | /** |
| | | * 设备类型统计 |
| | | * @return 统计数据 |
| | | */ |
| | | @GetMapping("/statisticalDeviceType") |
| | | @ApiOperationSupport(order = 6) |
| | | @ApiOperation(value = "设备类型统计", notes = "设备类型统计") |
| | | public R<List<DeviceTypeStatisticsVO>> statisticalDeviceType() { |
| | | return R.data(fwDeviceService.getDeviceTypeStatistics()); |
| | | } |
| | | |
| | | /** |
| | | * 设备类型统计 |
| | | * @return 统计数据 |
| | | */ |
| | | @GetMapping("/statisticalDeviceOut") |
| | | @ApiOperationSupport(order = 7) |
| | | @ApiOperation(value = "设备出库去向统计", notes = "设备出库去向统计") |
| | | public R<List<DeviceStatisticsVO>> statisticalDeviceOut() { |
| | | return R.data(fwDeviceService.getDeviceOutStatistics()); |
| | | } |
| | | |
| | | /** |
| | | * 设备生产厂商统计 |
| | | * @return 统计数据 |
| | | */ |
| | | @GetMapping("/statisticalDeviceManufacturer") |
| | | @ApiOperationSupport(order = 8) |
| | | @ApiOperation(value = "设备生产厂商统计", notes = "设备生产厂商统计") |
| | | public R<List<DeviceStatisticsVO>> statisticalDeviceManufacturer() { |
| | | return R.data(fwDeviceService.getDeviceManufacturerStatistics()); |
| | | } |
| | | |
| | | /** |
| | | * 导出数据 |
| | | */ |
| | | @GetMapping("/export-fwDevice") |
| | | @ApiOperationSupport(order = 9) |
| | | @ApiOperationSupport(order = 99) |
| | | @ApiOperation(value = "导出数据", notes = "传入fwDevice") |
| | | @ApiIgnore |
| | | public void exportFwDevice(@ApiIgnore @RequestParam Map<String, Object> fwDevice, BladeUser bladeUser, HttpServletResponse response) { |
| | | QueryWrapper<FwDeviceEntity> queryWrapper = Condition.getQueryWrapper(fwDevice, FwDeviceEntity.class); |
| | | //if (!AuthUtil.isAdministrator()) { |
| | |
| | | //} |
| | | queryWrapper.lambda().eq(FwDeviceEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); |
| | | List<FwDeviceExcel> list = fwDeviceService.exportFwDevice(queryWrapper); |
| | | ExcelUtil.export(response, "反无设备表数据" + DateUtil.time(), "反无设备表数据表", list, FwDeviceExcel.class); |
| | | ExcelUtil.export(response, "设备表数据" + DateUtil.time(), "设备表数据表", list, FwDeviceExcel.class); |
| | | } |
| | | |
| | | } |