From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java | 42 ++++++++++++++----------------------------
1 files changed, 14 insertions(+), 28 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
index 37ab219..696fcb7 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
@@ -18,7 +18,6 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO;
-import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderProductionStatusEnum;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService;
@@ -68,6 +67,16 @@
private MesProTaskService taskService;
@Resource
private MesProProcessService processService;
+ @Resource
+ private cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderTechnicalFileService technicalFileService;
+
+ @GetMapping("/technical-files")
+ @Operation(summary = "鑾峰緱宸ュ崟鍒涘缓鏃剁殑鎶�鏈枃浠跺揩鐓�")
+ @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
+ public CommonResult<List<cn.iocoder.yudao.module.mdm.controller.admin.item.vo.MdmItemTechnicalFileRespVO>> getTechnicalFiles(@RequestParam("id") Long id) {
+ workOrderService.validateWorkOrderExists(id);
+ return success(technicalFileService.list(id));
+ }
@PostMapping("/create")
@Operation(summary = "鍒涘缓鐢熶骇宸ュ崟")
@@ -96,7 +105,6 @@
@GetMapping("/get")
@Operation(summary = "鑾峰緱鐢熶骇宸ュ崟")
@Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
- @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
public CommonResult<MesProWorkOrderRespVO> getWorkOrder(@RequestParam("id") Long id) {
MesProWorkOrderDO workOrder = workOrderService.getWorkOrder(id);
if (workOrder == null) {
@@ -107,7 +115,6 @@
@GetMapping("/page")
@Operation(summary = "鑾峰緱鐢熶骇宸ュ崟鍒嗛〉")
- @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
public CommonResult<PageResult<MesProWorkOrderRespVO>> getWorkOrderPage(@Valid MesProWorkOrderPageReqVO pageReqVO) {
PageResult<MesProWorkOrderDO> pageResult = workOrderService.getWorkOrderPage(pageReqVO);
return success(new PageResult<>(buildWorkOrderRespVOList(pageResult.getList()), pageResult.getTotal()));
@@ -115,14 +122,12 @@
@GetMapping("/approve-process-list")
@Operation(summary = "鑾峰彇瀹℃壒鎶ュ伐鐨勬祦绋嬪畾涔夊垪琛�")
- @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
public CommonResult<List<Map<String, Object>>> getWorkOrderApproveProcessDefinitionList() {
return success(workOrderService.getWorkOrderApproveProcessDefinitionList());
}
@GetMapping("/schedule-page")
@Operation(summary = "鑾峰緱鐢熶骇宸ュ崟璋冨害鐘舵�佸垎椤�")
- @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
public CommonResult<PageResult<MesProWorkOrderRespVO>> getWorkOrderSchedulePage(@Valid MesProWorkOrderPageReqVO pageReqVO) {
PageResult<MesProWorkOrderDO> pageResult = workOrderService.getWorkOrderSchedulePage(pageReqVO);
return success(new PageResult<>(buildWorkOrderRespVOList(pageResult.getList()), pageResult.getTotal()));
@@ -170,7 +175,6 @@
@GetMapping("/progress/{id}")
@Operation(summary = "鑾峰彇宸ュ崟杩涘害璇︽儏")
@Parameter(name = "id", description = "缂栧彿", required = true)
- @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')")
public CommonResult<MesProWorkOrderProgressRespVO> getWorkOrderProgress(@PathVariable("id") Long id) {
return success(workOrderService.getWorkOrderProgress(id));
}
@@ -237,14 +241,12 @@
vo.setCompletionProgress(produced.compareTo(BigDecimal.ZERO) > 0 ? new BigDecimal("100.00") : BigDecimal.ZERO);
}
- // 璁$畻杩涘害鍜岀姸鎬�
+ // 璁$畻宸ュ簭杩涘害
List<MesProWorkOrderProcessDO> processes = woProcessMap.getOrDefault(vo.getId(), Collections.emptyList());
List<MesProTaskDO> tasks = woTaskMap.getOrDefault(vo.getId(), Collections.emptyList());
-
+
List<MesProWorkOrderProcessProgressVO> progressList = new ArrayList<>();
- boolean allCompleted = !processes.isEmpty();
- boolean anyStarted = false;
-
+
Map<Long, List<MesProTaskDO>> processTaskMap = convertMultiMap(tasks, MesProTaskDO::getProcessId);
for (MesProWorkOrderProcessDO process : processes) {
@@ -263,25 +265,9 @@
progressVO.setProgress(totalProduced.compareTo(BigDecimal.ZERO) > 0 ? new BigDecimal("100.00") : BigDecimal.ZERO);
}
progressList.add(progressVO);
-
- if (totalProduced.compareTo(BigDecimal.ZERO) > 0) {
- anyStarted = true;
- }
- if (totalQty.compareTo(BigDecimal.ZERO) == 0 || totalProduced.compareTo(totalQty) < 0) {
- allCompleted = false;
- }
}
-
+
vo.setProcessProgressList(progressList);
- if (processes.isEmpty()) {
- vo.setProductionStatus(MesProWorkOrderProductionStatusEnum.WAITING.getStatus()); // 寰呯敓浜�
- } else if (allCompleted) {
- vo.setProductionStatus(MesProWorkOrderProductionStatusEnum.FINISHED.getStatus()); // 鐢熶骇瀹屾垚
- } else if (anyStarted) {
- vo.setProductionStatus(MesProWorkOrderProductionStatusEnum.PRODUCING.getStatus()); // 鐢熶骇涓�
- } else {
- vo.setProductionStatus(MesProWorkOrderProductionStatusEnum.WAITING.getStatus()); // 寰呯敓浜�
- }
});
}
--
Gitblit v1.9.3