From db67639449287bcec461916a7dca6003ee5dd03c Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 05 十二月 2025 16:27:18 +0800
Subject: [PATCH] 出入库详单及补单页面及逻辑

---
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java |  248 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 179 insertions(+), 69 deletions(-)

diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
index 3cc9821..d4bba19 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
@@ -3,26 +3,21 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.InoutParam;
-import com.fzzy.igds.data.PageResponse;
-import com.fzzy.igds.domain.InoutConf;
-import com.fzzy.igds.domain.InoutRecord;
-import com.fzzy.igds.domain.InoutSysConf;
-import com.fzzy.igds.service.InoutConfService;
-import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.data.*;
+import com.fzzy.igds.domain.*;
+import com.fzzy.igds.service.*;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.SystemUtil;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import lombok.extern.slf4j.Slf4j;
 import com.ruoyi.common.utils.StringUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Description 鍑哄叆搴撲笟鍔″鐞�
@@ -38,7 +33,13 @@
     @Resource
     private InoutConfService inoutConfService;
     @Resource
+    private FileService fileService;
+    @Resource
     private InoutRecordService inoutRecordService;
+    @Resource
+    private DicAreaService dicAreaService;
+    @Resource
+    private InoutNoticeService inoutNoticeService;
 
     /**
      * 鏍规嵁鐢ㄦ埛璇锋眰淇℃伅锛屾牴鎹綋鍓嶅鎴风數鑴慖P锛岃幏鍙栧嚭鍏ュ簱绉伴噸涓婃閫夋嫨鐨勫湴纾�
@@ -122,6 +123,7 @@
 
     /**
      * 鏍规嵁閰嶇疆鑾峰彇鍑哄叆搴撶殑閰嶇疆鍙傛暟
+     *
      * @param listInoutConf
      * @param type
      * @return
@@ -139,6 +141,7 @@
 
     /**
      * 鏍规嵁閰嶇疆鑾峰彇鍑哄叆搴撶殑閰嶇疆鍙傛暟
+     *
      * @param listInoutConf
      * @param sort
      * @param type
@@ -176,18 +179,17 @@
     }
 
     /**
-     * 鍑哄叆搴撴敞鍐屾暟鎹彁浜わ紝鍑哄叆搴撶櫥璁颁娇鐢ㄥ悓涓�涓柟娉�
+     * 鍑哄叆搴撴敞鍐屾暟鎹彁浜わ紝鍑哄叆搴撶櫥璁颁娇鐢ㄥ悓涓�涓柟娉曪紝鍖呭惈绉伴噸鏃剁洿鎺ョ櫥璁�
      *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitRegister(InoutRecord data) {
-        SysUser user = ContextUtil.getLoginUser();
+    public PageResponse<InoutData> submitRegister(InoutData data) {
         if (StringUtils.isEmpty(data.getCompanyId())) {
-            data.setCompanyId(user.getCompanyId());
+            data.setCompanyId(ContextUtil.getCompanyId());
         }
         if (StringUtils.isEmpty(data.getDeptId())) {
-            data.setDeptId(ContextUtil.subDeptId(user));
+            data.setDeptId(ContextUtil.subDeptId(null));
         }
 
         int num = inoutRecordService.checkExist(data.getCompanyId(), data.getPlateNum());
@@ -215,7 +217,7 @@
             data.setUserName(data.getUserName().trim());
         }
         //鐧昏浜哄強鐧昏鏃堕棿
-        data.setRegisterUser(user.getUserName());
+        data.setRegisterUser(ContextUtil.getLoginUserName());
         data.setRegisterTime(new Date());
 
         num = inoutRecordService.addInoutRecord(data);
@@ -224,22 +226,19 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鐧昏澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鐧昏鎴愬姛锛�", data);
     }
 
     /**
      * 鍖栭獙淇℃伅鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitCheck(InoutRecord data) {
+    public PageResponse<InoutData> submitCheck(InoutData data) {
         SysUser user = ContextUtil.getLoginUser();
         if (StringUtils.isEmpty(data.getCompanyId())) {
             data.setCompanyId(user.getCompanyId());
@@ -251,7 +250,7 @@
         //鍖栭獙浜哄強鏃堕棿
         data.setCheckUser(user.getUserName());
         data.setCheckTime(new Date());
-        data.setCheckStatus(Constant.STATUS_PASS);
+        data.setCheckStatus(Constant.STATUS_CHECK);
 
         int num = inoutRecordService.updateInoutRecord(data);
 
@@ -264,12 +263,25 @@
 
     /**
      * 绉伴噸鎻愪氦锛屽寘鍚О閲嶇櫥璁版彁浜ゅ強鍗曠嫭绉伴噸鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitWeight(InoutRecord data) {
+    public PageResponse<InoutData> submitWeight(InoutData data) {
+        if (Constant.PROGRESS_WEIGHT_EMPTY.equals(data.getProgress())) {
+            data.setEmptyWeightTime(new Date());
+            data.setEmptyWeightUser(ContextUtil.getLoginUserName());
+        }
+        if (Constant.PROGRESS_WEIGHT_FULL.equals(data.getProgress())) {
+            data.setFullWeightTime(new Date());
+            data.setFullWeightUser(ContextUtil.getLoginUserName());
+        }
+        if (StringUtils.isBlank(data.getId())) {
+            //琛ㄧず绉伴噸鏃剁洿鎺ョ櫥璁�
+            return submitRegister(data);
+        }
 
-        // 鑾峰彇绯荤粺鍙傛暟閰嶇疆
+        //鑾峰彇绯荤粺鍙傛暟閰嶇疆
         InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
         if (null == inoutSysConf) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�", data);
@@ -280,55 +292,31 @@
         String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
         data.setProgress(nextProgress);
 
-        int num;
-        if(StringUtils.isBlank(data.getId())){
-            data.setRegisterTime(new Date());
-            data.setRegisterUser(ContextUtil.getLoginUserName());
-
-            //璁剧疆鍒濇鎻愪氦鏃剁О閲嶆椂闂翠俊鎭�
-            if(data.getFullWeight() > 0){
-                data.setFullWeightUser(ContextUtil.getLoginUserName());
-                data.setFullWeightTime(new Date());
-            }
-            if(data.getEmptyWeight() > 0){
-                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
-                data.setEmptyWeightTime(new Date());
-            }
-            //绉伴噸鐧昏
-            num = inoutRecordService.addInoutRecord(data);
-        }else {
-            if (Constant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
-                data.setEmptyWeightTime(new Date());
-                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
-            }
-            if (Constant.PROGRESS_WEIGHT_FULL.equals(curProgress)) {
-                data.setFullWeightTime(new Date());
-                data.setFullWeightUser(ContextUtil.getLoginUserName());
-            }
-            //绉伴噸鏇存柊
-            num = inoutRecordService.updateInoutRecord(data);
+        if(Constant.PROGRESS_RECORD.equals(nextProgress)){
+            //娴佺▼缁撴潫鏃讹紝璁剧疆瀹屾垚鏃堕棿鍜屽畬鎴愪汉
+            data.setCompleteTime(new Date());
+            data.setCompleteUser(ContextUtil.getLoginUserName());
         }
+        //绉伴噸鏁版嵁鏇存柊
+        int num = inoutRecordService.updateInoutRecord(data);
 
         if (num == 0) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愪氦澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
 
     /**
      * 鍊间粨淇℃伅鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitHandle(InoutRecord data) {
+    public PageResponse<InoutData> submitHandle(InoutData data) {
 
         // 鑾峰彇绯荤粺鍙傛暟閰嶇疆
         InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
@@ -350,12 +338,8 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愪氦澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎻愪氦鎴愬姛", data);
     }
@@ -390,6 +374,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ鏁版嵁
+     *
      * @param param
      * @return
      */
