From 96880d3b685cb56862a5b633182b97d8ec58eeb0 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期二, 06 一月 2026 15:25:27 +0800
Subject: [PATCH] 入库通知单交互修改,后端添加业务逻辑判断

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml          |   72 +++++++++--------------
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java                    |   46 ---------------
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java              |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java |   46 ++++++++++++++-
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java      |    2 
 5 files changed, 71 insertions(+), 96 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
index d57b37f..c4e25cf 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java
@@ -77,7 +77,7 @@
     @TableField("depot_names")
     private String depotNames;
 
-    @Column(name = "status", columnDefinition = "varchar(2) COMMENT '璐ㄦ娂鐘舵��'")
+    @Column(name = "status", columnDefinition = "varchar(2) COMMENT '璐ㄦ娂鐘舵�� Y 宸茶В鍘� N 鏈В鍘�'")
     @TableField("status")
     private String status = Constant.YN_N;
 
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 d5c9e2b..c06bd91 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
@@ -6,12 +6,9 @@
 import com.fzzy.igds.data.ExportWordParam;
 import com.fzzy.igds.data.NoticeDto;
 import com.fzzy.igds.data.NoticeParam;
-import com.fzzy.igds.domain.Depot;
-import com.fzzy.igds.domain.Dept;
+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;
@@ -42,6 +39,8 @@
     private DepotService depotService;
     @Resource
     private CoreDeptService coreDeptService;
