From a6f97ff678665c497645911077c65395c6c01a6e Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 26 十月 2023 16:28:55 +0800
Subject: [PATCH] 库存调整单据修改

---
 src/main/java/com/zy/asrs/utils/Utils.java                       |   42 +++++++++++++++++++++
 src/main/webapp/views/allLocDetl/locDetl.html                    |    1 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java      |   12 ++----
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java   |   14 +++---
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java |    3 -
 5 files changed, 55 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 6ac573e..0430850 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -9,12 +9,14 @@
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.OrderDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.TaskDto;
 import com.zy.common.service.AgvCommonService;
 import com.zy.common.web.BaseController;
+import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,7 +25,6 @@
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
-import java.util.UUID;
 
 /**
  * Created by vincent on 2020/6/11
@@ -69,6 +70,7 @@
     鍏ュ簱
      */
     @Transactional
+    @Synchronized
     public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
 
         Date now = new Date();
@@ -350,8 +352,8 @@
                         adjDetl.setAppeTime(now);
                         adjDetl.setAppeUser(userId);
 
-                        UUID uuid = UUID.randomUUID();
-                        adjDetl.setOrderNo(uuid.toString());
+                        adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
+
                         adjDetl.setCsocode(locDetl.getThreeCode());
                         adjDetl.setIsoseq(locDetl.getDeadTime());
 
@@ -380,6 +382,7 @@
             adjDetl.setModiUser(userId);
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
 
             adjDetlService.save(adjDetl, userId);
         }
@@ -414,8 +417,7 @@
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
 
-            UUID uuid = UUID.randomUUID();
-            adjDetl.setOrderNo(uuid.toString());
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
             adjDetl.setCsocode(locDetl.getThreeCode());
             adjDetl.setIsoseq(locDetl.getDeadTime());
 
@@ -731,8 +733,6 @@
                 orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
             }
         }
-
-
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index d8e056b..2cf9450 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -128,8 +128,7 @@
     public int containerArrived(AgvWrkMast agvWrkMast) {
 
         Map<String,String> containerArrivedParam = new HashMap<>();
-        String slotCode = agvWrkMast.getSourceLocNo().substring(3, 6) + "-1";
-        containerArrivedParam.put("slotCode",slotCode);
+        containerArrivedParam.put("slotCode",agvWrkMast.getSourceLocNo());
         containerArrivedParam.put("containerCode",agvWrkMast.getBarcode());
 
         return doHttpRequest(containerArrivedParam,"瀹瑰櫒杈惧埌閫氱煡",url, containerArrivedPath,null,"127.0.0.1");
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index f4a2464..4369907 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -221,7 +221,7 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), null);
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getContainerCode());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
@@ -868,9 +868,7 @@
                         adjDetl.setModiUser(userId);
                         adjDetl.setAppeTime(now);
                         adjDetl.setAppeUser(userId);
-
-                        UUID uuid = UUID.randomUUID();
-                        adjDetl.setOrderNo(uuid.toString());
+                        adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
                         adjDetl.setCsocode(locDetl.getThreeCode());
                         adjDetl.setIsoseq(locDetl.getDeadTime());
 
@@ -899,7 +897,7 @@
             adjDetl.setModiUser(userId);
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
-
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
             adjDetlService.save(adjDetl, userId);
         }
 
@@ -932,11 +930,9 @@
             adjDetl.setModiUser(userId);
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
-
-            UUID uuid = UUID.randomUUID();
-            adjDetl.setOrderNo(uuid.toString());
             adjDetl.setCsocode(locDetl.getThreeCode());
             adjDetl.setIsoseq(locDetl.getDeadTime());
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
 
             adjDetlService.save(adjDetl, userId);
         }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index aec9f69..f4ca8db 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,15 +1,21 @@
 package com.zy.asrs.utils;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Arith;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.AdjDetl;
+import com.zy.asrs.service.AdjDetlService;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -407,4 +413,40 @@
         wapperSetCondition(wrapper,"batch",batch);
     }
 
+    //鐢熸垚搴撳瓨璋冩暣璁板綍鍗曟嵁鍙� (骞存湀鏃�+4浣嶆祦姘�)
+    public static String generateAdjustOrderNo(){
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String dateStr = sdf.format(date);
+
+        try {
+            AdjDetlService adjDetlService = SpringUtils.getBean(AdjDetlService.class);
+            AdjDetl adjDetl = adjDetlService.selectOne(new EntityWrapper<AdjDetl>().orderBy("adj_id",false));
+            if(!Cools.isEmpty(adjDetl)){
+                String orderNo = adjDetl.getOrderNo();
+                String lastDateStr = orderNo.substring(0, 8);
+                if(Cools.eq(dateStr,lastDateStr)){
+                    int index = Integer.parseInt(orderNo.substring(8, 12));
+                    index++;
+                    if(index < 10){
+                        return dateStr + "000" + index;
+                    }
+                    if(index < 100){
+                        return dateStr + "00" + index;
+                    }
+                    if(index < 1000){
+                        return dateStr + "0" + index;
+                    }
+                    return dateStr + index;
+                }else {
+                    return dateStr + "0000";
+                }
+            }else {
+                return dateStr + "0000";
+            }
+        }catch (Exception e){
+            return dateStr + "0000";
+        }
+    }
+
 }
diff --git a/src/main/webapp/views/allLocDetl/locDetl.html b/src/main/webapp/views/allLocDetl/locDetl.html
index 69897c7..ab8bb4a 100644
--- a/src/main/webapp/views/allLocDetl/locDetl.html
+++ b/src/main/webapp/views/allLocDetl/locDetl.html
@@ -36,6 +36,7 @@
 <!--    </div>-->
     <div class="layui-input-inline">
         <select id="floorSelect" name="loc_type" lay-filter="floorSelect">
+            <option value="">璇烽�夋嫨</option>
             <option value="1">AGV搴撳尯</option>
             <option value="2">鍥涢」搴撳尯</option>
             <option value="3">骞冲簱鍖�</option>

--
Gitblit v1.9.1