From 9d42f647f5589e4a560d745d6b359ae6c273bd8d Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 11 五月 2026 13:08:52 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' into dev_宁夏_英泽防锈

---
 src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
index e202ec2..6e9457d 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -22,7 +22,9 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.production.bean.dto.ProductionOperationTaskDto;
 import com.ruoyi.production.bean.vo.ProductionOperationTaskVo;
+import com.ruoyi.production.mapper.ProductionOrderMapper;
 import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
+import com.ruoyi.production.pojo.ProductionOrder;
 import com.ruoyi.production.pojo.ProductionOperationTask;
 import com.ruoyi.production.service.ProductionOperationTaskService;
 import com.ruoyi.project.system.domain.SysUser;
@@ -45,6 +47,7 @@
 public class ProductionOperationTaskServiceImpl extends ServiceImpl<ProductionOperationTaskMapper, ProductionOperationTask> implements ProductionOperationTaskService {
 
     private final SysUserMapper sysUserMapper;
+    private final ProductionOrderMapper productionOrderMapper;
 
     private final FileUtil fileUtil;
 
@@ -55,6 +58,7 @@
 
     @Override
     public IPage<ProductionOperationTaskVo> pageProductionOperationTask(Page<ProductionOperationTaskDto> page, ProductionOperationTaskDto dto) {
+        // 鍒嗛〉鏌ヨ鐢熶骇宸ュ簭浠诲姟
         Page<ProductionOperationTaskVo> voPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
         IPage<ProductionOperationTaskVo> result = baseMapper.pageProductionOperationTask(voPage, dto);
         fillUserNames(result.getRecords());
@@ -63,6 +67,7 @@
 
     @Override
     public List<ProductionOperationTaskVo> listProductionOperationTask(ProductionOperationTaskDto dto) {
+        // 鏌ヨ宸ュ簭浠诲姟鍒楄〃
         List<ProductionOperationTaskVo> result = BeanUtil.copyToList(this.list(buildQueryWrapper(dto)), ProductionOperationTaskVo.class);
         fillUserNames(result);
         return result;
@@ -70,32 +75,43 @@
 
     @Override
     public ProductionOperationTaskVo getProductionOperationTaskInfo(Long id) {
+        // 鑾峰彇鐢熶骇宸ュ簭浠诲姟璇︽儏
         ProductionOperationTask item = this.getById(id);
         if (item == null) {
             return null;
         }
         ProductionOperationTaskVo vo = BeanUtil.copyProperties(item, ProductionOperationTaskVo.class);
+        if (item.getProductionOrderId() != null) {
+            ProductionOrder productionOrder = productionOrderMapper.selectById(item.getProductionOrderId());
+            if (productionOrder != null) {
+                vo.setEndOrder(productionOrder.getEndOrder());
+            }
+        }
         fillUserNames(Collections.singletonList(vo));
         return vo;
     }
 
     @Override
     public boolean saveProductionOperationTask(ProductionOperationTask productionOperationTask) {
+        // 淇濆瓨鐢熶骇宸ュ簭浠诲姟
         return this.saveOrUpdate(productionOperationTask);
     }
 
     @Override
     public boolean removeProductionOperationTask(List<Long> ids) {
+        // 鍒犻櫎鐢熶骇宸ュ簭浠诲姟
         return ids != null && !ids.isEmpty() && this.removeByIds(ids);
     }
 
     @Override
     public int updateProductWorkOrder(ProductionOperationTaskDto dto) {
+        // 鏇存柊宸ュ簭浠诲姟瀵瑰簲鐨勫伐鍗曚俊鎭�
         return baseMapper.updateById(dto);
     }
 
     @Override
     public boolean assign(ProductionOperationTaskDto dto) {
+        // 鍒嗛厤宸ュ簭浠诲姟鎵ц浜�
         if (dto == null || dto.getId() == null) {
             throw new ServiceException("宸ュ崟ID涓嶈兘涓虹┖");
         }
@@ -111,6 +127,7 @@
     }
 
     private LambdaQueryWrapper<ProductionOperationTask> buildQueryWrapper(ProductionOperationTaskDto dto) {
+        // 鎸夋潯浠跺姩鎬佹瀯寤烘暟鎹簱鏌ヨ鏉′欢
         ProductionOperationTask query = dto == null ? new ProductionOperationTask() : dto;
         return Wrappers.<ProductionOperationTask>lambdaQuery()
                 .eq(query.getId() != null, ProductionOperationTask::getId, query.getId())
@@ -124,10 +141,12 @@
     }
 
     private void fillUserNames(List<ProductionOperationTaskVo> voList) {
+        // 濉厖鐢ㄦ埛鍚嶇О
         if (voList == null || voList.isEmpty()) {
             return;
         }
         Set<Long> userIdSet = new LinkedHashSet<>();
+        // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
         for (ProductionOperationTaskVo vo : voList) {
             if (vo == null) {
                 continue;
@@ -163,6 +182,7 @@
     }
 
     private List<Long> parseUserIdList(String userIds, boolean strict) {
+        // 瑙f瀽骞舵牎楠岀敤鎴稩D鏁扮粍瀛楃涓�
         if (StringUtils.isBlank(userIds)) {
             if (strict) {
                 throw new ServiceException("userIds鏍煎紡涓嶆纭紝蹇呴』涓篔SON鏁板瓧鏁扮粍");
@@ -190,6 +210,7 @@
 
     @Override
     public void down(HttpServletResponse response, ProductionOperationTaskDto dto) {
+        // 瀵煎嚭宸ュ簭浠诲姟鏁版嵁
         if (dto == null || dto.getId() == null) {
             throw new ServiceException("宸ュ崟ID涓嶈兘涓虹┖");
         }
@@ -241,15 +262,18 @@
     }
 
     private List<Map<String, Object>> buildTaskAttachmentImages(Long taskId) {
+        // 缁勮浠诲姟闄勪欢鍥剧墖鏁版嵁鐢ㄤ簬瀵煎嚭
         List<Map<String, Object>> images = new ArrayList<>();
         StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
         storageAttachmentDTO.setRecordType(RecordTypeEnum.PRODUCTION_OPERATION_TASK.getType());
         storageAttachmentDTO.setRecordId(taskId);
         List<StorageBlobVO> taskWorkOrderFiles =
                 fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(storageAttachmentDTO);
+        // 鍙傛暟涓庡墠缃潯浠舵牎楠�
         if (CollectionUtils.isEmpty(taskWorkOrderFiles)) {
             return images;
         }
+        // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
         for (StorageBlobVO blobVO : taskWorkOrderFiles) {
             if (blobVO == null) {
                 continue;
@@ -277,6 +301,7 @@
     }
 
     private File resolveImageFile(StorageBlobVO blobVO) {
+        // 灏嗛檮浠朵俊鎭В鏋愪负鏈湴鍥剧墖鏂囦欢瀵硅薄
         if (blobVO == null || StringUtils.isBlank(blobVO.getUidFilename())) {
             return null;
         }
@@ -287,6 +312,7 @@
     }
 
     private PictureType resolvePictureType(StorageBlobVO blobVO) {
+        // 鎸夋枃浠跺悕鎴栧唴瀹圭被鍨嬭瘑鍒浘鐗囨牸寮�
         if (blobVO == null) {
             return null;
         }
@@ -302,6 +328,7 @@
     }
 
     private PictureType parsePictureTypeByFileName(String fileName) {
+        // 鏍规嵁鏂囦欢鍚庣紑瑙f瀽鍥剧墖鏍煎紡
         if (StringUtils.isBlank(fileName) || !fileName.contains(".")) {
             return null;
         }
@@ -313,6 +340,7 @@
     }
 
     private PictureType parsePictureTypeByContentType(String contentType) {
+        // 鏍规嵁Content-Type瑙f瀽鍥剧墖鏍煎紡
         if (StringUtils.isBlank(contentType)) {
             return null;
         }
@@ -338,4 +366,10 @@
                 return null;
         }
     }
+
+    @Override
+    public List<ProductionOperationTaskVo> getOperation(ProductionOperationTaskDto dto) {
+        // 鏌ヨ宸ュ簭浠诲姟鍒楄〃
+        return baseMapper.getOperation(dto);
+    }
 }

--
Gitblit v1.9.3