package com.yuanchu.mom.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.dto.DataConfigDto; import com.yuanchu.mom.dto.DeviceDto; import com.yuanchu.mom.pojo.Device; import com.yuanchu.mom.service.DataConfigService; import com.yuanchu.mom.service.DeviceService; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 设备(DeviceController)表控制层 */ @Api(tags = "设备") @RestController @RequestMapping("/deviceScope") public class DeviceController { @Resource private DeviceService deviceService; @Value("${file.path}") private String filePath; @Autowired private DataConfigService dataConfigService; /** * 获取人员信息 * @return * @throws Exception */ @ValueAuth @GetMapping("/selectUserList") public Result selectUserList() { return Result.success(deviceService.selectUserList()); } @ValueClassify("设备") @ApiOperation(value = "查询设备详情列表") @PostMapping("/selectDeviceParameter") public Result selectDeviceParameter(@RequestBody Map data,@RequestParam(value = "laboratoryNameIsNull", required = false) Boolean laboratoryNameIsNull) throws Exception { Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); DeviceDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceDto.class); return Result.success(deviceService.selectDeviceParameter(page, itemParameter,laboratoryNameIsNull)); } @ValueClassify("设备") @ApiOperation(value = "添加设备详情参数") @PostMapping("/addDeviceParameter") public Result addDeviceParameter(@RequestBody Device itemParameter) { return Result.success(deviceService.addDeviceParameter(itemParameter)); } @ValueClassify("设备") @ApiOperation(value = "删除设备详情参数") @PostMapping("/delDeviceParameter") public Result delDeviceParameter(Integer id) { return Result.success(deviceService.delDeviceParameter(id)); } @ValueClassify("设备") @ApiOperation(value = "修改设备详情参数") @PostMapping("/upDeviceParameter") public Result upDeviceParameter(@RequestBody Device itemParameter) { return Result.success(deviceService.upDeviceParameter(itemParameter)); } @ApiOperation(value = "获取设备总览") @GetMapping("/selectEquipmentOverview") @ValueAuth public Result selectEquipmentOverview() { return Result.success(deviceService.selectEquipmentOverview()); } @ApiOperation(value = "获取被授权人") @GetMapping("/authorizedPerson") @ValueAuth public Result authorizedPerson() { return Result.success(deviceService.authorizedPerson()); } @ApiOperation(value = "搜索") @GetMapping("/search") @ValueAuth public Result search(Integer status, String deviceName, String specificationModel, String largeCategory) { return Result.success(deviceService.search(status, deviceName, specificationModel, largeCategory)); } //图片上传 @ApiOperation(value = "设备图片上传") @PostMapping("/uploadFile") @ValueAuth public Result uploadFile(MultipartFile file) { String urlString; String pathName; String filename = file.getOriginalFilename(); try { String path = filePath; File realpath = new File(path); if (!realpath.exists()) { realpath.mkdirs(); } pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMdd")) + "-" + file.getOriginalFilename(); urlString = realpath + "/" + pathName; file.transferTo(new File(urlString)); HashMap map = new HashMap<>(); map.put("name", filename); map.put("url", pathName); return Result.success(map); } catch (Exception e) { e.printStackTrace(); System.err.println("图片上传错误"); return null; } } @ApiOperation(value = "获取设备负责人") @GetMapping("/selectDevicePrincipal") @ValueAuth public Result selectDevicePrincipal() { return Result.success(deviceService.selectDevicePrincipal()); } @ApiOperation(value = "通过项目获取设备列表") @PostMapping("/selectDeviceByCategory") @ValueAuth public Result selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass) { return Result.success(deviceService.selectDeviceByCategory(inspectionItem, inspectionItemSubclass)); } @ApiOperation(value = "通过设备编号获取设备列表") @GetMapping("/selectDeviceByCode") @ValueAuth public Result selectDeviceByCode(String code) { return Result.success(deviceService.selectDeviceByCode(code)); } @ValueAuth @ValueClassify("设备") @ApiOperation("/数采-数据采集") @GetMapping("/dataCollection") public Result dataAcquisition(HttpServletRequest request, @RequestParam("id") Integer id, @RequestParam("entrustCode") String entrustCode, @RequestParam("sampleCode") String sampleCode) { return deviceService.dataAcquisition(request, id, entrustCode, sampleCode); } @ValueAuth @ApiOperation(value = "判断该设备是否可以数采") @GetMapping("/determineWhetherToCollectData") public Result determineWhetherToCollectData(@RequestParam("managementNumber") String managementNumber, HttpServletRequest request) { return deviceService.determineWhetherToCollectData(managementNumber, request); } @ValueClassify("设备") @ApiOperation(value = "维护数采配置") @PostMapping("/saveDataAcquisitionConfiguration") public Result saveDataAcquisitionConfiguration(@RequestParam(value = "deviceId") Integer deviceId, @RequestBody DataConfigDto dataConfigList) { dataConfigService.saveDataAcquisitionConfiguration(deviceId, dataConfigList); return Result.success(); } @ValueClassify("设备") @ApiOperation(value = "查询数采配置") @GetMapping("/queryDataAcquisitionConfiguration") public Result queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, @RequestParam("isDevice") Boolean isDevice, @RequestParam(value = "inspectionItem", required = false) String inspectionItem, @RequestParam(value = "inspectionItemSubclass", required = false) String inspectionItemSubclass) { return dataConfigService.queryDataAcquisitionConfiguration(deviceId, isDevice, inspectionItem, inspectionItemSubclass); } @ValueClassify("设备") @ApiOperation(value = "删除数采配置") @DeleteMapping("/deleteDataAcquisitionConfiguration") public Result deleteDataAcquisitionConfiguration(@RequestParam("ids") String ids) { List split = Arrays.asList(ids.split(",")); List collect = split.stream().distinct().collect(Collectors.toList()); dataConfigService.removeBatchByIds(collect); return Result.success(); } @ValueAuth @ApiOperation(value = "菜单") @PostMapping("/menu") public Result menu() { return Result.success(deviceService.menu()); } @ApiOperation(value = "左侧设备树形栏") @GetMapping("/treeDevice") @ValueAuth public Result treeDevice(String deviceName) { return Result.success(deviceService.treeDevice(deviceName)); } }