@@ -400,6 +385,8 @@
         if (StringUtils.isEmpty(param.getDeptId())) {
             param.setDeptId(ContextUtil.subDeptId(null));
         }
+
+        param.setProgressTag(Constant.PROGRESS_RECORD);
 
         Page<InoutRecord> corePage = new Page<>(param.getPage(), param.getLimit());
         inoutRecordService.listPageInout(corePage, param);
@@ -412,20 +399,143 @@
     }
 
     /**
+     * 鏌ヨ寰呯О閲嶇殑鏁版嵁
+     *
+     * @param param
+     * @return
+     */
+    public PageResponse<List<InoutRecord>> listWeightData(InoutParam param) {
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+
+        //璁剧疆绉伴噸娴佺▼鏍囪
+        param.setWeightTag("WEIGHT");
+
+        List<InoutRecord> inoutRecords = inoutRecordService.listInout(param);
+
+        if (null == inoutRecords || inoutRecords.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鑾峰彇鍒版暟鎹俊鎭负绌�");
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, inoutRecords);
+    }
+
+    /**
+     * 鏌ヨ寰呭�间粨鐨勬暟鎹�
+     *
+     * @param param
+     * @return
+     */
+    public PageResponse<List<InoutRecord>> listHandleData(InoutParam param) {
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+
+        List<InoutRecord> inoutRecords = inoutRecordService.listInout(param);
+
+        if (null == inoutRecords || inoutRecords.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鑾峰彇鍒版暟鎹俊鎭负绌�");
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, inoutRecords);
+    }
+
+    /**
      * 鏌ヨ鏁版嵁
+     *
      * @param param
      * @return
      */
     public PageResponse<InoutRecord> inoutQuery(InoutParam param) {
-        if (StringUtils.isEmpty(param.getId())) {
+
+        if (StringUtils.isEmpty(param.getId()) && StringUtils.isEmpty(param.getPlateNum())) {
             return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鏌ヨ鍙傛暟涓嶅畬鏁达紝鏌ヨ澶辫触锛�");
         }
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
 
-        InoutRecord result = inoutRecordService.selectById(param.getId());
+        if(Constant.PROGRESS_WEIGHT_EMPTY.equals(param.getProgress()) || Constant.PROGRESS_WEIGHT_FULL.equals(param.getProgress())){
+            //璁剧疆鏌ヨ寰呯О閲嶇殑
+            param.setProgress(null);
+            //璁剧疆绉伴噸娴佺▼鏍囪
+            param.setWeightTag("WEIGHT");
+        }
+
+        InoutRecord result = inoutRecordService.selectOne(param);
         if (null == result) {
             return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
                     "绯荤粺鏈煡璇㈠埌鎵ц涓殑鍗曟嵁淇℃伅", null);
         }
         return new PageResponse<>(RespCodeEnum.CODE_0000, result);
     }
