From 537a57d5e81d4c6da8a0eca1690f61644a1dc462 Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期四, 12 十月 2023 22:32:43 +0800
Subject: [PATCH] 出入库快速结束,异常终止

---
 igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java |  127 ++++++++++++++++++------------------------
 1 files changed, 55 insertions(+), 72 deletions(-)

diff --git a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
index eeec666..2ece18d 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java
@@ -1,8 +1,6 @@
 package com.ld.igds.inout.service.impl;
 
 import com.bstek.dorado.data.entity.EntityUtils;
-import com.ld.igds.common.CoreCommonService;
-import com.ld.igds.constant.BizType;
 import com.ld.igds.constant.Constant;
 import com.ld.igds.constant.RedisConst;
 import com.ld.igds.data.CommonData;
@@ -15,11 +13,11 @@
 import com.ld.igds.inout.mapper.InoutCheckMapper;
 import com.ld.igds.inout.mapper.InoutRecordMapper;
 import com.ld.igds.inout.service.InoutService;
+import com.ld.igds.models.InoutLossOver;
 import com.ld.igds.models.InoutPrice;
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.DateUtil;
 import com.ld.igds.util.RedisUtil;
-import com.ld.igds.websocket.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -28,9 +26,6 @@
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
 
 @Slf4j
 @Component
@@ -42,8 +37,6 @@
     private InoutCheckMapper inoutCheckMapper;
     @Resource
     private RedisUtil redisUtil;
-    @Resource
-    private CoreCommonService commonService;
 
     @Override
     public InoutData inoutProgressQuery(InoutParam param) throws Exception {
@@ -152,9 +145,18 @@
                 data.setUserName("");
             }
 
-            inoutMapper.insertData(data);
+            InoutData newData;
+            if (EntityUtils.isEntity(data)) {
+                newData = new InoutData();
+                BeanUtils.copyProperties(data, newData, new String[]{"checkItems", "files"});
+            } else {
+                newData = data;
+            }
 
-            updateInoutCache(data);
+            inoutMapper.insertData(newData);
+
+
+            updateInoutCache(newData);
 
         } catch (Exception e) {
             log.error("------------鍑哄叆搴撴墽琛屼繚瀛樺嚭閿�---{}", e);
@@ -204,9 +206,11 @@
         }
 
         inoutMapper.updateDataByHandle(newData);
+        InoutParam param = new InoutParam();
+        param.setId(newData.getId());
 
         //鏇存柊缂撳瓨
-        updateInoutCache(newData);
+        updateInoutCache(inoutMapper.inoutQueryById(param));
 
         return null;
     }
@@ -236,6 +240,10 @@
         // 璁剧疆韬唤璇佸彿鐨勬ā绯婃煡璇㈡潯浠�
         if (null != param.getUserId()) {
             param.setUserId("%" + param.getUserId() + "%");
+        }
+
+        if (null != param.getRecordStatus() && InoutConstant.RECORD_STATUS_NORMAL.equals(param.getRecordStatus())) {
+            param.setRecordStatus(null);
         }
 
         List<InoutData> records = inoutMapper.pageRecordData(page, param);
@@ -287,7 +295,7 @@
         }
 
         // 娓呴櫎缂撳瓨
-        this.delFromCache(param.getDeptId(), param.getType(), param.getId());
+//        this.delFromCache(param.getDeptId(), param.getType(), param.getId());
 
 
         inoutMapper.toComplete(param);
@@ -308,6 +316,9 @@
         }
         if (null == data.getEmptyWeightTime()) {
             data.setEmptyWeightTime(new Date());
+        }
+        if (null == data.getFullWeightTime()) {
+            data.setFullWeightTime(new Date());
         }
 
         //璋冩暣鏃堕棿宸�
@@ -503,16 +514,6 @@
         inoutMapper.deleteData(param);
     }
 
