/* * Copyright (c) 2018-2025, ztt 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 pig4cloud.com 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: ztt */ package com.chinaztt.mes.basic.controller; import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaztt.mes.basic.dto.WorkstationDTO; import com.chinaztt.mes.basic.entity.Workstation; import com.chinaztt.mes.basic.excel.WorkstationData; import com.chinaztt.mes.basic.excel.WorkstationUploadListener; import com.chinaztt.mes.basic.service.WorkstationService; import com.chinaztt.mes.common.wrapper.QueryWrapperUtil; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; import com.chinaztt.ztt.common.security.annotation.Inner; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; /** * 工作站 * * @author sunxiaoling * @date 2020-09-11 09:55:36 */ @RestController @AllArgsConstructor @RequestMapping("/workstation") @Api(value = "workstation", tags = "工作站管理") public class WorkstationController { private final WorkstationService workstationService; /** * 分页查询 * * @param page 分页对象 * @param workstation 工作站 * @return */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('basic_workstation_view','product_workbench')") public R getWorkstationPage(Page page, Workstation workstation) { return R.ok(workstationService.page(page, QueryWrapperUtil.gen(workstation).orderByDesc("id"))); } /** * PDA查询所有 * * @param workstationDTO 工作站 * @return */ @ApiOperation(value = "PDA查询所有", notes = "PDA查询所有") @GetMapping("/pda/list") public R pdaPage(Page page, WorkstationDTO workstationDTO) { return R.ok(workstationService.pdaPage(page, QueryWrapperUtil.gen(workstationDTO))); } /** * 查询所有 * * @param workstation 工作站 * @return */ @ApiOperation(value = "查询所有", notes = "查询所有") @GetMapping("/list") @PreAuthorize("@pms.hasPermission('basic_workstation_view','product_workbench')") public R list(Workstation workstation) { return R.ok(workstationService.list(QueryWrapperUtil.gen(workstation).orderByDesc("workstation_no"))); } /** * 查询未关联的工作站 * * @return R */ @GetMapping("/page/workstation") public R getEquipmentPages(Page page, Workstation workstation) { return R.ok(workstationService.getNoWorkstation(page, QueryWrapperUtil.gen(workstation).orderByDesc("id"))); } /** * excel上传 * * @return */ @PostMapping("/upload") public R upload(@RequestParam("file") MultipartFile file) { try { EasyExcel.read(file.getInputStream(), WorkstationData.class, new WorkstationUploadListener(workstationService)).sheet().doRead(); } catch (IOException e) { e.printStackTrace(); } return R.ok(); } /** * 通过id查询工作站 * * @param id id * @return R */ @ApiOperation(value = "通过id查询", notes = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('basic_workstation_view','product_workbench')") public R getById(@PathVariable("id") Long id) { return R.ok(workstationService.getWorkstationById(id)); } /** * 通过工厂id查询未关联的设备 * * @param workstation * @return R */ @ApiOperation(value = "通过工厂id查询未关联的设备", notes = "通过工厂id查询未关联的设备") @GetMapping("/factory") public R getByFactoryId(Workstation workstation) { return R.ok(workstationService.getByFactoryId(workstation)); } /** * 新增工作站 * * @param workstation 工作站 * @return R */ @ApiOperation(value = "新增工作站", notes = "新增工作站") @SysLog("新增工作站") @PostMapping @PreAuthorize("@pms.hasPermission('basic_workstation_add')") public R save(@RequestBody WorkstationDTO workstation) { Workstation workstationByFind = workstationService.getOne(Wrappers.lambdaQuery().eq(Workstation::getWorkstationNo, workstation.getWorkstationNo())); if (workstationByFind != null) { throw new RuntimeException("工作站编号重复:" + workstationByFind.getName() + "-" + workstationByFind.getWorkstationNo()); } return R.ok(workstationService.fullSave(workstation)); } /** * 修改工作站 * * @param workstation 工作站 * @return R */ @ApiOperation(value = "修改工作站", notes = "修改工作站") @SysLog("修改工作站") @PutMapping @PreAuthorize("@pms.hasPermission('basic_workstation_edit','product_workbench')") public R updateDtoById(@RequestBody WorkstationDTO workstation) { return R.ok(workstationService.fullUpdate(workstation)); } /** * 修改工作站(单表) * * @param workstation 工作站 * @return R */ @ApiOperation(value = "修改工作站(单表)", notes = "修改工作站(单表)") @SysLog("修改工作站(单表)") @PostMapping("updateById") @PreAuthorize("@pms.hasPermission('basic_workstation_edit','product_workbench')") public R updateById(@RequestBody Workstation workstation) { return R.ok(workstationService.updateById(workstation)); } /** * 通过id删除工作站 * * @param id id */ @ApiOperation(value = "通过id删除工作站", notes = "通过id删除工作站") @SysLog("通过id删除工作站") @DeleteMapping("/{id}") @PreAuthorize("@pms.hasPermission('basic_workstation_del')") public void removeById(@PathVariable Long id) { workstationService.deleteAllWorkstation(id); } /** * 通过id删除工作站设备关联表 * * @param fid id * @param tid id * @return R */ @ApiOperation(value = "通过id删除工作站设备关联表", notes = "通过id删除工作站设备关联表") @SysLog("通过id删除工作站设备关联表") @DeleteMapping("/{id1}/{id2}") public void removeById(@PathVariable("id1") Long fid, @PathVariable("id2") Long tid) { workstationService.delWorkstationEquipment(fid, tid); } /** * 查询workstation * * @param workstation * @return */ @GetMapping("/workstation") @Inner(value = false) public R loadWorkstation(Workstation workstation) { return R.ok(workstationService.list(Wrappers.query(workstation))); } }