From 69cd9f59a0fabf12f8c9147fcba7f69817a870b3 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期一, 06 十一月 2023 23:40:59 +0800
Subject: [PATCH] 更新仓内抓拍2

---
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java |  170 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 142 insertions(+), 28 deletions(-)

diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
index bed9209..28bac20 100644
--- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
+++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -7,6 +7,7 @@
 import com.ld.igds.data.Page;
 import com.ld.igds.data.PageResponse;
 import com.ld.igds.file.CoreFileService;
+import com.ld.igds.file.dto.FileData;
 import com.ld.igds.inout.InoutConstant;
 import com.ld.igds.inout.dto.InoutCheckData;
 import com.ld.igds.inout.dto.InoutCheckParam;
@@ -19,7 +20,6 @@
 import com.ld.igds.models.InoutSysConf;
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.DateUtil;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.DateUtils;
@@ -36,7 +36,6 @@
  *
  * @author
  */
-@Slf4j
 @Component
 public class InoutManager {
 
@@ -50,6 +49,8 @@
     private CheckStandardManager checkStandardManager;
     @Resource
     private InoutEventControlManager inoutEventControl;
+    @Resource
+    private CoreFileService coreFileService;
 
     /**
      * 鐩存帴浠庢暟鎹簱鏌ヨ锛屼笉鑰冭檻淇℃伅鐘舵��
@@ -213,7 +214,6 @@
         return data;
     }
 
-
     /**
      * 浠庣紦瀛樹腑鑾峰彇涓嬩竴娴佺▼
      *
@@ -256,7 +256,9 @@
         }
 
         if (InoutConstant.PROGRESS_CHECK.equals(data.getProgress())) {
-            data.setCheckUser(ContextUtil.getLoginUserCName());
+            if (StringUtils.isEmpty(data.getCheckUser())) {
+                data.setCheckUser(ContextUtil.getLoginUserCName());
+            }
             data.setProgress(nextProgress);
             return data;
         }
@@ -367,8 +369,9 @@
         if (null != msg) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
         }
-
-
+        data.setCompleteTime(param.getCompleteTime());
+        data.setProgress(InoutConstant.PROGRESS_RECORD);
+        inoutService.updateInoutCache(data);
         // 娴佺▼瀹屾垚鏀朵簨浠�
         inoutEventControl.onInoutComplete(data);
 
@@ -396,16 +399,27 @@
         }
 
         String loginUser = ContextUtil.getLoginUserCName();
-        data.setRegisterUser(loginUser);
-        data.setFullWeightUser(loginUser);
-        data.setEmptyWeightUser(loginUser);
-        data.setHandleUser(loginUser);
-        data.setCompleteUser(loginUser);
+        if (StringUtils.isEmpty(data.getRegisterUser())) {
+            data.setRegisterUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getFullWeightUser())) {
+            data.setFullWeightUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getEmptyWeightUser())) {
+            data.setEmptyWeightUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getHandleUser())) {
+            data.setHandleUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getCompleteUser())) {
+            data.setCompleteUser(loginUser);
+        }
+
         if (null == data.getCompleteTime()) {
             data.setCompleteTime(new Date());
         }
         // 娉ㄥ唽鏃堕棿姣斿畬鎴愭椂闂存棭涓�涓皬鏃�
-        data.setRegisterTime(DateUtil.getNewByMinute(new Date(), -60));
+        data.setRegisterTime(DateUtils.addMinutes(new Date(), -80));
 
         if (StringUtils.isEmpty(data.getUserId())) {
             data.setUserId(InoutConstant.DEFAULT_ID_CARD);
@@ -413,26 +427,45 @@
         if (null == data.getIntelCard()) {
             data.setIntelCard(data.getUserId());
         }
-        if (null != data.getCheckItems()) {
+        if (null != data.getCheckItems() && StringUtils.isEmpty(data.getCheckUser())) {
             data.setCheckUser(loginUser);
         }
 
 
         if (InoutConstant.TYPE_IN.equals(data.getType())) {
             if (null == data.getFullWeightTime()) {
-                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -50));
+                data.setFullWeightTime(DateUtils.addMinutes(new Date(), -50));
             }
             if (null == data.getEmptyWeightTime()) {
-                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -10));
+                data.setEmptyWeightTime(DateUtils.addMinutes(new Date(), -10));
+            }
+
+            if (data.getCompleteTime().before(data.getEmptyWeightTime())) {
+                data.setEmptyWeightTime(DateUtils.addMinutes(data.getCompleteTime(), -10));
+            }
+            if (data.getEmptyWeightTime().before(data.getFullWeightTime())) {
+                data.setFullWeightTime(DateUtils.addMinutes(data.getEmptyWeightTime(), -40));
+            }
+            if (data.getFullWeightTime().before(data.getRegisterTime())) {
+                data.setRegisterTime(DateUtils.addMinutes(data.getFullWeightTime(), -30));
             }
 
             data = this.updateCheckItems(data, false);
         } else {
             if (null == data.getEmptyWeightTime()) {
-                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -50));
+                data.setEmptyWeightTime(DateUtils.addMinutes(new Date(), -50));
             }
             if (null == data.getFullWeightTime()) {
-                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -10));
+                data.setFullWeightTime(DateUtils.addMinutes(new Date(), -10));
+            }
+            if (data.getCompleteTime().before(data.getFullWeightTime())) {
+                data.setFullWeightTime(DateUtils.addMinutes(data.getCompleteTime(), -10));
+            }
+            if (data.getFullWeightTime().before(data.getEmptyWeightTime())) {
+                data.setEmptyWeightTime(DateUtils.addMinutes(data.getEmptyWeightTime(), -40));
+            }
+            if (data.getEmptyWeightTime().before(data.getRegisterTime())) {
+                data.setRegisterTime(DateUtils.addMinutes(data.getFullWeightTime(), -30));
             }
         }
 
@@ -443,7 +476,7 @@
         if (InoutConstant.TYPE_IN.equals(data.getType())) {
             this.updateCheckItems(data, true);
         }
-
+        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), null);
         return null;
     }
 
@@ -491,9 +524,9 @@
 
         data = inoutService.inoutQueryById(param);
 
-        if (InoutConstant.PROGRESS_RECORD.equals(data.getProgress())) {
-            return "娴佺▼缁撴潫鐨勬暟鎹笉鏀寔寮傚父澶勭悊锛�";
-        }
+//        if (InoutConstant.PROGRESS_RECORD.equals(data.getProgress())) {
+//            return "娴佺▼缁撴潫鐨勬暟鎹笉鏀寔寮傚父澶勭悊锛�";
+//        }
         if (InoutConstant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
             return "褰撳墠淇℃伅宸插仛寮傚父澶勭悊锛屼笉鏀寔閲嶅鎵ц锛�";
         }
@@ -594,7 +627,7 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                     "鎻愮ず锛氬綋鍓嶅簱鍖烘湭閰嶇疆鍑哄叆搴撴祦绋嬩俊鎭紝璇疯仈绯荤鐞嗗憳", data);
         }
-
+        List<FileData> files = data.getFiles();
         // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
         String curProgress = data.getProgress();
         String nextProgress = getNextProgress(curProgress, data.getType(),
@@ -608,8 +641,10 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
         }
 
-        // 鎵ц闄勪欢淇℃伅
-        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+        if (null != files && files.size() > 0) {
+            // 鎵ц闄勪欢淇℃伅
+            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
+        }
 
         //鐧昏瀹屾垚浜嬩欢
         inoutEventControl.onInoutRegister(data);
@@ -626,7 +661,7 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                     "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�", data);
         }
-
+        List<FileData> files = data.getFiles();
         // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
         String curProgress = data.getProgress();
         String nextProgress = getNextProgress(curProgress, data.getType(),
@@ -644,8 +679,10 @@
                     data);
         }
 
-        // 鎵ц闄勪欢淇℃伅
-        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+        if (null != files && files.size() > 0) {
+            // 鎵ц闄勪欢淇℃伅
+            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
+        }
 
         // 绉伴噸瀹屾垚浜嬩欢
         inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
@@ -840,7 +877,9 @@
             curData.setCheckTime(new Date());
             data.setCheckTime(new Date());
         }
+        curData.setCheckUser(data.getCheckUser());
         curData.setCheckStatus(data.getCheckStatus());
+        curData.setFoodYear(data.getFoodYear());
 
 
         // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
@@ -860,6 +899,9 @@
         curData.setPrice(data.getPrice());
         curData.setRemarks(data.getRemarks());
         curData.setCheckItems(data.getCheckItems());
+        curData.setCheckTime(data.getCheckTime());
+        curData.setDepotId(data.getDepotId());
+        curData.setFoodType(data.getFoodType());
 
         if (StringUtils.isEmpty(data.getCheckUser())) {
             curData.setCheckUser(ContextUtil.getLoginUserCName());
@@ -876,9 +918,50 @@
 
 
         // 璐ㄦ瀹屾垚瑙﹀彂浜嬩欢
-        inoutEventControl.onInCheck(data,curProgress,nextProgress);
+        inoutEventControl.onInCheck(data, curProgress, nextProgress);
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
+    }
+
+    public PageResponse<InoutCheckData> submitCheckData(InoutCheckData data) throws Exception {
+
+
+        // 鑾峰彇涓氬姟鏁版嵁淇℃伅
+        InoutParam param = new InoutParam();
+        param.setCompanyId(data.getCompanyId());
+        param.setId(data.getId());
+        InoutData curData = inoutService.inoutProgressQuery(param);
+
+        if (null == curData) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "娌℃湁鑾峰彇鍒板叆搴撲笟鍔℃暟鎹俊鎭紝鏇存柊澶辫触", data);
+        }
+
+        if (InoutConstant.PROGRESS_RECORD.equals(curData.getProgress())) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "褰撳墠娴佺▼宸茬粡缁撴潫锛屼笉鏀寔淇敼");
+        }
+
+        // 鏇存柊鍖栭獙椤逛俊鎭�
+        CheckUpdateResult checkResult = checkStandardManager.updateCheckItems(data.getCheckId(), data.getCompanyId(), data.getCheckItems());
+        if (StringUtils.isNotEmpty(checkResult.getMsg())) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "鍚庡彴鎵ц寮傚父锛�" + checkResult.getMsg(), data);
+        }
+
+        curData.setType(curData.getType());
+        curData.setFoodLevel(data.getFoodLevel());
+        curData.setFoodVariety(data.getFoodVariety());
+        curData.setPrice(data.getPrice());
+        curData.setDepotId(data.getDepotId());
+        curData.setCheckItems(data.getCheckItems());
+
+        String msg = inoutService.updateCheckData(curData);
+        if (null != msg) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "淇濆瓨鎴愬姛");
     }
 
     /**
@@ -952,4 +1035,35 @@
         }
     }
 
+    /**
+     * @param param
+     * @return
+     */
+    public PageResponse<InoutCheckData> inoutDataByCheckId(InoutCheckParam param) {
+        if (StringUtils.isEmpty(param.getCheckId())) {
+            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
+                    "鏌ヨ鍙傛暟涓嶅畬鏁达紝鏌ヨ澶辫触锛�");
+        }
+
+        InoutCheckData result;
+        try {
+            param.setProgress(InoutConstant.PROGRESS_CHECK);
+            result = inoutService.inoutDataByCheckId(param);
+            if (null == result) {
+                return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
+                        "绯荤粺鏈煡璇㈠埌鎵ц涓殑杞﹁締淇℃伅", null);
+            }
+
+            return new PageResponse<>(RespCodeEnum.CODE_0000, result);
+
+        } catch (Exception e) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
+                    e.getMessage());
+        }
+    }
+
+    public void initInoutWeight(List<InoutConf> listInoutConf, String sort) {
+        inoutEventControl.initInoutWeight(listInoutConf, sort);
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3