package com.yuanchu.mom.controller; import com.yuanchu.mom.pojo.dto.MaterialDto; import com.yuanchu.mom.service.*; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Api(tags = "技术管理-->标准BOM") @RestController @RequestMapping("/material") public class MaterialController { @Autowired private MaterialService materialService; @Resource TechnologyService technologyService; @Resource ProductService productService; @Resource MbomService mbomService; @Resource TechniqueService techniqueService; @ApiOperation(value = "左侧五级树展示") @GetMapping("/selectTreeByMaterial") public Result selectTreeByMaterial() { return Result.success(materialService.selectTreeByMaterial()); } @ApiOperation(value = "新增-->选择产品大类") @GetMapping("/chooseFather") public Result chooseFather() { return Result.success(materialService.chooseFather()); } @ApiOperation("(1,2级)新增-->物料,标准,型号") @ApiImplicitParams(value = { @ApiImplicitParam(name = "spId", value = "复制选择的型号id", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "ver", value = "复制选择的版本", dataTypeClass = Integer.class) }) @PostMapping("/add") public Result addMaterial(@Validated @RequestBody MaterialDto materialDto,Integer spId,Integer ver) { return Result.success(materialService.addMaterial(materialDto,spId,ver)); } @ApiOperation(value = "右侧数据展示-->选择版本") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "型号id", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "type", value = "类型(0:工艺路线;1:技术指标;2:物料清单;3:生产工艺)", dataTypeClass = Integer.class, required = true) }) @GetMapping("/selectVersion") public Result selectVersion(Integer type, Integer specificationsId) { switch (type) { case 0: //工艺路线 return Result.success(technologyService.selectVerByTec(specificationsId)); case 1: //技术指标 return Result.success(productService.selectVerByPro(specificationsId)); case 2: //物料清单 return Result.success(mbomService.selectVerByMbom(specificationsId)); case 3: //生产工艺 return Result.success(techniqueService.selectVerByTeq(specificationsId)); } return Result.fail("没有该类型!"); } @ApiOperation(value = "右侧数据展示") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "型号id", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "type", value = "类型(0:工艺路线;1:技术指标;2:物料清单;3:生产工艺)", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "version", value = "版本(默认最新)", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "message", value = "搜索内容", dataTypeClass = String.class) }) @GetMapping("/selectAll") public Result selectAll(Integer specificationsId, Integer type, Integer version,String message) { switch (type) { case 0: //工艺路线 return Result.success(technologyService.selectAllTec(specificationsId, version,message)); case 1: //技术指标 return Result.success(productService.selectAllPro(specificationsId, version,message)); case 2: //物料清单 return Result.success(mbomService.selectAllMbom(specificationsId, version,message)); case 3: //生产工艺 return Result.success(techniqueService.selectAllTeq(specificationsId, version,message)); } return Result.fail("没有该类型!"); } @ApiOperation("添加同一个型号工艺路线,技术指标,物料清单,生产工艺的版本") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "型号id", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "version", value = "当前版本", dataTypeClass = Integer.class, required = true) }) @PostMapping("/addVersion") public Result addVersion(Integer specificationsId ,Integer version) { Integer version1 = materialService.addVersion(specificationsId,version); return Result.success("添加型号"+specificationsId+"的版本"+version1+"成功"); } }