From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java |  136 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 136 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
index 8709da5..876d202 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/service/impl/StorageTaskServiceImpl.java
@@ -3,22 +3,43 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.loadposition.entity.LoadPosition;
+import com.mes.loadposition.mapper.LoadPositionMapper;
+import com.mes.rawusage.entity.RawUsage;
+import com.mes.rawusage.mapper.RawUsageMapper;
+import com.mes.shelfrack.entity.ShelfRack;
+import com.mes.shelfrack.entity.request.RawUsageAndShelfRack;
+import com.mes.shelfrack.mapper.ShelfRackMapper;
+import com.mes.storagetask.entity.request.StorageTaskRequest;
 import com.mes.storagetask.mapper.StorageTaskMapper;
 import com.mes.storagetask.entity.StorageTask;
 import com.mes.storagetask.service.StorageTaskService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * @author system
  * @since 2024-07-09 14:51:27
  */
 @Service
+@Slf4j
 public class StorageTaskServiceImpl extends ServiceImpl<StorageTaskMapper, StorageTask> implements StorageTaskService {
 
     @Autowired
     private StorageTaskMapper storageTaskMapper;
+    @Autowired
+    private LoadPositionMapper loadPositionMapper;
+    @Autowired
+    private ShelfRackMapper shelfRackMapper;
+    @Autowired
+    private RawUsageMapper rawUsageMapper;
+
 
     @Override
     public List<StorageTask> findList(StorageTask params){
@@ -27,5 +48,120 @@
     }
 
 
+    public Map<String, Optional<StorageTask>> findLatestTasks() {
+        Map<String, Optional<StorageTask>> latestTasks = new HashMap<>();
+
+        // 鏌ヨ鏈�鏂扮殑宸插畬鎴愪换鍔�
+        LambdaQueryWrapper<StorageTask> completedWrapper = new LambdaQueryWrapper<>();
+        completedWrapper.eq(StorageTask::getTaskType, "宸插畬鎴�")
+                .orderByDesc(StorageTask::getId)
+                .last("LIMIT 1");
+        Optional<StorageTask> latestCompletedTask = Optional.ofNullable(storageTaskMapper.selectOne(completedWrapper));
+        latestTasks.put("宸插畬鎴�", latestCompletedTask);
+
+        // 鏌ヨ鏈�鏂扮殑绛夊緟涓换鍔�
+        LambdaQueryWrapper<StorageTask> pendingWrapper = new LambdaQueryWrapper<>();
+        pendingWrapper.eq(StorageTask::getTaskType, "绛夊緟涓�")
+                .orderByDesc(StorageTask::getId);
+        Optional<StorageTask> latestPendingTask = Optional.ofNullable(storageTaskMapper.selectOne(pendingWrapper));
+        latestTasks.put("绛夊緟涓�", latestPendingTask);
+        log.info(latestTasks+"");
+        return latestTasks;
+    }
+
+
+    @Override
+    public   List<StorageTaskRequest>  Tasks() {
+        return baseMapper.selectTasks();
+    }
+
+
+
+    @Override
+    public void taskUpdate(StorageTask request) {
+        Integer taskId = request.getId();
+        String taskType = request.getTaskType();
+        String Type = request.getType();
+        String taskState = request.getTaskState();
+        String shelfRack = request.getShelfRack();
+        String loadRack = request.getLoadRack();
+
+        if ("閲嶆柊寮�濮�".equals(Type)) {
+            StorageTask storageTask = new StorageTask();
+            storageTask.setTaskState("绛夊緟涓�");
+            LambdaQueryWrapper<StorageTask> queryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                    .eq(StorageTask::getId, request.getId());
+            storageTaskMapper.update(request,queryWrapper);
+        } else if ("瀹屾垚".equals(Type)) {
+            StorageTask existingTask = storageTaskMapper.selectById(taskId);
+            if (existingTask != null && "姝e湪宸ヤ綔".equals(existingTask.getTaskState())) {
+                if ("浠庝粨浣嶅埌涓婄墖浣�".equals(taskType) || "浠庝粨浣嶅埌鍚婅浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("姝e湪浣跨敤");
+                    loadPosition.setStorageTaskId(request.getId());
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    StorageTask storageTask = new StorageTask();
+                    storageTask.setTaskState("姝e湪浣跨敤");
+                    LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                            .eq(StorageTask::getId, request.getId());
+                    storageTaskMapper.update(request,StorageTaskqueryWrapper);
+                } else if ("浠庝笂鐗囦綅鍒颁粨浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("浣跨敤涓�");
+                    loadPosition.setStorageTaskId(null);
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    ShelfRack loshelfRack = new ShelfRack();
+                    LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+                            .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+                    RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+                    if(RawUsage.getLeftPieces()==0){
+                        loshelfRack.setState("绌洪棽");
+                    }else {
+                        loshelfRack.setState("浣跨敤涓�");
+                    }
+                    LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                            .eq(ShelfRack::getNumber, request.getLoadRack());
+                    shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+                } else if ("浠庡悐瑁呬綅鍒颁粨浣�".equals(taskType)) {
+                    LoadPosition loadPosition = new LoadPosition();
+                    loadPosition.setState("绌洪棽");
+                    loadPosition.setStorageTaskId(null);
+                    LambdaQueryWrapper<LoadPosition> queryWrapper = Wrappers.lambdaQuery(LoadPosition.class)
+                            .eq(LoadPosition::getNumber, request.getLoadRack());
+                    loadPositionMapper.update(loadPosition, queryWrapper);
+                    ShelfRack loshelfRack = new ShelfRack();
+                    LambdaQueryWrapper<RawUsage> RawUsagequeryWrapper = Wrappers.lambdaQuery(RawUsage.class)
+                            .eq(RawUsage::getId,loshelfRack.getRawPackageId());
+                    RawUsage RawUsage = rawUsageMapper.selectOne(RawUsagequeryWrapper);
+                    if(RawUsage.getLeftPieces()==1){
+                        loshelfRack.setEnableState("鍚敤");
+                    }else {
+                        loshelfRack.setEnableState(loshelfRack.getEnableState());
+                    }
+                    loadPosition.setState("浣跨敤涓�");
+                    LambdaQueryWrapper<ShelfRack> loshelfRackqueryWrapper = Wrappers.lambdaQuery(ShelfRack.class)
+                            .eq(ShelfRack::getNumber, request.getLoadRack());
+                    shelfRackMapper.update(loshelfRack, loshelfRackqueryWrapper);
+                }
+                StorageTask storageTask = new StorageTask();
+                storageTask.setTaskState("宸插畬鎴�");
+                LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                        .eq(StorageTask::getId, request.getId());
+                storageTaskMapper.update(storageTask, StorageTaskqueryWrapper);
+            }
+        } else if ("鍒犻櫎".equals(Type)) {
+
+            LambdaQueryWrapper<StorageTask> StorageTaskqueryWrapper = Wrappers.lambdaQuery(StorageTask.class)
+                    .eq(StorageTask::getId, request.getId());
+            storageTaskMapper.delete(StorageTaskqueryWrapper);
+        }
+    }
+
+
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0