From 385a783e76b2765d55d03430f064700d12991b6b Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期一, 05 一月 2026 16:40:10 +0800
Subject: [PATCH] 入库通知单添加银行填写

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeIn.view.xml             |   98 ++++++++++++++++++++++-
 fzzy-igdss-view/src/main/java/com/fzzy/igds/DepotPR.java                       |   72 ++++++++++++++++-
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java                 |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java |   11 ++
 4 files changed, 165 insertions(+), 17 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
index 0d2b9c4..f71f858 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractService.java
@@ -22,14 +22,19 @@
     private PledgeContractMapper pledgeContractMapper;
 
     public List<PledgeContract> listAll(IgdsBaseParam param) {
+        if (null == param) param = new IgdsBaseParam();
 
-        if (null == param)
-            return pledgeContractMapper.selectList(null);
-
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
         QueryWrapper<PledgeContract> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("company_id", param.getCompanyId());
         if (StringUtils.isNotEmpty(param.getName())) {
             queryWrapper.like("name", param.getName());
         }
+        if (StringUtils.isNotEmpty(param.getBankId())) {
+            queryWrapper.eq("pledge_bank", param.getBankId());
+        }
         return pledgeContractMapper.selectList(queryWrapper);
     }
 
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 5466970..91cd547 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
@@ -3,15 +3,20 @@
 import com.bstek.dorado.annotation.DataProvider;
 import com.bstek.dorado.annotation.DataResolver;
 import com.bstek.dorado.annotation.Expose;
+import com.fzzy.igds.data.IgdsBaseParam;
 import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.PledgeContract;
 import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.PledgeContractService;
 import com.fzzy.igds.utils.ContextUtil;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -26,20 +31,69 @@
     @Resource
     private DepotService depotService;
 
+    @Resource
+    private PledgeContractService pledgeContractService;
+
     /**
      * depotPR#getData
+     *
      * @return
      */
     @DataProvider
