From 7f5ecaf7dbd07e218fbda575e45d8264a560a1e6 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期一, 05 六月 2023 13:50:59 +0800
Subject: [PATCH] 出入库优化-称重页面逻辑优化完成

---
 igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java |  393 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 295 insertions(+), 98 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 0a0dac8..ac4dce1 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
@@ -397,14 +397,20 @@
         return data;
     }
 
+
+    /**
+     * 鏇存柊璐ㄦ淇℃伅
+     *
+     * @param data
+     * @return
+     */
     private CheckUpdateResult updateCheckItems(InoutData data) {
         CheckUpdateResult result = new CheckUpdateResult();
-        if (null == data.getCheckItems())
-            return result;
+        if (null == data.getCheckItems()) return result;
+
         try {
             // 鏇存柊妫�楠岄」鏁版嵁
-            result = checkStandardManager.updateCheckItems(data.getCheckId(),
-                    data.getCompanyId(), data.getCheckItems());
+            result = checkStandardManager.updateCheckItems(data.getCheckId(), data.getCompanyId(), data.getCheckItems());
 
             // 灏嗗寲楠屾暟鎹瓨鍏ョ紦瀛樹腑
             inoutService.setCheckCache(data);
@@ -572,35 +578,35 @@
         return data;
     }
 
-    public PageResponse<Page<InoutData>> pageRecordData(InoutParam param) {
+//    public PageResponse<Page<InoutData>> pageRecordData(InoutParam param) {
+//
+//        log.debug("鍒嗛〉淇℃伅--page={},limit={},cuur={}", param.getPage(),
+//                param.getLimit(), param.getCurr());
+//
+//        Page<InoutData> result = inoutService.pageRecordData(param);
+//
+//        if (null == result.getRecords() || result.getRecords().isEmpty()) {
+//            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
+//                    "鑾峰彇鍒版暟鎹俊鎭负绌�");
+//        }
+//
+//        return new PageResponse<>(RespCodeEnum.CODE_0000, result);
+//    }
 
-        log.debug("鍒嗛〉淇℃伅--page={},limit={},cuur={}", param.getPage(),
-                param.getLimit(), param.getCurr());
-
-        Page<InoutData> result = inoutService.pageRecordData(param);
-
-        if (null == result.getRecords() || result.getRecords().isEmpty()) {
-            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
-                    "鑾峰彇鍒版暟鎹俊鎭负绌�");
-        }
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000, result);
-    }
-
-    /**
-     * @param param
-     * @return
-     */
-    public PageResponse<Page<InoutData>> pageCheckData(InoutParam param) {
-        // 濡傛灉鏄凡鍖栭獙锛屽垯灏嗘祦绋嬬姸鎬佺疆绌猴紝濡傛灉鏄湭鍖栭獙锛屽垯娴佺▼鐘舵�佷笉澶勭悊锛屼粛鏄疌HECK鐘舵��
-        if (!"NONE".equals(param.getCheckStatus())) {
-            param.setProgress(null);
-        }
-        // 璁剧疆鍒嗗簱Id
-        String deptId = ContextUtil.subDeptId(null);
-        param.setDeptId(deptId);
-        return pageRecordData(param);
-    }
+//    /**
+//     * @param param
+//     * @return
+//     */
+//    public PageResponse<Page<InoutData>> pageCheckData(InoutParam param) {
+//        // 濡傛灉鏄凡鍖栭獙锛屽垯灏嗘祦绋嬬姸鎬佺疆绌猴紝濡傛灉鏄湭鍖栭獙锛屽垯娴佺▼鐘舵�佷笉澶勭悊锛屼粛鏄疌HECK鐘舵��
+//        if (!"NONE".equals(param.getCheckStatus())) {
+//            param.setProgress(null);
+//        }
+//        // 璁剧疆鍒嗗簱Id
+//        String deptId = ContextUtil.subDeptId(null);
+//        param.setDeptId(deptId);
+//        return pageRecordData(param);
+//    }
 
 
     public PageResponse<InoutData> inoutComplete(InoutData data) throws Exception {
@@ -642,20 +648,20 @@
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), null, data);
     }
 
