yangys
2024-04-04 ed4a5236bab800094be4a8378f5098eebe3de6ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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<FmsOrderVO> 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<Long> count(@RequestParam @ApiIgnore Map<String, Object> 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<IPage<FmsOrderVO>> page(FmsOrderQueryVO fmsOrderQueryVO, Query query) {
        return R.data(this.fmsOrderService.getPageOrder(fmsOrderQueryVO, query));
    }
 
    @ApiOperationSupport(order = 4)
    @PostResource({"/save"})
    @ApiOperation(value = "保存工单基础信息", notes = "传入fmsOrderVO")
    public R<FmsOrderDetailVO> save(@Valid @RequestBody FmsOrderVO fmsOrderVO) {
        return R.data(this.fmsOrderService.save(fmsOrderVO));
    }
 
    @ApiOperationSupport(order = 6)
    @DeleteResource({"/remove"})
    @ApiOperation(value = "工单基础状态信息删除", notes = "传入ids")
    public R<Boolean> 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<List<CraftRoutingDetailVO>> listCraft() {
        return R.data(this.fmsOrderService.listCraft());
    }
 
    @ApiOperationSupport(order = 7)
    @GetResource({"/get-production-craft/{productionId}"})
    @ApiOperation(value = "根据产品ID查询工艺路线列表数据", notes = "传入产品id")
    public R<List<CraftRoutingDetailVO>> getProductionCraft(@PathVariable String productionId) {
        return R.data(this.fmsOrderService.listProductionCraft(productionId));
    }
 
    @PostResource({"/publish"})
    @ApiOperation(value = "工单发布", notes = "传入工单ID")
    public R<FmsOrderVO> publish(@RequestParam String orderId) {
        return R.data(this.fmsOrderService.publish(orderId));
    }
 
    @PostResource({"/pause"})
    @ApiOperation(value = "工单暂停", notes = "传入工单ID")
    public R<List<FmsOrderVO>> pause(@RequestBody List<String> orderIds) {
        return R.data(this.fmsOrderService.pauseBatch(orderIds));
    }
 
    @PostResource({"/start"})
    @ApiOperation(value = "工单启动", notes = "传入工单ID")
    public R<List<FmsOrderVO>> start(@RequestBody List<String> orderIds) {
        return R.data(this.fmsOrderService.startOrders(orderIds));
    }
 
    @GetResource({"/statistics"})
    @ApiOperation("查看工单统计信息")
    public R<FmsOrderStatusStatVO> orderStatistics() {
        return R.data(this.fmsOrderService.orderStatistics());
    }
 
    @GetResource({"/production-statistics"})
    @ApiOperation(value = "查看产量统计信息", notes = "传入工单ID")
    public R<List<FmsOrderProductionStatVO>> 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<Boolean> 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<SwitchDTO> getFmsOnline() {
        return R.data(this.paramService.orderStartStatus());
    }
}