-    public List<Depot> getData(String parentId){
-        if(StringUtils.isNotEmpty(parentId)){
-            return depotService.getData(null,parentId,false);
+    public List<Depot> getData(String parentId) {
+        if (StringUtils.isNotEmpty(parentId)) {
+            return depotService.getData(null, parentId, false);
         }
-        return depotService.getData(null, ContextUtil.subDeptId(null) ,false);
+        return depotService.getData(null, ContextUtil.subDeptId(null), false);
+    }
+
+    /**
+     * 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
      * @return
      */
@@ -55,11 +109,12 @@
 
     /**
      * depotPR#deleteDepot
+     *
      * @param data
      */
     @Expose
     @Transactional
-    public void deleteDepot(Depot data)  {
+    public void deleteDepot(Depot data) {
         Depot depot = new Depot();
         BeanUtils.copyProperties(data, depot);
         depotService.deleteDepot(depot);
@@ -75,6 +130,7 @@
 
     /**
      * ${dorado.getDataProvider("depotPR#getAllCache").getResult()}
+     *
      * @return
      */
     @DataProvider
@@ -84,6 +140,7 @@
 
     /**
      * depotPR#ajaxGetAllCache
+     *
      * @return
      */
     @Expose
@@ -93,11 +150,12 @@
 
     /**
      * depotPR#getDataByCompanyId
+     *
      * @return
      */
     @DataProvider
-    public List<Depot> getDataByCompanyId(){
-        return depotService.getData(null, null ,false);
+    public List<Depot> getDataByCompanyId() {
+        return depotService.getData(null, null, false);
     }
 
     /**
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 8aae88e..5245c0d 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,6 +4,25 @@
   <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;
+&#xD;
+&#xD;
+</ClientEvent>
       <Property name="creationType">com.fzzy.igds.domain.InoutNoticeIn</Property>
       <PropertyDef name="id">
         <Property></Property>
@@ -18,7 +37,7 @@
         <Property name="label">鎵�灞炲垎搴�</Property>
         <Property name="mapping">
           <Property name="keyProperty">id</Property>
-          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
           <Property name="valueProperty">kqmc</Property>
         </Property>
       </PropertyDef>
@@ -57,10 +76,11 @@
         <Property></Property>
         <Property name="label">鍏ュ簱浠撳簱</Property>
         <Property name="mapping">
-          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getData&quot;).getResult()}</Property>
           <Property name="keyProperty">id</Property>
           <Property name="valueProperty">name</Property>
         </Property>
+        <Property name="required">true</Property>
       </PropertyDef>
       <PropertyDef name="customerName">
         <Property></Property>
@@ -107,8 +127,8 @@
         <Property name="label">瀹℃牳鐘舵��</Property>
         <Property name="mapping">
           <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerStatusType&quot;).getResult()}</Property>
-          <Property name="keyProperty">dictLabel</Property>
-          <Property name="valueProperty">dictValue</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
         </Property>
       </PropertyDef>
       <PropertyDef name="auditUser">
@@ -163,6 +183,16 @@
         <Property></Property>
         <Property name="label">鏇存柊浜�</Property>
       </PropertyDef>
+      <PropertyDef name="bankId">
+        <Property></Property>
+        <Property name="label">鐩戠潱閾惰</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="visible">true</Property>
+      </PropertyDef>
     </DataType>
   </Model>
   <View layout="padding:10">
@@ -191,6 +221,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#getDataByBankId</Property>
+      <Property name="userData">浠撳簱鍒楄〃涓嬫媺妗�</Property>
+      <Property name="loadMode">manual</Property>
+      <Property name="dataType">[dtDepot]</Property>
     </DataSet>
     <Container>
       <Property name="className">c-param</Property>
@@ -391,14 +427,23 @@
       <Property name="iconClass">fa fa-tasks</Property>
       <Buttons>
         <Button id="btnOk">
-          <ClientEvent name="onClick">view.get(&quot;#updateSave&quot;).execute(function(result){&#xD;
+          <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;
 	if(result){&#xD;
 		$alert(result);&#xD;
 		return;&#xD;
 	}&#xD;
 	$notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
 	self.get(&quot;parent&quot;).hide();&#xD;
-});</ClientEvent>
+});&#xD;
+}&#xD;
+&#xD;
+&#xD;
+</ClientEvent>
           <Property name="caption">淇濆瓨</Property>
           <Property name="iconClass">fa fa-check-circle</Property>
           <Property name="exClassName">btn1</Property>
@@ -456,9 +501,16 @@
               <Property name="trigger">autoMappingDropDown1</Property>
               <Editor/>
             </AutoFormElement>
+            <AutoFormElement id="formItemBank">
+              <Property name="name">bankId</Property>
+              <Property name="property">bankId</Property>
+              <Property name="hideMode">display</Property>
+              <Editor/>
+            </AutoFormElement>
             <AutoFormElement>
               <Property name="name">depotId</Property>
               <Property name="property">depotId</Property>
+              <Property name="trigger">dsDepotDropDown</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -472,7 +524,7 @@
               <Property name="trigger">defaultYearDropDown</Property>
               <Editor/>
             </AutoFormElement>
-            <AutoFormElement layoutConstraint="colSpan:2">
+            <AutoFormElement id="formItemCustomerName" layoutConstraint="colSpan:2">
               <Property name="name">customerName</Property>
               <Property name="property">customerName</Property>
               <Editor/>
@@ -561,6 +613,38 @@
       </Children>
       <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>
+      <Property name="dataSet">dsDepotList</Property>
+      <Property name="height">450</Property>
+      <Property name="autoOpen">true</Property>
+      <Property name="assignmentMap">depotId=id</Property>
+      <Property name="width">400</Property>
+      <DataColumn>
+        <Property name="align">center</Property>
+        <Property name="name">name</Property>
+        <Property name="property">name</Property>
+        <Editor/>
+      </DataColumn>
+    </DataSetDropDown>
     <UpdateAction id="updateSave">
       <Property name="dataResolver">inoutNoticePR#saveIn</Property>
       <UpdateItem>
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 36c1764..927c320 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,6 +63,7 @@
 		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