package com.qianwen.smartman.modules.smis.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tenant.annotation.NonDS; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; import com.qianwen.smartman.modules.smis.dto.WorkstationRealTimeStatusDTO; import com.qianwen.smartman.modules.smis.excel.WorkstationImport; import com.qianwen.smartman.modules.smis.service.IWorkstationService; import com.qianwen.smartman.modules.smis.vo.FmsWorkstationGroupVO; import com.qianwen.smartman.modules.smis.vo.FmsWorkstationQueryVO; import com.qianwen.smartman.modules.smis.vo.WorkMachineEasyVO; import com.qianwen.smartman.modules.smis.vo.WorkstationChangeCalendarVO; import com.qianwen.smartman.modules.smis.vo.WorkstationPageQueryVO; import com.qianwen.smartman.modules.smis.vo.WorkstationRealTimeStatusVO; import com.qianwen.smartman.modules.smis.vo.WorkstationSubmitVO; import com.qianwen.smartman.modules.smis.vo.WorkstationVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "工位管理", tags = {"工位管理"}) @RestController @ApiResource({"smis/workstation"}) @NonDS @Validated public class WorkstationController extends BladeController { @Autowired private IWorkstationService workstationService; //@Autowired //private IDmpVariablesService dmpVariablesService; @Autowired private ISystemResourceService systemResourceService; @PreAuth @PostResource({"/submit"}) @ApiOperation("新增或更改工位信息") public R submit(@Valid @RequestBody WorkstationSubmitVO workstationSubmitVO) { return R.data(this.workstationService.submit(workstationSubmitVO)); } /* @GetResource({"/listDmpVariablesByMachineId"}) @ApiOperation("根据机器id获取采集项") public R> listDmpVariablesByMachineId(@RequestParam Long machineId) { return R.data(this.dmpVariablesService.listByMachineId(machineId)); } @PreAuth @GetResource({"/listDmpVariablesByWorkstationId"}) @ApiOperation("根据工位id获取采集项") public R listDmpVariablesByWorkstationId(@RequestParam Long workstationId) { return R.data(this.dmpVariablesService.listByWorkstationId(workstationId)); } */ @GetMapping({"/get"}) @ApiOperation("获取工位信息") public R get(@RequestParam Long workstationId) { return R.data(this.workstationService.getDetail(workstationId)); } @PutResource({"/changeCollectSwitch"}) @ApiOperation("改变采集功能") public R changeCollectSwitch(@RequestParam Long workstationId, @RequestParam Integer collectSwitch) { return R.data(this.workstationService.changeCollectSwitch(workstationId, collectSwitch)); } @PreAuth @DeleteResource({""}) @ApiOperation("删除工位") public R delete(@RequestParam List workstationIds, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) { return R.data(this.workstationService.delete(workstationIds, type)); } @GetMapping({"/page"}) @ApiOperation("查询工位 分页") public R> page(Query query, @RequestParam(value = "keyWord", required = false) String keyWord, @RequestParam("groupId") Long groupId, @RequestParam(value = "status", required = false) Integer status, @RequestParam(value = "type", required = false) Integer type) { return R.data(this.workstationService.listPage(Condition.getPage(query), keyWord, groupId, status, type)); } @PostMapping({"/fms/tree"}) @ApiOperation("查询fms工位树") public R> treeFmsWorkstation(@RequestBody FmsWorkstationQueryVO fmsWorkstationQueryVO) { List commonGroupVOS = this.workstationService.fmsTreeWorkstation(fmsWorkstationQueryVO); return R.data(commonGroupVOS); } @PutResource({"/changeCalendarCode"}) @Deprecated @ApiOperation("改变工位的生产日历") @PreAuth public R changeCalendarCode(@RequestBody WorkstationChangeCalendarVO workstationChangeCalendarVO) { return R.data(this.workstationService.changeCalendarCode(workstationChangeCalendarVO)); } @PreAuth @PutResource({"/changeWorkstationGroup"}) @ApiOperation("改变工位组") public R changeWorkstationGroup(@RequestParam("groupId") Long groupId, @RequestParam("workstationIdList") List workstationIdList) { return R.data(this.workstationService.changeWorkstationGroup(groupId, workstationIdList)); } @PreAuth @DeleteResource({"/deleteGroup"}) @ApiOperation("删除工位组") public R deleteGroup(@RequestParam("groupId") Long groupId) { return R.data(this.workstationService.deleteGroup(groupId)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @GetResource({"/export-template"}) @ApiOperation("导出模板") @PreAuth public R exportTemplate() { return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.WORKSTATION)); } @PreAuth @PostResource({"/import-workstation"}) @ApiOperation("导入工位") public R importWorkstation(MultipartFile file) { List data = ExcelUtil.read(file, 0, 2, WorkstationImport.class); return R.data(this.workstationService.importWorkstation(data)); } @PostResource({"/export-workstation"}) @ApiOperation("导出工位") public R exportWorkstation(@RequestParam("keyWord") String keyWord, @RequestParam("groupId") Long groupId, HttpServletResponse response) { return R.data(this.workstationService.exportWorkstation(keyWord, groupId, response)); } @PreAuth @PostResource({"/real-time-status"}) @ApiOperation(value = "根据工位组Id获取工位的实时状态", notes = "根据工位组Id获取工位的实时状态") public R> getRealTimeStatus(@RequestBody WorkstationRealTimeStatusDTO dto, Query query) { return R.data(this.workstationService.getRealTimeStatus(dto, query)); } /* @PreAuth @GetResource({"/get-dmp-variables"}) @ApiOperation(value = "获得采集项", notes = "获得采集项") public R> getDmpVariables(@RequestParam("workstationId") @ApiParam(value = "工位ID", required = true) String workstationId, @RequestParam("machineId") @ApiParam(value = "机器Id", required = false) String machineId) { return R.data(this.workstationService.getDmpVariables(workstationId, machineId)); } */ @PostResource({"/get-workstation-by-groupIds"}) @ApiOperation("多个工位组查询工位") public R> getWorkstationByGroupIds(@RequestBody List groupIds) { return R.data(this.workstationService.getWorkstationByGroupIds(groupIds)); } @PostResource({"/get-work-machine"}) @ApiOperation("获取机器工位的工位名称和机器短编号") public R getWorkMachine(@RequestParam("workstationId") String workstationId) { return R.data(this.workstationService.getWorkMachine(workstationId)); } @PostResource({"/page-h5"}) @ApiOperation("h5 查询工位 分页") public R> pageH5(@RequestBody WorkstationPageQueryVO workstationPageQueryVO, Query query) { return R.data(this.workstationService.pageH5(query, workstationPageQueryVO)); } }