From 4c58f8f132adf830917b6b8f49f8c8de87aaf748 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 08 一月 2026 18:40:51 +0800
Subject: [PATCH] 数量检测提交2-检测协议实现

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java |  198 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 194 insertions(+), 4 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
index b2f2136..428f7a7 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -1,22 +1,26 @@
 package com.fzzy.igds.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.constant.AuditStatus;
 import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.ExportWordParam;
 import com.fzzy.igds.data.NoticeDto;
 import com.fzzy.igds.data.NoticeParam;
+import com.fzzy.igds.domain.*;
 import com.fzzy.igds.mapper.InoutNoticeInMapper;
 import com.fzzy.igds.mapper.InoutNoticeOutMapper;
-import com.fzzy.igds.domain.InoutNoticeIn;
-import com.fzzy.igds.domain.InoutNoticeOut;
 import com.fzzy.igds.utils.ContextUtil;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description 鍑哄叆搴撻�氱煡鍗晄ervice灞傦紝鍖呭惈鍏ュ簱閫氱煡鍗曞拰鍑哄簱閫氱煡鍗�
@@ -31,6 +35,12 @@
     private InoutNoticeInMapper noticeInMapper;
     @Resource
     private InoutNoticeOutMapper noticeOutMapper;
+    @Resource
+    private DepotService depotService;
+    @Resource
+    private CoreDeptService coreDeptService;
+    @Resource
+    private PledgeContractService pledgeContractService;
 
     /*----------------------鍏ュ簱閫氱煡鍗曚俊鎭�-------------------------*/
     /**
@@ -118,12 +128,49 @@
      * @return
      */
     public String saveOrUpdateIn(InoutNoticeIn data) {
+        //濡傛灉鍏ュ簱閫氱煡鍗曠被鍨嬩负搴撳尯閫氱煡鍗曪紝楠岃瘉浠撳簱鏄惁鏄湭瑙e帇寰椾粨搴擄紝鏄垯涓嶅厑璁镐繚瀛�
+        //鑾峰彇鎵�鏈夎川鎶煎悎鍚屾暟鎹�
+        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
+        if("10".equals(data.getType())){
+            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨勬暟鎹�
+            for (PledgeContract pledgeContract : pledgeContracts) {
+                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
+                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                        return "鍏ュ簱浠撳簱鏈В鍘嬶紝鏃犳硶淇濆瓨锛�";
+                    }
+                }
+            }
+        }
+        //濡傛灉鍏ュ簱閫氱煡鍗曠被鍨嬩负鐩戠閫氱煡鍗�
+        if("20".equals(data.getType())){
+            //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
+            if(StringUtils.isEmpty(data.getBankId())){
+                return "鐩戠潱閾惰涓嶈兘涓虹┖锛�";
+
+            }
+            //2.楠岃瘉閾惰鍜屼粨搴撶殑瀵瑰簲鍏崇郴鏄惁姝g‘锛屼笉姝g‘鍒欎笉鍏佽淇濆瓨
+            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨� 閾惰-浠撳簱锛堣川鎶煎悎鍚屽叧绯伙級
+            Map<String, PledgeContract> bankDepotMap = new HashMap<>();
+            for (PledgeContract pledgeContract : pledgeContracts) {
+                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
+                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                        bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
+                    }
+                }
+            }
+            //鍦╩ap涓鎵惧尮閰嶉摱琛岀殑鏁版嵁锛屽鏋滄病鏈夊尮閰嶇殑鏁版嵁锛屽垯涓嶅厑璁镐繚瀛�
+            if(!bankDepotMap.containsKey(data.getBankId())){
+                return "鏈壘鍒板搴旂殑璐ㄦ娂鍚堝悓锛岃妫�鏌ョ洃鐫i摱琛屾垨鑰呭叆搴撲粨搴撳~鍐欐槸鍚︽纭紒";
+
+            }
+        }
+
         if (null == data.getUpdateBy()) {
             data.setUpdateBy(ContextUtil.getLoginUserName());
             data.setUpdateTime(new Date());
             data.setCreateBy(ContextUtil.getLoginUserName());
             data.setCreateTime(new Date());
-            data.setAuditStatus(Constant.COMPLETE_STATUS_NONE);
+            data.setAuditStatus(AuditStatus.STATUS_10.getCode());
             data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
             noticeInMapper.insert(data);
         } else {
@@ -231,12 +278,49 @@
      * @return
      */
     public String saveOrUpdateOut(InoutNoticeOut data) {
+        //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负搴撳尯閫氱煡鍗曪紝楠岃瘉浠撳簱鏄惁鏄湭瑙e帇寰椾粨搴擄紝鏄垯涓嶅厑璁镐繚瀛�
+        //鑾峰彇鎵�鏈夎川鎶煎悎鍚屾暟鎹�
+        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
+        if("10".equals(data.getType())){
+            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨勬暟鎹�
+            for (PledgeContract pledgeContract : pledgeContracts) {
+                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
+                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                        return "鍑哄簱浠撳簱鏈В鍘嬶紝鏃犳硶淇濆瓨锛�";
+                    }
+                }
+            }
+        }
+        //濡傛灉鍑哄簱閫氱煡鍗曠被鍨嬩负鐩戠閫氱煡鍗�
+        if("20".equals(data.getType())){
+            //1.楠岃瘉閾惰鏄惁濉啓锛屾湭濉啓锛屽垯涓嶅厑璁镐繚瀛�
+            if(StringUtils.isEmpty(data.getBankId())){
+                return "鐩戠潱閾惰涓嶈兘涓虹┖锛�";
+
+            }
+            //2.楠岃瘉閾惰鍜屼粨搴撶殑瀵瑰簲鍏崇郴鏄惁姝g‘锛屼笉姝g‘鍒欎笉鍏佽淇濆瓨
+            //鍦ㄨ川鎶煎悎鍚屾壘鍒版湭瑙e帇锛屼笖璐ㄦ娂浠撳簱鍖呭惈褰撳墠浠撳簱鐨� 閾惰-浠撳簱锛堣川鎶煎悎鍚屽叧绯伙級
+            Map<String, PledgeContract> bankDepotMap = new HashMap<>();
+            for (PledgeContract pledgeContract : pledgeContracts) {
+                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
+                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
+                        bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
+                    }
+                }
+            }
+            //鍦╩ap涓鎵惧尮閰嶉摱琛岀殑鏁版嵁锛屽鏋滄病鏈夊尮閰嶇殑鏁版嵁锛屽垯涓嶅厑璁镐繚瀛�
+            if(!bankDepotMap.containsKey(data.getBankId())){
+                return "鏈壘鍒板搴旂殑璐ㄦ娂鍚堝悓锛岃妫�鏌ョ洃鐫i摱琛屾垨鑰呭嚭搴撲粨搴撳~鍐欐槸鍚︽纭紒";
+
+            }
+        }
+
         if (null == data.getUpdateBy()) {
             data.setUpdateBy(ContextUtil.getLoginUserName());
             data.setUpdateTime(new Date());
             data.setCreateBy(ContextUtil.getLoginUserName());
             data.setCreateTime(new Date());
-            data.setAuditStatus(Constant.COMPLETE_STATUS_NONE);
+            data.setAuditStatus(AuditStatus.STATUS_10.getCode());
             data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
             noticeOutMapper.insert(data);
         } else {
@@ -380,4 +464,110 @@
         return null;
     }
 
