package com.qianwen.smartman.modules.coproduction.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.core.boot.ctrl.BladeController; 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.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.coproduction.convert.PlanConvert; import com.qianwen.smartman.modules.coproduction.entity.Plan; import com.qianwen.smartman.modules.coproduction.service.IPlanService; import com.qianwen.smartman.modules.coproduction.vo.OrderEditWorkstationVO; import com.qianwen.smartman.modules.coproduction.vo.PlanAppendVO; import com.qianwen.smartman.modules.coproduction.vo.PlanBomVO; import com.qianwen.smartman.modules.coproduction.vo.PlanCraftVO; import com.qianwen.smartman.modules.coproduction.vo.PlanModifyVO; import com.qianwen.smartman.modules.coproduction.vo.PlanQueryVO; import com.qianwen.smartman.modules.coproduction.vo.PlanStatusCountVO; import com.qianwen.smartman.modules.coproduction.vo.PlanSubmitVO; import com.qianwen.smartman.modules.coproduction.vo.PlanVO; import com.qianwen.smartman.modules.cps.vo.CraftRoutingDetailVO; import com.qianwen.smartman.modules.system.handler.field.HandlerFieldSqlParse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; 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 = "blade_plan管理", tags = {"blade_plan管理"}) @ApiResource({"blade-coproduction/plan"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/coproduction/controller/PlanController.class */ public class PlanController extends BladeController { private final IPlanService planService; private final HandlerFieldSqlParse handlerFieldSqlParse; public PlanController(final IPlanService planService, final HandlerFieldSqlParse handlerFieldSqlParse) { this.planService = planService; this.handlerFieldSqlParse = handlerFieldSqlParse; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "blade_plan详情", notes = "传入plan") @PreAuth public R detail(@PathVariable String id) { Plan plan = this.planService.getPlan(id); String detailResult = this.handlerFieldSqlParse.handlerFieldDetailResult(plan.getTypeId(), plan.getExtendField()); plan.setExtendField(detailResult); return R.data(PlanConvert.INSTANCE.convert(plan)); } @ApiOperationSupport(order = 2) @GetResource({"/statusCount"}) @ApiOperation(value = "计划页上方状态数量总览", notes = "传入templateId") @PreAuth public R> statusCount(@RequestParam String templateId) { return R.data(this.planService.statusCount(templateId)); } @ApiOperationSupport(order = 2) @PostResource({"/page"}) @ApiOperation(value = "blade_plan分页", notes = "传入map") @PreAuth public R> page(Query query, @RequestBody PlanQueryVO planQueryVO) { IPage pages = this.planService.listPage(Condition.getPage(query), planQueryVO); return R.data(PlanConvert.INSTANCE.convert(pages)); } @ApiOperationSupport(order = 3) @PostResource({"/save"}) @ApiOperation(value = "blade_plan新增", notes = "传入planVO") @PreAuth public R insert(@Valid @RequestBody PlanSubmitVO planSubmitVO) { this.planService.create(planSubmitVO); return R.data(PlanConvert.INSTANCE.convert(planSubmitVO)); } @ApiOperationSupport(order = 4) @PutResource({"/modify"}) @ApiOperation(value = "blade_plan修改", notes = "传入planVO") @PreAuth public R update(@Valid @RequestBody PlanModifyVO planModifyVO) { return R.data(PlanConvert.INSTANCE.convert(this.planService.modify(planModifyVO))); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @ApiOperation(value = "blade_plan删除", notes = "传入id") @PreAuth @DeleteResource({"/remove"}) public R remove(@RequestParam("planId") @ApiParam(value = "主键", required = true) Long id) { if (Func.isEmpty(id)) { return R.status(false); } return R.status(this.planService.remove(id)); } @ApiOperationSupport(order = 6) @PostResource({"/append"}) @ApiOperation(value = "追加", notes = "传入json") @PreAuth public R append(@Valid @RequestBody PlanAppendVO planAppendVO) { this.planService.append(planAppendVO); return R.data(planAppendVO); } @ApiOperationSupport(order = 7) @PostResource({"/pause"}) @ApiOperation(value = "暂停", notes = "传入json") @PreAuth public R pause(@RequestParam("planId") Long planId) { this.planService.pause(planId); return R.data(planId); } @ApiOperationSupport(order = 8) @PostResource({"/reboot"}) @ApiOperation(value = "重启", notes = "传入planId") @PreAuth public R reboot(@RequestParam("planId") Long planId) { this.planService.reboot(planId); return R.data(planId); } @ApiOperationSupport(order = 9) @GetResource({"/template"}) @ApiOperation(value = "下载模板", notes = "") @PreAuth public R template(Long templateId) { return R.data(this.planService.planTemplate(templateId)); } @ApiOperationSupport(order = 10) @PostResource({"/import"}) @ApiOperation(value = "计划导入", notes = "传入templateId") @PreAuth public R planImport(@RequestParam("templateId") Long templateId, MultipartFile file) { return R.data(this.planService.planImport(templateId, file)); } @ApiOperationSupport(order = 11) @PostResource({"/export"}) @ApiOperation(value = "计划导出", notes = "传入planId") @PreAuth public R planExport(@Valid @RequestBody PlanQueryVO planQueryVO) { return R.data(this.planService.planExport(planQueryVO)); } @ApiOperationSupport(order = 12) @PostResource({"/finish"}) @ApiOperation(value = "计划完成", notes = "传入planId") @PreAuth public R finish(@Valid @RequestBody Long planId) { return R.status(this.planService.finish(planId).booleanValue()); } @ApiOperationSupport(order = 13) @PostResource({"/close"}) @ApiOperation(value = "计划关闭", notes = "传入planId") @PreAuth public R close(@Valid @RequestBody Long planId) { return R.status(this.planService.close(planId).booleanValue()); } @ApiOperationSupport(order = 14) @PostResource({"/editWorkstation"}) @ApiOperation(value = "编辑工位", notes = "传入planId") @PreAuth public R editWorkstation(@Valid @RequestBody OrderEditWorkstationVO orderEditWorkstationVO) { return R.status(this.planService.editWorkstation(orderEditWorkstationVO).booleanValue()); } @ApiOperationSupport(order = 15) @GetMapping({"/list-craft"}) @ApiOperation("获取所有生产工艺的信息及其版本信息、绑定产品信息") public R> listCraft() { return R.data(this.planService.listCraft()); } @ApiOperationSupport(order = 16) @GetMapping({"/list-bom/{id}"}) @ApiOperation("根据生产工艺版本id,获取bom版本信息") public R> listBom(@PathVariable(value = "id", required = false) Long id) { return R.data(this.planService.listBom(id)); } @ApiOperationSupport(order = 17) @GetMapping({"/get-plan-craft/{id}"}) @ApiOperation("根据计划id,获取生产工艺信息") public R getCraftPlan(@PathVariable(value = "id", required = false) Long id) { return R.data(this.planService.getCraftPlan(id)); } }