+
+    /**
+     * 鍒嗛〉鑾峰彇鍖哄垝淇℃伅
+     *
+     * @param param
+     * @return
+     */
+    public PageResponse<Page<DicArea>> pageDicArea(IgdsBaseParam param) {
+
+        Page<DicArea> corePage = new Page<>(param.getPage(), param.getLimit());
+
+        dicAreaService.listPageData(corePage, param.getKey());
+
+        if (null == corePage.getRecords() || corePage.getRecords().isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鑾峰彇鍒版暟鎹俊鎭负绌�");
+        }
+        return new PageResponse<>(RespCodeEnum.CODE_0000, corePage);
+    }
+
+    /**
+     * @param param
+     * @return
+     */
+    public PageResponse<List<InoutNoticeIn>> listNoticeIn(NoticeParam param) {
+
+        SysUser user = ContextUtil.getLoginUser();
+        if (org.apache.commons.lang3.StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(user.getCompanyId());
+        }
+        param.setDeptId(ContextUtil.subDeptId(user));
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        List<InoutNoticeIn> list = inoutNoticeService.getNoticeIn(param);
+
+        if (null == list || list.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鏌ヨ缁撴灉涓虹┖锛�");
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, list);
+    }
+
+    /**
+     * @param param
+     * @return
+     */
+    public PageResponse<List<InoutNoticeOut>> listNoticeOut(NoticeParam param) {
+        SysUser user = ContextUtil.getLoginUser();
+        if (org.apache.commons.lang3.StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(user.getCompanyId());
+        }
+        param.setDeptId(ContextUtil.subDeptId(user));
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        List<InoutNoticeOut> list = inoutNoticeService.getNoticeOut(param);
+
+        if (null == list || list.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鏌ヨ缁撴灉涓虹┖锛�");
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, list);
+    }
 }

--
Gitblit v1.9.3