+    /**
+     *
+     * @param param
+     * @return
+     */
+    public ExportWordParam handleInData(ExportWordParam param) {
+
+        InoutNoticeIn notice = this.getNoticeInOne(param.getBizId());
+
+        //杞崲涓烘ā鏉块渶瑕佺殑map鏁版嵁婧�
+        Map<String, Object> map = new HashMap();
+
+        map.put("serId", notice.getId());
+        map.put("name", notice.getName());
+
+        String type = "";
+        if("10".equals(notice.getType())){
+            type = "搴撳尯閫氱煡鍗�";
+        }
+        if("20".equals(notice.getType())){
+            type = "鐩戠閫氱煡鍗�";
+        }
+        map.put("type", type);
+
+        map.put("customerName", notice.getCustomerName());
+
+        String unitName = "";
+        Dept dept = coreDeptService.getDeptById(notice.getUnitName());
+        if(dept != null){
+            unitName = dept.getKqmc();
+        }
+        map.put("unitName", unitName);
+
+        Depot depot = depotService.getCacheDepot(notice.getCompanyId(), notice.getDepotId());
+        String depotId = "";
+        if(dept != null){
+            depotId = depot.getName();
+        }
+        map.put("depotId", depotId);
+
+        map.put("year", notice.getYear());
+        map.put("targetNumber", notice.getTargetNumber());
+        map.put("completeNumber", notice.getCompleteNumber());
+        map.put("completeStatus", notice.getCompleteStatus());
+        map.put("contract", notice.getContract());
+        map.put("remark", notice.getRemark());
+        map.put("createUser", notice.getCreateBy());
+        map.put("createTime", DateFormatUtils.format(notice.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+
+        param.setDataMap(map);
+        return param;
+    }
+
+    /**
+     *
+     * @param param
+     * @return
+     */
+    public ExportWordParam handleOutData(ExportWordParam param) {
+
+        InoutNoticeOut notice = this.getNoticeOutOne(param.getBizId());
+
+        //杞崲涓烘ā鏉块渶瑕佺殑map鏁版嵁婧�
+        Map<String, Object> map = new HashMap();
+
+        map.put("serId", notice.getId());
+        map.put("name", notice.getName());
+
+        String type = "";
+        if("10".equals(notice.getType())){
+            type = "搴撳尯閫氱煡鍗�";
+        }
+        if("20".equals(notice.getType())){
+            type = "鐩戠閫氱煡鍗�";
+        }
+        map.put("type", type);
+
+        map.put("customerName", notice.getCustomerName());
+
+        String unitName = "";
+        Dept dept = coreDeptService.getDeptById(notice.getUnitName());
+        if(dept != null){
+            unitName = dept.getKqmc();
+        }
+        map.put("unitName", unitName);
+
+        Depot depot = depotService.getCacheDepot(notice.getCompanyId(), notice.getDepotId());
+        String depotId = "";
+        if(dept != null){
+            depotId = depot.getName();
+        }
+        map.put("depotId", depotId);
+
+        map.put("year", notice.getYear());
+        map.put("targetNumber", notice.getTargetNumber());
+        map.put("completeNumber", notice.getCompleteNumber());
+        map.put("completeStatus", notice.getCompleteStatus());
+        map.put("contract", notice.getContract());
+        map.put("remark", notice.getRemark());
+        map.put("createUser", notice.getCreateBy());
+        map.put("createTime", DateFormatUtils.format(notice.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+
+        param.setDataMap(map);
+        return param;
+    }
+
 }

--
Gitblit v1.9.3