package com.qianwen.smartman.modules.fms.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 java.util.Map; import java.util.Optional; import javax.validation.Valid; 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.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.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.vo.CraftRoutingDetailVO; import com.qianwen.smartman.modules.cps.vo.IdsVO; import com.qianwen.smartman.modules.fms.convert.FmsOrderConvert; import com.qianwen.smartman.modules.fms.dto.SwitchDTO; import com.qianwen.smartman.modules.fms.entity.FmsOrder; import com.qianwen.smartman.modules.fms.enums.FmsOrderEnum; import com.qianwen.smartman.modules.fms.service.IFmsOrderService; import com.qianwen.smartman.modules.fms.vo.FmsOrderDetailVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderProductionStatVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderQueryVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderStatusStatVO; import com.qianwen.smartman.modules.fms.vo.FmsOrderVO; import com.qianwen.smartman.modules.system.service.IDictService; import com.qianwen.smartman.modules.system.service.IParamService; 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 springfox.documentation.annotations.ApiIgnore; @Api(value = "fms_order", tags = {"fms_order"}) @ApiResource({"blade-fms/order"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/fms/controller/FmsOrderController.class */ public class FmsOrderController extends BladeController { private final IFmsOrderService fmsOrderService; private final IParamService paramService; private final IDictService dictService; public FmsOrderController(final IFmsOrderService fmsOrderService, final IParamService paramService, final IDictService dictService) { this.fmsOrderService = fmsOrderService; this.paramService = paramService; this.dictService = dictService; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "工单基础状态信息详情", notes = "传入fmsOrder") public R detail(@PathVariable String id) { FmsOrder fmsOrder = (FmsOrder) this.fmsOrderService.getById(id); FmsOrderVO fmsOrderVO = (FmsOrderVO) Optional.ofNullable(fmsOrder).map(order -> { return FmsOrderConvert.INSTANCE.convert(fmsOrder); }).map(vo -> { vo.setOrderTypeLabel(this.dictService.getValue(FmsOrderEnum.FMS_ORDER_TYPE.getCode(), vo.getOrderType())); vo.setOrderStatusLabel(this.dictService.getValue(FmsOrderEnum.FMS_ORDER_STATUS.getCode(), vo.getOrderStatus())); return vo; }).orElse(null); return R.data(fmsOrderVO); } @ApiOperationSupport(order = 2) @GetResource({"/count"}) @ApiOperation(value = "工单基础状态信息统计值", notes = "传入map") public R count(@RequestParam @ApiIgnore Map params) { long count = this.fmsOrderService.count(Condition.getQueryWrapper(params, FmsOrder.class)); return R.data(Long.valueOf(count)); } @ApiOperationSupport(order = 3) @GetResource({"/page"}) @ApiOperation(value = "工单基础状态信息分页", notes = "fmsOrderQueryVO") public R> page(FmsOrderQueryVO fmsOrderQueryVO, Query query) { return R.data(this.fmsOrderService.getPageOrder(fmsOrderQueryVO, query)); } @ApiOperationSupport(order = 4) @PostResource({"/save"}) @ApiOperation(value = "保存工单基础信息", notes = "传入fmsOrderVO") public R save(@Valid @RequestBody FmsOrderVO fmsOrderVO) { return R.data(this.fmsOrderService.save(fmsOrderVO)); } @ApiOperationSupport(order = 6) @DeleteResource({"/remove"}) @ApiOperation(value = "工单基础状态信息删除", notes = "传入ids") public R remove(@ApiParam(value = "主键", required = true) @RequestBody IdsVO ids) { if (Func.isEmpty(ids.getIds())) { return R.status(false); } return R.data(this.fmsOrderService.removeOrder(ids)); } @ApiOperationSupport(order = 7) @GetResource({"/list-craft"}) @ApiOperation("获取所有的工艺路线列表") public R> listCraft() { return R.data(this.fmsOrderService.listCraft()); } @ApiOperationSupport(order = 7) @GetResource({"/get-production-craft/{productionId}"}) @ApiOperation(value = "根据产品ID查询工艺路线列表数据", notes = "传入产品id") public R> getProductionCraft(@PathVariable String productionId) { return R.data(this.fmsOrderService.listProductionCraft(productionId)); } @PostResource({"/publish"}) @ApiOperation(value = "工单发布", notes = "传入工单ID") public R publish(@RequestParam String orderId) { return R.data(this.fmsOrderService.publish(orderId)); } @PostResource({"/pause"}) @ApiOperation(value = "工单暂停", notes = "传入工单ID") public R> pause(@RequestBody List orderIds) { return R.data(this.fmsOrderService.pauseBatch(orderIds)); } @PostResource({"/start"}) @ApiOperation(value = "工单启动", notes = "传入工单ID") public R> start(@RequestBody List orderIds) { return R.data(this.fmsOrderService.startOrders(orderIds)); } @GetResource({"/statistics"}) @ApiOperation("查看工单统计信息") public R orderStatistics() { return R.data(this.fmsOrderService.orderStatistics()); } @GetResource({"/production-statistics"}) @ApiOperation(value = "查看产量统计信息", notes = "传入工单ID") public R> productionStatistics(@RequestParam String orderId) { return R.data(this.fmsOrderService.productionStatistics(orderId)); } @PostResource({"/save-workstation"}) @ApiOperation(value = "保存指派工位信息", notes = "传入FmsOrderDetailVO") public void saveWorkstation(@Valid @RequestBody FmsOrderDetailVO fmsOrderDetailVO) { this.fmsOrderService.saveWorkstation(fmsOrderDetailVO); } @PutResource({"/shut-down-order"}) @ApiOperation("停止计划工单(产线)") public R shutDownOrder() { return R.status(this.fmsOrderService.stopDownOrder().booleanValue()); } @PostResource({"/switch"}) @ApiOperation("手自动切换") public void switchState(@RequestBody SwitchDTO switchDTO) { this.paramService.switchState(switchDTO); } @GetResource({"/fms-running-status"}) @ApiOperation(value = "获取柔性线当前运行状态", notes = "false 手动 true 自动") public R getFmsOnline() { return R.data(this.paramService.orderStartStatus()); } }