package com.qianwen.smartman.modules.cps.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.qianwen.smartman.common.enums.PropertyEnum; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.excel.util.ExcelUtil; 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.tool.api.R; import com.qianwen.smartman.modules.cps.convert.MaterialConvert; import com.qianwen.smartman.modules.cps.entity.Material; import com.qianwen.smartman.modules.cps.excel.MaterialImport; import com.qianwen.smartman.modules.cps.service.IMaterialService; import com.qianwen.smartman.modules.cps.vo.MaterialAddVO; import com.qianwen.smartman.modules.cps.vo.MaterialQueryVO; import com.qianwen.smartman.modules.cps.vo.MaterialUpdateVO; import com.qianwen.smartman.modules.cps.vo.MaterialVO; import com.qianwen.smartman.modules.cps.vo.SynchronizedProductMaterialVO; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; 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; @ApiResource({"blade-cps/material"}) @Api(value = "物料", tags = {"物料"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/controller/MaterialController.class */ public class MaterialController extends BladeController { private final IMaterialService materialService; private final ISystemResourceService systemResourceService; public MaterialController(final IMaterialService materialService, final ISystemResourceService systemResourceService) { this.materialService = materialService; this.systemResourceService = systemResourceService; } @GetResource({"/listBySparePart"}) @ApiOperation("查询备品备件物料") public R> listBySparePart() { return R.data(this.materialService.listByProperty(Integer.valueOf(PropertyEnum.SPAR_PART.getKey()))); } @GetResource({"/get-material"}) @ApiOperation("查询物料") public R getMaterial(@RequestParam @ApiParam(value = "id", required = true) String id) { return R.data(MaterialConvert.INSTANCE.convert((Material) this.materialService.getById(id))); } @PreAuth @GetResource({"/page"}) @ApiOperation(value = "查询分页", notes = "查询分页") public R> getPageMaterial(MaterialQueryVO materialQueryVO, Query query) { return R.data(this.materialService.getPageMaterial(materialQueryVO, query)); } @PreAuth @PostResource({"/create-material"}) @ApiOperation("新增物料") public R createMaterial(@Valid @RequestBody MaterialAddVO materialAddVO) { return R.data(this.materialService.createMaterial(materialAddVO)); } @PreAuth @PutResource({"/update-material"}) @ApiOperation("修改物料") public R updateMaterial(@Valid @RequestBody MaterialUpdateVO materialUpdateVO) { return R.data(this.materialService.updateMaterial(materialUpdateVO)); } @PreAuth @DeleteResource({"/delete-material"}) @ApiOperation("删除物料(支持批量)") public R deleteMaterial(@RequestParam(value = "ids", required = true) List ids, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) { return R.data(Boolean.valueOf(this.materialService.deleteMaterial(ids, type))); } @PreAuth @GetResource({"/export-template"}) @ApiOperation("导出模板") public R exportTemplate() { return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.MATERIAL)); } @PreAuth @PostResource({"/import-material"}) @ApiOperation("导入物料信息") public R importMaterial(MultipartFile file) { List data = ExcelUtil.read(file, 0, 2, MaterialImport.class); return R.data(this.materialService.importMaterial(data)); } @PreAuth @PostResource({"/export-material"}) @ApiOperation("导出物料信息") public R exportMaterial(@RequestBody MaterialQueryVO materialQueryVO, HttpServletResponse response) { return R.data(this.materialService.exportMaterial(materialQueryVO, response)); } @PostResource({"/synchronized-product-material"}) @ApiOperation(value = "同步产品物料", notes = "同步产品物料") public R synchronizedProductMaterial(@Valid @RequestBody SynchronizedProductMaterialVO synchronizedProductMaterialVO) { return R.data(this.materialService.synchronizedMaterial(synchronizedProductMaterialVO)); } }