-    @Override
-    public void setCheckCache(InoutData data) {
-
-        String cacheKey = RedisConst.buildKey(data.getCompanyId(), data.getCheckId());
-
-        //鍖栭獙缁撴灉瀛樺叆缂撳瓨3澶�
-        redisUtil.set(cacheKey, data.getCheckItems(), 60 * 60 * 24 * 3);
-    }
-
-
     /**
      * 鍑哄叆搴撴祦绋婭D鍒涘缓 202001030001 202001030001
      *
@@ -616,53 +617,6 @@
     }
 
     /**
-     * 鎺ㄩ�佸埌澶у睆锛屽垽鏂彧鏈夊綋澶у睆鍦ㄧ嚎鏃跺�欐墠澶勭悊褰撳墠閫昏緫锛岄伩鍏嶉〉闈㈠崱椤匡紝璋冪敤瀛愪换鍔″畬鎴愭帹閫�
-     *
-     * @param companyId 缁勭粐缂栧彿
-     * @param deptId    鍒嗗簱缂栧彿
-     * @param progress  娴佽浆鑺傜偣
-     */
-    public void notifyToScreen(String companyId, String deptId, String progress) {
-
-        // 鎺ㄩ�佸埌澶у睆
-        List<InoutData> curList = this.getListInoutCache(deptId);
-
-        List<InoutData> completeList = this.getCompleteListInoutCache(deptId);
-
-
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(BizType.SCREEN.getCode(),
-                    false);
-        }
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(
-                    BizType.SCREEN_INOUT.getCode(), false);
-        }
-        if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
-                .getCode())) {
-            WebSocketServer.contextOnLineMap.put(
-                    BizType.SCREEN_CHECK.getCode(), false);
-        }
-
-        if (WebSocketServer.contextOnLineMap.get(BizType.SCREEN.getCode())
-                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT
-                .getCode())
-                || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK
-                .getCode())) {
-
-
-            // 鍒涘缓涓�涓瓙浠诲姟杩涜鎺ㄩ�佷俊鎭�
-            FutureTask<String> futureTask = new FutureTask<>(new NotifyScreenTask(curList, completeList, deptId));
-
-            ExecutorService executorService = Executors.newCachedThreadPool();
-            executorService.submit(futureTask);
-            executorService.shutdown();
-        }
-    }
-
-    /**
      * 鍒涘缓鍑哄叆搴搆ey
      *
      * @param deptId
@@ -709,10 +663,10 @@
             data.setCompanyId(ContextUtil.getCompanyId());
         }
         if (StringUtils.isEmpty(data.getDeptId())) {
-            data.setCompanyId(ContextUtil.subDeptId(null));
+            data.setDeptId(ContextUtil.subDeptId(null));
         }
 
-        int num = inoutCheckMapper.updateSampleData(data);
+        inoutCheckMapper.updateSampleData(data);
 
         return null;
     }
@@ -745,7 +699,8 @@
     @Override
     public String updateCheckData(InoutData data) {
         data.setUpdateTime(new Date());
-        int num = inoutCheckMapper.updateCheckData(data);
+
+        inoutCheckMapper.updateCheckData(data);
 
         //鏇存柊缂撳瓨
         updateInoutCache(data);
@@ -763,4 +718,32 @@
         }
         return inoutCheckMapper.getPrice(param);
     }
+
+    @Override
+    public InoutCheckData inoutDataByCheckId(InoutCheckParam param) throws Exception {
+        List<InoutCheckData> list = inoutCheckMapper.inoutDataByCheckId(param);
+        if (null == list || list.size() == 0)
+            return null;
+        if (list.size() == 1) {
+            return list.get(0);
+        } else {
+            throw new Exception("褰撳墠鏉′欢涓嬪瓨鍦ㄥ涓弧瓒虫潯浠剁殑鏁版嵁锛岃鏍告煡锛侊紒");
+        }
+    }
+
+    @Override
+    public List<InoutLossOver> listLossOver(InoutParam param) {
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        List<InoutLossOver> list = inoutMapper.listLossOver(param);
+
+        return list;
+    }
+
+    @Override
+    public double sumLossOverWeight(InoutParam param) {
+        CommonData result = inoutMapper.sumLossOverWeight(param);
+        return result.getNumValue1();
+    }
 }

--
Gitblit v1.9.3