From 26094cffde1b85f3d627f9038594b39c32203b76 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期三, 26 八月 2026 17:13:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderParamRecordServiceImpl.java | 61 ++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderParamRecordServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderParamRecordServiceImpl.java
index aff5d5a..baea293 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderParamRecordServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderParamRecordServiceImpl.java
@@ -32,7 +32,7 @@
/**
* MES 鐢熶骇宸ュ崟鍙傛暟璁板綍 Service 瀹炵幇绫�
*
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
*/
@Service
@Validated
@@ -50,6 +50,42 @@
private MesProTaskService mesProTaskService;
@Autowired
private MesProWorkOrderService mesProWorkOrderService;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Long createTaskParamRecord(Long taskId, Long templateId) {
+ MesProTaskDO task = mesProTaskService.getTask(taskId);
+ if (task == null || templateId == null) {
+ return null;
+ }
+ MesProWorkOrderDO workOrder = mesProWorkOrderService.getWorkOrder(task.getWorkOrderId());
+ MesPdProcessParamTemplateDO template = templateService.validateProcessParamTemplateExists(templateId);
+ List<MesPdProcessParamTemplateDetailDO> details = templateService.getProcessParamTemplateDetailListByTemplateId(templateId);
+ if (CollUtil.isEmpty(details)) {
+ throw exception(PRO_WORK_ORDER_PARAM_RECORD_TEMPLATE_NO_DETAIL);
+ }
+ MesProWorkOrderParamRecordDO record = MesProWorkOrderParamRecordDO.builder()
+ .workOrderId(workOrder != null ? workOrder.getId() : task.getWorkOrderId())
+ .taskId(taskId)
+ .templateId(template.getId())
+ .templateCode(template.getTemplateCode())
+ .templateName(template.getTemplateName())
+ .recordNo("TASK-" + taskId)
+ .remark("鐢熶骇浠诲姟鎺掍骇鏃剁敓鎴愮殑鍙傛暟蹇収")
+ .build();
+ paramRecordMapper.insert(record);
+ paramRecordDetailMapper.insertBatch(details.stream().map(detail -> MesProWorkOrderParamRecordDetailDO.builder()
+ .recordId(record.getId())
+ .templateDetailId(detail.getId())
+ .paramCode(detail.getParamCode())
+ .paramName(detail.getParamName())
+ .paramType(detail.getParamType())
+ .unitMeasureId(detail.getUnitMeasureId())
+ .paramValue(null)
+ .remark(detail.getRemark())
+ .build()).toList());
+ return record.getId();
+ }
@Override
@Transactional(rollbackFor = Exception.class)
@@ -191,6 +227,29 @@
return paramRecordMapper.selectListByWorkOrderId(workOrderId);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void updateTaskParamValues(Long taskId, List<Long> detailIds, List<String> values) {
+ if (CollUtil.isEmpty(detailIds)) {
+ return;
+ }
+ MesProWorkOrderParamRecordDO record = paramRecordMapper.selectFirstByTaskId(taskId);
+ if (record == null) {
+ return;
+ }
+ List<MesProWorkOrderParamRecordDetailDO> details = paramRecordDetailMapper.selectListByRecordId(record.getId());
+ Map<Long, MesProWorkOrderParamRecordDetailDO> detailMap = details.stream()
+ .collect(Collectors.toMap(MesProWorkOrderParamRecordDetailDO::getId, d -> d));
+ for (int i = 0; i < detailIds.size(); i++) {
+ MesProWorkOrderParamRecordDetailDO detail = detailMap.get(detailIds.get(i));
+ if (detail == null) {
+ throw exception(PRO_WORK_ORDER_PARAM_RECORD_DETAIL_NOT_IN_TEMPLATE);
+ }
+ detail.setParamValue(values != null && values.size() > i ? values.get(i) : null);
+ paramRecordDetailMapper.updateById(detail);
+ }
+ }
+
// ==================== 鏍¢獙鏂规硶 ====================
private MesProWorkOrderParamRecordDO validateParamRecordExists(Long id) {
--
Gitblit v1.9.3