From 617a8c4fc0b81ec4b96db8a013a91f4e666b0b96 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 08 一月 2025 14:33:45 +0800
Subject: [PATCH] 出现空指针异常

---
 src/main/java/com/zy/common/model/TaskDto.java |   98 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 96 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/common/model/TaskDto.java b/src/main/java/com/zy/common/model/TaskDto.java
index 02f1d74..494c703 100644
--- a/src/main/java/com/zy/common/model/TaskDto.java
+++ b/src/main/java/com/zy/common/model/TaskDto.java
@@ -1,10 +1,14 @@
 package com.zy.common.model;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.service.LocDetlService;
 import lombok.Data;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by vincent on 2022/3/28
@@ -16,6 +20,8 @@
 
     private Integer staNo;
 
+    private String agvStaNo;
+
     private List<LocDto> locDtos;
 
     {
@@ -25,6 +31,18 @@
     public TaskDto(String locNo, Integer staNo) {
         this.locNo = locNo;
         this.staNo = staNo;
+    }
+
+    public TaskDto(String locNo, Integer staNo, LocDto locDto) {
+        this.locNo = locNo;
+        this.staNo = staNo;
+        this.locDtos.add(locDto);
+    }
+
+    public TaskDto(String locNo, String agvStaNo, LocDto locDto) {
+        this.locNo = locNo;
+        this.agvStaNo = agvStaNo;
+        this.locDtos.add(locDto);
     }
 
     public TaskDto(String locNo, Integer staNo, List<LocDto> locDtos) {
@@ -38,6 +56,9 @@
             return false;
         }
         for (TaskDto taskDto : list) {
+            if(Cools.isEmpty(taskDto.getStaNo()) && dto.getLocNo().equals(taskDto.getLocNo())){
+                return true;
+            }
             if (dto.getLocNo().equals(taskDto.getLocNo()) && taskDto.getStaNo().equals(dto.getStaNo())) {
                 return true;
             }
@@ -50,6 +71,9 @@
             return null;
         }
         for (TaskDto taskDto : list) {
+            if(Cools.isEmpty(taskDto.getStaNo()) && dto.getLocNo().equals(taskDto.getLocNo())){
+                return taskDto;
+            }
             if (dto.getLocNo().equals(taskDto.getLocNo()) && taskDto.getStaNo().equals(dto.getStaNo())) {
                 return taskDto;
             }
@@ -57,4 +81,74 @@
         return null;
     }
 
+    public boolean isAll(){
+        // 姹囨�讳笉鑰冭檻搴忓垪鐮�
+        List<DetlDto> detlDtos = new ArrayList<>();
+        for (LocDto locDto : this.getLocDtos()) {
+            DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme(), locDto.getCsocode(), locDto.getIsoseq(),locDto.getContainerCode());
+            //dto.setContainerCode(locDto.getContainerCode());
+            if (DetlDto.has(detlDtos, dto)) {
+                DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),dto.getContainerCode());
+                assert detlDto != null;
+                detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme());
+            } else {
+                detlDtos.add(new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq(),locDto.getContainerCode()));
+            }
+        }
+
+        // 鏌ヨ褰撳墠搴撲綅鍙锋墍鏈夌殑搴撳瓨鏄庣粏
+        LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", this.locNo));
+        if (locDetls == null || locDetls.isEmpty()){
+            throw new CoolException("妫�绱㈠簱瀛樻槑缁嗗け璐ワ紝搴撲綅鍙�=" + this.locNo);
+        }
+        int sameNumber = 0;
+        for (LocDetl locDetl : locDetls) {
+            Iterator<DetlDto> iterator = detlDtos.iterator();
+            while (iterator.hasNext()) {
+                DetlDto dto = iterator.next();
+                if (!dto.getMatnr().equals(locDetl.getMatnr())) {
+                    continue;
+                }
+                if(!Cools.eq(dto.getBatch(),locDetl.getBatch())){
+                    continue;
+                }
+                if(!Cools.eq(dto.getCsocode(),locDetl.getThreeCode())){
+                    continue;
+                }
+                if(!Cools.eq(dto.getIsoseq(),locDetl.getDeadTime())){
+                    continue;
+                }
+                if(!Cools.eq(dto.getContainerCode(),locDetl.getSuppCode())){
+                    continue;
+                }
+//                if (Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
+//                    continue;
+//                }
+//                if (!Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(locDetl.getBatch())) {
+//                    continue;
+//                }
+//                if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(locDetl.getBatch())) {
+//                    if (!dto.getBatch().equals(locDetl.getBatch())) {
+//                        continue;
+//                    }
+//                }
+//                if (!Cools.isEmpty(dto.getContainerCode()) && !Cools.isEmpty(locDetl.getSuppCode())) {
+//                    if (!dto.getContainerCode().equals(locDetl.getSuppCode())) {
+//                        continue;
+//                    }
+//                }
+                if (dto.getAnfme() > locDetl.getAnfme()) {
+                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
+                }
+                if (dto.getAnfme().equals(locDetl.getAnfme())) {
+                    sameNumber++;
+                    iterator.remove();
+                    break;
+                }
+            }
+        }
+        return sameNumber == locDetls.size();
+    }
+
 }

--
Gitblit v1.9.1