+    @Resource
+    private PledgeContractService pledgeContractService;
 
     /*----------------------鍏ュ簱閫氱煡鍗曚俊鎭�-------------------------*/
     /**
@@ -129,6 +128,45 @@
      * @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 "鍏ュ簱浠撳簱鎵�鍦ㄨ川鎶煎悎鍚屻��"+pledgeContract.getName()+"銆戞湭瑙e帇锛岃瑙e帇鍚庡啀淇濆瓨锛�";
+                    }
+                }
+            }
+        }
+        //濡傛灉鍏ュ簱閫氱煡鍗曠被鍨嬩负閾惰閫氱煡鍗�
+        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());
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
index bc1f867..b5639f4 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java
@@ -48,52 +48,6 @@
     }
 
     /**
-     *
-     * TODO 褰撳墠鏂规硶鍙栨秷锛岄�昏緫璋冩暣涓哄湪鎻愪氦鏃跺�欓獙璇佹槸鍚︽槸閾惰鐩戠浠擄紝榛樿鑾峰彇鐩稿簲鐨勫垪琛�
-     * depotPR#getDataByBankId
-     *
-     * @return
-     */
-    @DataProvider
-    public List<Depot> getDataByBankId(String bankId) {
-        if (StringUtils.isNotEmpty(bankId)) {
-            //鏌ヨ閾惰瀵瑰簲鐨勭洃绠′粨搴�
-            IgdsBaseParam baseParam = new IgdsBaseParam();
-            baseParam.setBankId(bankId);
-            List<PledgeContract> pledgeContracts = pledgeContractService.listAll(baseParam);
-
-            // 鎻愬彇鎵�鏈� PledgeContract 涓� depot_ids 瀛楁鍖呭惈鐨� depot ID
-            List<String> validDepotIds = new ArrayList<>();
-            for (PledgeContract contract : pledgeContracts) {
-                if (StringUtils.isNotEmpty(contract.getDepotIds())) {
-                    // 灏嗛�楀彿鍒嗛殧鐨� depot_ids 杞崲涓� Set
-                    String[] ids = contract.getDepotIds().split(",");
-                    for (String id : ids) {
-                        if (StringUtils.isNotEmpty(id.trim())) {
-                            validDepotIds.add(id.trim());
-                        }
-                    }
-                }
-            }
-            List<Depot> allData = depotService.getData(null, ContextUtil.subDeptId(null), false);
-            if (!validDepotIds.isEmpty()) {
-                // 杩囨护鍑哄湪 PledgeContract.depot_ids 涓嚭鐜扮殑 depot
-                List<Depot> filteredData = new ArrayList<>();
-
-                for (Depot allDatum : allData) {
-                    if (validDepotIds.contains(allDatum.getId())) {
-                        filteredData.add(allDatum);
-                    }
-                }
-                return filteredData;
-            }
-            return new ArrayList<>();
-
-        }
-        return depotService.getData(null, ContextUtil.subDeptId(null), false);
-    }
-
-    /**
      * depotPR#saveOrUpdate
      *
      * @param data
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
index 568a51f..c9a5eff 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml
@@ -4,22 +4,7 @@
   <Context/>
   <Model>
     <DataType name="dtMain">
-      <ClientEvent name="onDataChange">if(arg.property == 'type'){&#xD;
-		//搴撳尯鑷缓閫氱煡鍗�&#xD;
-	if(arg.newValue == '10'){&#xD;
-		view.get(&quot;#formItemBank&quot;).set(&quot;visible&quot;,false);&#xD;
-	    var curData = view.get(&quot;#dsMain.data:#&quot;); //褰撳墠閫夋嫨鐨勬暟鎹�&#xD;
-	    curData.set(&quot;bankId&quot;,'-');&#xD;
-&#xD;
-	}&#xD;
-		//璐ㄦ娂鐩戠閫氱煡鍗�&#xD;
-	if(arg.newValue == '20'){&#xD;
-		view.get(&quot;#formItemBank&quot;).set(&quot;visible&quot;,true);&#xD;
-		var curData = view.get(&quot;#dsMain.data:#&quot;); //褰撳墠閫夋嫨鐨勬暟鎹�&#xD;
-	    curData.set(&quot;bankId&quot;,null);&#xD;
-	}&#xD;
-}&#xD;
-&#xD;
+      <ClientEvent name="onDataChange">&#xD;
 &#xD;
 &#xD;
 </ClientEvent>
@@ -216,6 +201,12 @@
       <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
       <Property name="loadMode">manual</Property>
       <Property name="dataType">dtNoticeParam</Property>
+    </DataSet>
+    <DataSet id="dsDepotList">
+      <Property name="dataProvider">depotPR#getData</Property>
+      <Property name="userData">浠撳簱鍒楄〃涓嬫媺妗�</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="dataType">[dtDepot]</Property>
     </DataSet>
     <Container>
       <Property name="className">c-param</Property>
@@ -416,12 +407,7 @@
       <Property name="iconClass">fa fa-tasks</Property>
       <Buttons>
         <Button id="btnOk">
-          <ClientEvent name="onClick">var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-var bankId = entity.get(&quot;bankId&quot;);&#xD;
-if(!bankId){&#xD;
-		        $alert(&quot;璇峰厛閫夋嫨鐩戠閾惰&quot;);&#xD;
-}else{&#xD;
-	view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
+          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
 	if(result){&#xD;
 		$alert(result);&#xD;
 		return;&#xD;
@@ -429,7 +415,6 @@
 	$notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
 	self.get(&quot;parent&quot;).hide();&#xD;
 });&#xD;
-}&#xD;
 &#xD;
 &#xD;
 </ClientEvent>
@@ -493,7 +478,12 @@
             <AutoFormElement id="formItemBank">
               <Property name="name">bankId</Property>
               <Property name="property">bankId</Property>
-              <Property name="hideMode">display</Property>
+              <Property name="hideMode">visibility</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">deptId</Property>
+              <Property name="property">deptId</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -593,7 +583,8 @@
             </AutoFormElement>
             <HtmlContainer layoutConstraint="colSpan:3">
               <Property name="content">1.鍏ュ簱閫氱煡鍗曚綔涓哄叆搴撲綔涓氱殑鍓嶇疆鏉′欢锛屽繀椤婚厤缃紝鍚﹀垯鏃犳硶杩涜鍏ュ簱浣滀笟銆�&lt;br>&#xD;
-2.鍗曟嵁绫诲瀷=搴撳尯閫氱煡鍗曪紝琛ㄧず搴撳尯鑷繁浣滀笟涓氬姟锛屼笉鍙楃洃绠$鐞嗐��</Property>
+2.鍗曟嵁绫诲瀷=搴撳尯閫氱煡鍗曪紝琛ㄧず搴撳尯鑷繁浣滀笟涓氬姟锛屼笉鍙楃洃绠$鐞嗐��&lt;br>&#xD;
+3.鍗曟嵁绫诲瀷=璐ㄦ娂鐩戠閫氱煡鍗曪紝鍗曟嵁蹇呴』濉啓鐩戠潱閾惰銆�</Property>
               <Property name="exClassName">h-tip</Property>
               <Property name="contentOverflow">hidden</Property>
             </HtmlContainer>
@@ -603,25 +594,18 @@
       <Tools/>
     </Dialog>
     <DataSetDropDown id="dsDepotDropDown">
-      <ClientEvent name="onOpen">	&#xD;
-	var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-	if(!entity){&#xD;
-	    $alert(&quot;璇峰厛閫夋嫨鐩戠閾惰&quot;);&#xD;
-	}else{&#xD;
-		var typeData = entity.get(&quot;type&quot;);&#xD;
-		if(typeData=='20'){&#xD;
-			var bankId = entity.get(&quot;bankId&quot;);&#xD;
-			console.log(bankId);&#xD;
-		    if(!bankId){&#xD;
-		        $alert(&quot;璇峰厛閫夋嫨鐩戠閾惰&quot;);&#xD;
-		    }else{&#xD;
-				view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;bankId&quot;)).flushAsync();&#xD;
-		    }&#xD;
-		}else{&#xD;
-			view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,null).flushAsync();&#xD;
-		}&#xD;
-	}&#xD;
-</ClientEvent>
+      <ClientEvent name="onOpen">&#xD;
+var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(!entity){&#xD;
+    $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+}else{&#xD;
+    var deptId = entity.get(&quot;deptId&quot;);&#xD;
+    if(!deptId){&#xD;
+        $alert(&quot;璇峰厛閫夋嫨鎵�灞炲垎搴�&quot;);&#xD;
+    }else{&#xD;
+        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
+    }&#xD;
+}</ClientEvent>
       <Property name="dataSet">dsDepotList</Property>
       <Property name="height">450</Property>
       <Property name="autoOpen">true</Property>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
index 927c320..36c1764 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
@@ -63,7 +63,6 @@
 		InoutNoticeIn data = new InoutNoticeIn();
 		data.setId(ContextUtil.generateOrderId("RK"));
 		data.setName("鍏ュ簱閫氱煡鍗�");
-        data.setType("20");
 		data.setCompanyId(user.getCompanyId());
 		data.setDeptId(ContextUtil.subDeptId(user));
 		data.setYear(DateFormatUtils.format(new Date(), "yyyy"));

--
Gitblit v1.9.3