From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 十二月 2024 18:40:43 +0800
Subject: [PATCH] 新建德森项目分支

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java |  310 +++++++++++++++++++++++++-------------------------
 1 files changed, 155 insertions(+), 155 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
index 7ac6f1d..f41b1c5 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -1,155 +1,155 @@
-package com.zy.asrs.wms.asrs.timer;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
-import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
-import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wms.asrs.entity.*;
-import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType;
-import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
-import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
-import com.zy.asrs.wms.asrs.service.*;
-import com.zy.asrs.wms.system.entity.Dict;
-import com.zy.asrs.wms.system.service.DictService;
-import com.zy.asrs.wms.utils.OrderUtils;
-import com.zy.asrs.wms.utils.Utils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-
-@Component
-public class TaskWaveTimer {
-
-    @Autowired
-    private TaskService taskService;
-    @Autowired
-    private TaskDetlService taskDetlService;
-    @Autowired
-    private OrderService orderService;
-    @Autowired
-    private OrderDetlService orderDetlService;
-    @Autowired
-    private OrderUtils orderUtils;
-    @Autowired
-    private CacheSiteService cacheSiteService;
-    @Autowired
-    private WaveSeedService waveSeedService;
-    @Autowired
-    private DictService dictService;
-
-    @Scheduled(cron = "0/3 * * * * ? ")
-    @Transactional
-    public void taskWave() {
-        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
-        try {
-            Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "autoCreateWaveSeed").eq(Dict::getStatus, 1));
-            if (dict == null) {
-                return;
-            }
-            String autoCreateWaveSeed = dict.getValue();
-            if (!autoCreateWaveSeed.equals("true")) {
-                return;
-            }
-
-            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
-            for (Task task : taskList) {
-                Long hostId = task.getHostId();
-
-                List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()).eq(TaskDetl::getHostId, hostId));
-                if (taskDetls.isEmpty()) {
-                    continue;
-                }
-
-                for (TaskDetl taskDetl : taskDetls) {
-                    //鍒嗛厤璁㈠崟
-                    Long waveId = taskDetl.getWaveId();
-                    List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
-                    if (list.isEmpty()) {
-                        continue;
-                    }
-
-                    ArrayList<Long> orderIds = new ArrayList<>();
-                    for (Order order : list) {
-                        orderIds.add(order.getId());
-                    }
-
-                    String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
-                    List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
-                            .in(OrderDetl::getOrderId, orderIds)
-                            .eq(OrderDetl::getStockIndex, matUniqueKey)
-                            .eq(OrderDetl::getHostId, hostId));
-                    if(orderDetls.isEmpty()){
-                        throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
-                    }
-
-                    Double anfme = taskDetl.getAnfme();
-                    for (OrderDetl orderDetl : orderDetls) {
-                        double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
-                        if (issued <= 0.0D) { continue; }
-                        if (anfme <= 0.0D) { break; }
-
-                        double workQty = issued;
-                        if(anfme - issued < 0){
-                            workQty = anfme;
-                        }
-                        anfme -= workQty;
-
-                        orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
-
-                        CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
-                        if (cacheSite == null) {
-                            throw new CoolException("缂撳瓨绔欑┖闂翠笉瀛樺湪");
-                        }
-
-                        WaveSeed waveSeed = new WaveSeed();
-                        waveSeed.setSiteId(cacheSite.getId());
-                        waveSeed.setSiteNo(cacheSite.getSiteNo());
-                        waveSeed.setOrderNo(orderDetl.getOrderNo());
-                        waveSeed.setOrderId(orderDetl.getOrderId());
-                        waveSeed.setOrderDetlId(orderDetl.getId());
-                        waveSeed.setTaskDetlId(taskDetl.getId());
-                        waveSeed.setAnfme(taskDetl.getAnfme());
-                        waveSeed.setWorkQty(0D);
-                        waveSeed.setMatnr(taskDetl.getMatnr());
-                        waveSeed.setBatch(taskDetl.getBatch());
-                        waveSeed.setFieldParams(JSON.toJSONString(taskDetl.getUniqueField()));
-                        waveSeed.setHostId(hostId);
-                        if (!waveSeedService.save(waveSeed)) {
-                            throw new CoolException("娉㈡鎾鍒涘缓澶辫触");
-                        }
-
-                        cacheSite.setOrderId(orderDetl.getOrderId());
-                        cacheSite.setOrderNo(orderDetl.getOrderNo());
-                        cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
-                        cacheSite.setUpdateTime(new Date());
-                        if (!cacheSiteService.updateById(cacheSite)) {
-                            throw new CoolException("缂撳瓨绔欐洿鏂板け璐�");
-                        }
-
-                    }
-
-                }
-
-                task.setTaskSts(TaskStsType.COMPLETE_OUT.id);
-                task.setUpdateTime(new Date());
-                if (!taskService.updateById(task)) {
-                    throw new CoolException("浠诲姟鏇存柊澶辫触");
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-        }finally {
-            InterceptorIgnoreHelper.clearIgnoreStrategy();
-        }
-    }
-
-}
+package com.zy.asrs.wms.asrs.timer;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
+import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
+import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
+import com.zy.asrs.wms.asrs.service.*;
+import com.zy.asrs.wms.system.entity.Dict;
+import com.zy.asrs.wms.system.service.DictService;
+import com.zy.asrs.wms.utils.OrderUtils;
+import com.zy.asrs.wms.utils.Utils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+@Component
+public class TaskWaveTimer {
+
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskDetlService taskDetlService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private OrderUtils orderUtils;
+    @Autowired
+    private CacheSiteService cacheSiteService;
+    @Autowired
+    private WaveSeedService waveSeedService;
+    @Autowired
+    private DictService dictService;
+
+//    @Scheduled(cron = "0/3 * * * * ? ")
+    @Transactional
+    public void taskWave() {
+        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
+        try {
+            Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "autoCreateWaveSeed").eq(Dict::getStatus, 1));
+            if (dict == null) {
+                return;
+            }
+            String autoCreateWaveSeed = dict.getValue();
+            if (!autoCreateWaveSeed.equals("true")) {
+                return;
+            }
+
+            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
+            for (Task task : taskList) {
+                Long hostId = task.getHostId();
+
+                List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()).eq(TaskDetl::getHostId, hostId));
+                if (taskDetls.isEmpty()) {
+                    continue;
+                }
+
+                for (TaskDetl taskDetl : taskDetls) {
+                    //鍒嗛厤璁㈠崟
+                    Long waveId = taskDetl.getWaveId();
+                    List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
+                    if (list.isEmpty()) {
+                        continue;
+                    }
+
+                    ArrayList<Long> orderIds = new ArrayList<>();
+                    for (Order order : list) {
+                        orderIds.add(order.getId());
+                    }
+
+                    String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
+                    List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                            .in(OrderDetl::getOrderId, orderIds)
+                            .eq(OrderDetl::getStockIndex, matUniqueKey)
+                            .eq(OrderDetl::getHostId, hostId));
+                    if(orderDetls.isEmpty()){
+                        throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+                    }
+
+                    Double anfme = taskDetl.getAnfme();
+                    for (OrderDetl orderDetl : orderDetls) {
+                        double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
+                        if (issued <= 0.0D) { continue; }
+                        if (anfme <= 0.0D) { break; }
+
+                        double workQty = issued;
+                        if(anfme - issued < 0){
+                            workQty = anfme;
+                        }
+                        anfme -= workQty;
+
+                        orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
+
+                        CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
+                        if (cacheSite == null) {
+                            throw new CoolException("缂撳瓨绔欑┖闂翠笉瀛樺湪");
+                        }
+
+                        WaveSeed waveSeed = new WaveSeed();
+                        waveSeed.setSiteId(cacheSite.getId());
+                        waveSeed.setSiteNo(cacheSite.getSiteNo());
+                        waveSeed.setOrderNo(orderDetl.getOrderNo());
+                        waveSeed.setOrderId(orderDetl.getOrderId());
+                        waveSeed.setOrderDetlId(orderDetl.getId());
+                        waveSeed.setTaskDetlId(taskDetl.getId());
+                        waveSeed.setAnfme(taskDetl.getAnfme());
+                        waveSeed.setWorkQty(0D);
+                        waveSeed.setMatnr(taskDetl.getMatnr());
+                        waveSeed.setBatch(taskDetl.getBatch());
+                        waveSeed.setFieldParams(JSON.toJSONString(taskDetl.getUniqueField()));
+                        waveSeed.setHostId(hostId);
+                        if (!waveSeedService.save(waveSeed)) {
+                            throw new CoolException("娉㈡鎾鍒涘缓澶辫触");
+                        }
+
+                        cacheSite.setOrderId(orderDetl.getOrderId());
+                        cacheSite.setOrderNo(orderDetl.getOrderNo());
+                        cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
+                        cacheSite.setUpdateTime(new Date());
+                        if (!cacheSiteService.updateById(cacheSite)) {
+                            throw new CoolException("缂撳瓨绔欐洿鏂板け璐�");
+                        }
+
+                    }
+
+                }
+
+                task.setTaskSts(TaskStsType.COMPLETE_OUT.id);
+                task.setUpdateTime(new Date());
+                if (!taskService.updateById(task)) {
+                    throw new CoolException("浠诲姟鏇存柊澶辫触");
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }finally {
+            InterceptorIgnoreHelper.clearIgnoreStrategy();
+        }
+    }
+
+}

--
Gitblit v1.9.1