From fda645046f5aba969a5d63751878568483ba244d Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 10 三月 2025 10:27:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java |   93 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 86 insertions(+), 7 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
index f5c0ad9..52f4d28 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglasstask/service/impl/RawGlassRawGlassStorageTaskServiceImpl.java
@@ -2,7 +2,12 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.config.Const;
+import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
+import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
+import com.mes.rawglassstation.entity.RawGlassStorageStation;
 import com.mes.rawglasstask.entity.RawGlassStorageTask;
 import com.mes.rawglasstask.entity.request.RawGlassTaskRequest;
 import com.mes.rawglasstask.mapper.RawGlassStorageTaskMapper;
@@ -13,6 +18,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -26,9 +33,11 @@
     @Autowired
     RedisUtil redisUtil;
 
+    @Resource
+    RawGlassStorageDetailsService rawGlassStorageDetailsService;
+
     @Override
-    public List<RawGlassStorageTask> listRawGlassTask() {
-        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
+    public List<RawGlassStorageTask> queryRawGlassHistoryTask(RawGlassTaskRequest request) {
         if (null == request) {
             request = new RawGlassTaskRequest();
         }
@@ -42,12 +51,13 @@
                 .in(CollectionUtil.isNotEmpty(request.getTaskState()), RawGlassStorageTask::getTaskState, request.getTaskState())
                 .in(CollectionUtil.isNotEmpty(request.getTaskType()), RawGlassStorageTask::getTaskType, request.getTaskType())
                 .orderByDesc(RawGlassStorageTask::getCreateTime));
+    }
 
-//        return list(new QueryWrapper<RawGlassStorageTask>()
-//                .in(CollectionUtil.isNotEmpty(request.getTaskState()), "task_state", request.getTaskState())
-//                .in(CollectionUtil.isNotEmpty(request.getTaskType()), "task_type", request.getTaskType())
-//                .between("create_time", request.getBeginDate(), request.getEndDate())
-//                .orderByDesc("create_time"));
+    @Override
+    public List<RawGlassStorageTask> listRawGlassTask() {
+        RawGlassTaskRequest request = redisUtil.getCacheObject("rawGlassTaskRequest");
+        return queryRawGlassHistoryTask(request);
+
     }
 
     @Override
@@ -60,4 +70,73 @@
         log.info("鍓嶇浼犲叆鍙傛暟锛歿}", request);
         return "success";
     }
+
+    @Override
+    public Boolean taskSuccess(Long taskId) {
+        //鑾峰彇浠诲姟姝e湪鎵ц鐨勪换鍔′俊鎭�
+        RawGlassStorageTask task = this.getById(taskId);
+        //鍘昏鎯呰〃鑾峰彇姝e湪鎵ц鐨勫師鐗囪鎯呬俊鎭�
+        RawGlassStorageDetails details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
+                .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT).eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+        );
+        RawGlassStorageDetails targetDetails = rawGlassStorageDetailsService.generateDetails(details, task.getEndSlot());
+        int deviceId = details.getDeviceId();
+        Integer taskType = task.getTaskType();
+        log.info("灏嗚鎯呰〃鐨勭姸鎬佹敼涓哄凡鍑哄簱");
+        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                .ne(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                .eq(RawGlassStorageDetails::getSlot, task.getStartSlot()));
+        log.info("浠诲姟鐘舵�佸凡鏇存敼涓猴細宸插畬鎴�");
+        this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_SUCCESS));
+        switch (taskType) {
+            case 1:
+            case 3:
+                log.info("1銆佸叆搴擄紝3銆佽皟搴︿换鍔°�倇}", taskType);
+                if (details.getRemainQuantity() > 0) {
+                    rawGlassStorageDetailsService.save(targetDetails);
+                }
+                break;
+            case 2:
+            case 4:
+                log.info("2銆佸嚭鐗�,4銆佸叆搴撹姹傘�倇}", taskType);
+                targetDetails = new RawGlassStorageDetails();
+                targetDetails.setSlot(task.getEndSlot());
+                targetDetails.setDeviceId(deviceId);
+                targetDetails.setShelf(task.getStartSlot());
+                targetDetails.setState(Const.RAW_GLASS_STATE_IN);
+                rawGlassStorageDetailsService.save(targetDetails);
+                break;
+            default:
+                break;
+        }
+        return Boolean.TRUE;
+    }
+
+
+    @Override
+    public Boolean taskError(Long taskId) {
+        //鑾峰彇浠诲姟姝e湪鎵ц鐨勪换鍔′俊鎭�
+        RawGlassStorageTask task = this.getById(taskId);
+        Integer taskType = task.getTaskType();
+        if (taskType.equals(Const.RAW_GLASS_TASK_TYPE_IN_REQUEST)) {
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_OUT)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+        } else {
+            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
+                    .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                    .eq(RawGlassStorageDetails::getSlot, task.getStartSlot())
+                    .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING, Const.RAW_GLASS_STATE_CAR));
+        }
+        this.update(new LambdaUpdateWrapper<RawGlassStorageTask>()
+                .eq(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
+        return Boolean.TRUE;
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.8.0