package com.qianwen.smartman.modules.cps.controller; 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 java.util.List; import javax.validation.Valid; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.log.annotation.ApiLog; 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.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.core.tool.utils.DateUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.excel.ProcessExcel; import com.qianwen.smartman.modules.cps.excel.ProcessImport; import com.qianwen.smartman.modules.cps.service.IProcessService; import com.qianwen.smartman.modules.cps.vo.ProcessDetailVO; import com.qianwen.smartman.modules.cps.vo.ProcessSaveVO; import com.qianwen.smartman.modules.cps.vo.ProcessVO; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; import org.springframework.validation.annotation.Validated; 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; @Api(value = "工序管理", tags = {"工序管理"}) @RestController @ApiResource({"blade-cps/process"}) @NonDS @Validated /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/controller/ProcessController.class */ public class ProcessController extends BladeController { public final IProcessService processService; private final OssBuilder ossBuilder; private final ISystemResourceService systemResourceService; public ProcessController(final IProcessService processService, final OssBuilder ossBuilder, final ISystemResourceService systemResourceService) { this.processService = processService; this.ossBuilder = ossBuilder; this.systemResourceService = systemResourceService; } @ApiOperationSupport(order = 1) @ApiLog("工序分页列表") @GetResource({"/page"}) @ApiOperation("查询工序-分页") @PreAuth public R> page(Query query, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "status", required = false) Integer status) { return R.data(this.processService.listPage(query, keyword, Func.isNull(status) ? CommonConstant.ENABLE : status)); } @ApiOperationSupport(order = 2) @PostResource({"/save"}) @ApiOperation("新增或更改工序信息") @PreAuth public R save(@Valid @RequestBody ProcessSaveVO processSaveVO) { return R.data(this.processService.insert(processSaveVO)); } @ApiOperationSupport(order = 3) @GetResource({"/export-template"}) @ApiOperation("导出模板") @PreAuth public R exportTemplate() { return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.PROCESS)); } @ApiOperationSupport(order = 4) @GetResource({"/get"}) @ApiOperation("获取工序信息") @PreAuth public R get(@RequestParam String processId) { return R.data(this.processService.getDetail(Long.valueOf(Func.toLong(processId)))); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/import-process"}) @ApiOperation("导入工序") @PreAuth public R importProcess(MultipartFile file) { List data = ExcelUtil.read(file, 0, 2, ProcessImport.class); return R.data(this.processService.importProcess(data)); } @ApiOperationSupport(order = 6) @GetResource({"/export-process"}) @ApiOperation("导出工序") @PreAuth public R exportProcess(@RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "status", required = false) Integer status) { if (Func.isNull(status)) { status = CommonConstant.ENABLE; } List processExcelList = this.processService.listProcessExcel(keyword, status); String fileName = String.format("%s-%s.xlsx", "工序数据", DateUtil.time()); MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "工序数据表", processExcelList, ProcessExcel.class); BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); return R.data(bladeFile); } @ApiOperationSupport(order = 7) @ApiOperation("删除工序") @PreAuth @DeleteResource({"/remove"}) public R delete(@RequestParam String processIds, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) { return R.data(this.processService.delete(Func.toLongList(processIds), type)); } }