-    /**
-     * 鎵︽牱鍖栭獙椤甸潰鑾峰彇妫�楠岄」鏉$洰淇℃伅
-     *
-     * @param data
-     * @return
-     */
-    public PageResponse<List<CheckItemData>> getCheckItem(InoutData data) {
-
-        List<CheckItemData> result = checkStandardManager.listCheckItem(
-                data.getCheckId(), data.getCompanyId(), data.getDeptId(),
-                data.getFoodVariety());
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000, result);
-    }
+//    /**
+//     * 鎵︽牱鍖栭獙椤甸潰鑾峰彇妫�楠岄」鏉$洰淇℃伅
+//     *
+//     * @param data
+//     * @return
+//     */
+//    public PageResponse<List<CheckItemData>> getCheckItem(InoutData data) {
+//
+//        List<CheckItemData> result = checkStandardManager.listCheckItem(
+//                data.getCheckId(), data.getCompanyId(), data.getDeptId(),
+//                data.getFoodVariety());
+//
+//        return new PageResponse<>(RespCodeEnum.CODE_0000, result);
+//    }
 
     /**
      * 鍒犻櫎骞跺畬鎴�
@@ -858,7 +864,6 @@
 
         // 鏇存柊鏁版嵁
         inoutService.updateData(data);
-        // this.autoCheckByUpdate(data, record);
         return null;
     }
 
@@ -972,9 +977,6 @@
         if (StringUtils.isEmpty(data.getDepotId())) {
             return "璇峰~鍐欎粨搴撲俊鎭紒";
         }
-//		if (StringUtils.isEmpty(data.getCustomerId())) {
-//			return "璇峰~鍐欏線鏉ュ崟浣嶄俊鎭紒";
-//		}
         if (StringUtils.isEmpty(data.getFoodYear())) {
             return "璇峰~鍐欑伯椋熷勾浠戒俊鎭紒";
         }
@@ -997,28 +999,6 @@
 
     public void initLpr(InoutConf conf) {
         inoutDeviceManager.initLpr(conf);
-    }
-
-    /**
-     * 鑾峰彇鍑哄叆搴撹澶囬厤缃俊鎭�
-     *
-     * @param companyId
-     * @param deptId
-     * @return
-     */
-    public List<InoutConf> getListInoutConf(String companyId, String deptId) {
-        return inoutManagerService.getCacheInoutConf(companyId, deptId);
-    }
-
-    /**
-     * 鎿嶄綔閬撻椄璁惧
-     *
-     * @param param
-     * @return
-     */
-    public PageResponse<List<CheckItemData>> gateCtrl(InoutGateDto param) {
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "", null);
     }
 
     /**
@@ -1074,6 +1054,116 @@
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
 
+    public PageResponse<InoutData> submitWeightIn(InoutData data) throws Exception {
+        //鑾峰彇绯荤粺鍙傛暟閰嶇疆
+        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
+        if (null == inoutSysConf) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�", data);
+        }
+
+        String curProgress = data.getProgress();
+
+        //鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
+        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
+
+        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
+            data.setEmptyWeightTime(new Date());
+            data.setEmptyWeightUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+
+        }
+        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(nextProgress)) {
+            data.setFullWeightTime(new Date());
+            data.setFullWeightUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+        }
+
+
+        //濡傛灉涓嬩竴涓暟鎹姸鎬�=娴佺▼缁撴潫
+        if (InoutConstant.PROGRESS_RECORD.equals(nextProgress)) {
+            data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
+            data.setCompleteUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+        }
+
+
+        //鍏ュ簱绉伴噸鍙兘璋冩暣璐ㄦ鍗�
+        CheckUpdateResult checkUpdateResult = updateCheckItems(data);
+        if (data.getDeCheck() == 0) {
+            data.setDeCheck(checkUpdateResult.getDeSum());
+        }
+        if (data.getAddCheck() == 0) {
+            data.setAddCheck(checkUpdateResult.getAddSum());
+        }
+
+        //鎵ц鏁版嵁鏇存柊
+        String msg = inoutService.updateData(data);
+
+        if (null != msg) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
+        }
+
+        // 鎵ц闄勪欢淇℃伅
+        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+
+        //绉伴噸瀹屾垚锛岃皟鐢ㄥ嚭鍏ュ簱鎺у埗閫昏緫澶勭悊
+        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
+    }
+
+
+    public PageResponse<InoutData> submitWeightOut(InoutData data) throws Exception {
+        //鑾峰彇绯荤粺鍙傛暟閰嶇疆
+        InoutSysConf inoutSysConf = inoutManagerService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
+        if (null == inoutSysConf) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�", data);
+        }
+
+        String curProgress = data.getProgress();
+
+        //鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
+        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
+
+        if (InoutConstant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
+            data.setEmptyWeightTime(new Date());
+            data.setEmptyWeightUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+
+        }
+        if (InoutConstant.PROGRESS_WEIGHT_FULL.equals(nextProgress)) {
+            data.setFullWeightTime(new Date());
+            data.setFullWeightUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+        }
+
+
+        //濡傛灉涓嬩竴涓暟鎹姸鎬�=娴佺▼缁撴潫
+        if (InoutConstant.PROGRESS_RECORD.equals(nextProgress)) {
+            data.setCompleteTime(DateUtils.addMinutes(new Date(), 2));
+            data.setCompleteUser(ContextUtil.getLoginUserCName());
+            data.setProgress(nextProgress);
+        }
+
+
+        //鎵ц鏁版嵁鏇存柊
+        String msg = inoutService.updateData(data);
+
+        if (null != msg) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
+        }
+
+        // 鎵ц闄勪欢淇℃伅
+        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
+
+        //绉伴噸瀹屾垚锛岃皟鐢ㄥ嚭鍏ュ簱鎺у埗閫昏緫澶勭悊
+        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
+    }
+
 
     /**
      * 鏍规嵁鏉′欢鑾峰彇鎵︽牱鏁版嵁
@@ -1091,7 +1181,7 @@
         }
 
         //鑻ユ煡璇㈡潯浠朵负宸叉墻鏍凤紝鍒欐祦绋嬬疆绌猴紱鑻ユ湭鎵︽牱锛屽垯娴佺▼涓嶅鐞嗭紝浠嶄负鎵︽牱鍖栭獙娴佺▼(CHECK)
-        if ("SAMPLE".equals(param.getSampleStatus())) {
+        if (!"NONE".equals(param.getSampleStatus())) {
             param.setProgress(null);
         }
 
@@ -1107,34 +1197,141 @@
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public PageResponse<InoutCheckData> updateSampleData(InoutCheckData data) throws Exception {
+    public PageResponse<InoutCheckData> updateSampleData(InoutCheckData data) {
 
-        // 鑾峰彇涓氬姟鏁版嵁淇℃伅
-        InoutParam param = new InoutParam();
-        param.setCompanyId(data.getCompanyId());
-        param.setId(data.getId());
-        InoutData curData = inoutService.inoutProgressQuery(param);
-        if (null == curData) {
+        try {
+            // 鑾峰彇涓氬姟鏁版嵁淇℃伅
+            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(),
+                        "褰撳墠娴佺▼宸茬粡缁撴潫锛屼笉鏀寔淇敼");
+            }
+
+            //鎵︽牱鏃堕棿鍜屾墻鏍蜂汉
+            if (StringUtils.isEmpty(data.getSampleUser())) {
+                data.setSampleUser(ContextUtil.getLoginUserCName());
+            }
+            if (null == data.getSampleTime()) {
+                data.setSampleTime(new Date());
+            }
+            String msg = inoutService.updateSampleData(data);
+
+            if (null != msg) {
+                return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
+            }
+
+            return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
+        } catch (Exception e) {
+            log.error("鍚庡彴寮傚父:{}", e);
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
-                    "娌℃湁鑾峰彇鍒板叆搴撲笟鍔℃暟鎹俊鎭紝鏇存柊澶辫触", data);
+                    "鍚庡彴寮傚父锛�" + e.getMessage(), null);
         }
-        if (InoutConstant.PROGRESS_RECORD.equals(curData.getProgress())) {
-            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
-                    "褰撳墠娴佺▼宸茬粡缁撴潫锛屼笉鏀寔淇敼");
-        }
-
-        //鎵︽牱淇℃伅
-        curData.setSampleTime(data.getSampleTime());
-        curData.setSampleType(data.getSampleType());
-        curData.setSampleUser(data.getSampleUser());
-
-        String msg = inoutService.updateSampleData(curData);
-
-        if (null != msg) {
-            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
-        }
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
     }
 
+    /**
+     * @param param
+     * @return
+     */
+    public PageResponse<Page<InoutCheckData>> pageCheckData(InoutCheckParam param) {
+
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+        // 濡傛灉鏄凡鍖栭獙锛屽垯灏嗘祦绋嬬姸鎬佺疆绌猴紝濡傛灉鏄湭鍖栭獙锛屽垯娴佺▼鐘舵�佷笉澶勭悊锛屼粛鏄疌HECK鐘舵��
+        if (!"NONE".equals(param.getCheckStatus())) {
+            param.setProgress(null);
+        }
+
+        Page<InoutCheckData> checkList = inoutService.pageCheckData(param);
+
+
+        if (null == checkList.getRecords() || checkList.getRecords().isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
+                    "鑾峰彇鍒版暟鎹俊鎭负绌�");
+        }
+        return new PageResponse<>(RespCodeEnum.CODE_0000, checkList);
+    }
+
+    /**
+     * 鑾峰彇鍖栭獙椤逛俊鎭�
+     *
+     * @param param
+     * @return
+     */
+    public PageResponse<List<CheckItemData>> getCheckItemData(InoutCheckParam param) {
+
+        try {
+            List<CheckItemData> result = checkStandardManager.listCheckItem(param.getCheckId(),
+                    param.getCompanyId(), param.getFoodVariety());
+
+            return new PageResponse<>(RespCodeEnum.CODE_0000, result);
+        } catch (Exception e) {
+            return new PageResponse<>(
+                    RespCodeEnum.CODE_1111.getCode(), "鍚庡彴寮傚父锛�" + e.getMessage(), null);
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public PageResponse<InoutCheckData> updateCheckData(InoutCheckData data) {
+        try {
+
+            // 鑾峰彇涓氬姟鏁版嵁淇℃伅
+            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(),
+                        "褰撳墠娴佺▼宸茬粡缁撴潫锛屼笉鏀寔淇敼");
+            }
+            curData.setCheckStatus(data.getCheckStatus());
+
+            //鏇存柊涓嬩竴娴佺▼鐘舵��
+            if (InoutConstant.PROGRESS_CHECK.equals(curData.getProgress())) {
+                curData = updateInBasicInfo(curData, null);
+                // 鑻ュ寲楠岀粨鏋滀笉鍚堟牸锛屽垽鏂厤缃悗缁祦绋�
+                if (InoutConstant.STATUS_UNPASS.equals(curData.getCheckStatus())) {
+                    curData = checkNoPass(curData);
+                }
+            }
+
+            data.setCheckStatus(curData.getCheckStatus());
+            //鍖栭獙浜恒�佸寲楠屾椂闂�
+            if (StringUtils.isEmpty(data.getCheckUser())) {
+                data.setCheckUser(ContextUtil.getLoginUserCName());
+            }
+            if (null == data.getCheckTime()) {
+                data.setCheckTime(new Date());
+            }
+
+            String msg = inoutService.updateCheckData(data);
+
+            if (null != msg) {
+                return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
+            }
+            //TODO 鏇存柊鍖栭獙椤逛俊鎭�
+
+            return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛");
+        } catch (Exception e) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "鍚庡彴寮傚父锛�" + e.getMessage(), null);
+        }
+
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.9.3