From 58f63e3a124680d0b1f571f5d0a1e3ed308d43be Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 20 三月 2026 14:45:34 +0800
Subject: [PATCH] 质押合同页面重构

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/PledgeContractDepotMapper.java   |   10 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractDepotService.java |   95 +++++++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContractPR.java                   |   87 ++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContractDepot.java         |   50 +++
 fzzy-igdss-view/src/main/java/models/core.model.xml                                 |   51 +++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContract.java              |   12 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContract.view.xml                 |  474 ++++++++++++++++++++----------------
 7 files changed, 561 insertions(+), 218 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 5c605cb..39b63d1 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
@@ -7,12 +7,10 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 璐ㄦ娂鍚堝悓
@@ -48,7 +46,7 @@
     //鍚堝悓閲戦
     @Column(name = "contract_amount", columnDefinition = "decimal(20,2) COMMENT '鍚堝悓閲戦'")
     @TableField("contract_amount")
-    private Double contractAmount=0.0;
+    private Double contractAmount = 0.0;
 
     @Column(name = "repaid_amount", columnDefinition = "decimal(20,2) COMMENT '宸茶繕閲戦'")
     @TableField("repaid_amount")
@@ -105,4 +103,8 @@
     @TableField("remark")
     private String remark;
 
+    //璐ㄦ娂浠撳簱
+    @Transient
+    @TableField(exist = false)
+    private List<PledgeContractDepot> depotData;
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContractDepot.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContractDepot.java
new file mode 100644
index 0000000..6eb7bb4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PledgeContractDepot.java
@@ -0,0 +1,50 @@
+package com.fzzy.igds.domain;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+@Data
+@Entity
+@Table(name = "d_pledge_contract_depot")
+@TableName("d_pledge_contract_depot")
+@EqualsAndHashCode(callSuper = false)
+public class PledgeContractDepot extends BizBaseEntity implements Serializable {
+
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+
+    @Id
+    @Column(name = "id", columnDefinition = "varchar(40) COMMENT 'ID'")
+    @TableField("id")
+    private String id;
+
+
+    @Column(name = "pledge_id", columnDefinition = "varchar(40) COMMENT '璐ㄦ娂鍚堝悓ID'")
+    @TableField("pledge_id")
+    private String pledgeId;
+
+
+    @Column(name = "pledge_dept", columnDefinition = "varchar(40) COMMENT '璐ㄦ娂搴撳尯ID'")
+    @TableField("pledge_dept")
+    private String pledgeDept;
+
+
+    @Column(name = "pledge_depot", columnDefinition = "varchar(40) COMMENT '璐ㄦ娂浠撳簱ID'")
+    @TableField("pledge_depot")
+    private String pledgeDepot;
+
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/PledgeContractDepotMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/PledgeContractDepotMapper.java
new file mode 100644
index 0000000..4a28078
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/PledgeContractDepotMapper.java
@@ -0,0 +1,10 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.PledgeContractDepot;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PledgeContractDepotMapper extends BaseMapper<PledgeContractDepot> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractDepotService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractDepotService.java
new file mode 100644
index 0000000..358bfb1
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/PledgeContractDepotService.java
@@ -0,0 +1,95 @@
+package com.fzzy.igds.service;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.data.BaseResp;
+import com.fzzy.igds.data.IgdsBaseParam;
+import com.fzzy.igds.domain.PledgeContractDepot;
+import com.fzzy.igds.mapper.PledgeContractDepotMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+public class PledgeContractDepotService {
+
+    @Resource
+    private PledgeContractDepotMapper pledgeContractDepotMapper;
+
+
+    /**
+     * 鏌ヨ璐ㄦ娂鍚堝悓涓嬪緱璐ㄦ娂浠撳簱
+     *
+     * @param param
+     * @author sgj
+     * @since 2026/03/20
+     */
+    public List<PledgeContractDepot> listAll(IgdsBaseParam param) {
+        if (null == param) param = new IgdsBaseParam();
+
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        QueryWrapper<PledgeContractDepot> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("company_id", param.getCompanyId());
+        if (StringUtils.isNotEmpty(param.getParentId())) {
+            queryWrapper.like("pledge_id", param.getParentId());
+        }
+
+        queryWrapper.orderByDesc("update_time");
+
+        return pledgeContractDepotMapper.selectList(queryWrapper);
+    }
+
+
+    /**
+     * 鎵归噺鏂板璐ㄦ娂浠撳簱
+     *
+     * @param pledgeContractList
+     * @author sgj
+     * @since 2026/03/20
+     */
+    public BaseResp addDataByList(List<PledgeContractDepot> pledgeContractList) {
+        if (pledgeContractList.isEmpty()) {
+            return BaseResp.success();
+        }
+        boolean PledgeIdflag = true;
+        for (PledgeContractDepot pledgeContractDepot : pledgeContractList) {
+            pledgeContractDepot.setCompanyId(ContextUtil.getCompanyId());
+            pledgeContractDepot.setUpdateBy(ContextUtil.getLoginUserName());
+            pledgeContractDepot.setUpdateTime(new Date());
+            pledgeContractDepot.setCreateBy(ContextUtil.getLoginUserName());
+            pledgeContractDepot.setCreateTime(new Date());
+            if (StringUtils.isEmpty(pledgeContractDepot.getPledgeId())) {
+                PledgeIdflag = false;
+                break;
+            }
+            if (StringUtils.isEmpty(pledgeContractDepot.getId())) {
+                pledgeContractDepot.setId(ContextUtil.generateId());
+                pledgeContractDepotMapper.insert(pledgeContractDepot);
+            }
+        }
+        if (!PledgeIdflag) {
+            return BaseResp.error("娣诲姞澶辫触鈥斺�旇川鎶煎悎鍚孖d涓嶈兘涓虹┖");
+        }
+        return BaseResp.success();
+    }
+
+    /**
+     * 鍒犻櫎璐ㄦ娂浠撳簱
+     *
+     * @param pledgeContractDepot
+     * @author sgj
+     * @since 2026/03/20
+     */
+    public BaseResp deleteData(PledgeContractDepot pledgeContractDepot) {
+        return pledgeContractDepotMapper.deleteById(pledgeContractDepot) > 0 ? BaseResp.success() : BaseResp.error("鍒犻櫎澶辫触");
+    }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContract.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContract.view.xml
index 65e21b9..964740d 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContract.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContract.view.xml
@@ -10,7 +10,19 @@
 */&#xD;
 query = function(){&#xD;
     view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
-}&#xD;</ClientEvent>
+}&#xD;&#xD;
+&#xD;
+queryDepot= function(){&#xD;
+	var entity = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+	if(entity){&#xD;
+		var code = entity.get(&quot;id&quot;);&#xD;
+		view.get(&quot;#dsPledgeContractDepot&quot;).set(&quot;parameter&quot;,{PledgeId:code}).flush();&#xD;
+	}else{&#xD;
+		$notify(&quot;璇峰厛閫夋嫨璐ㄦ娂鍚堝悓淇℃伅锛�&quot;);&#xD;
+	}&#xD;
+&#xD;
+}&#xD;
+</ClientEvent>
     <Property name="packages">font-awesome,css-common</Property>
     <DataSet id="dsMain">
       <Property name="loadMode">lazy</Property>
@@ -21,17 +33,10 @@
       <ClientEvent name="onReady">self.insert({});</ClientEvent>
       <Property name="dataType">dtBaseParam</Property>
     </DataSet>
-    <DataSet id="dsDeptList">
-      <Property name="dataProvider">deptPR#getData</Property>
-      <Property name="userData">搴撳尯鍒楄〃涓嬫媺妗�</Property>
+    <DataSet id="dsPledgeContractDepot">
+      <Property name="dataProvider">pledgeContractPR#listAllData</Property>
+      <Property name="dataType">[dtPledgeContractDepot]</Property>
       <Property name="loadMode">manual</Property>
-      <Property name="dataType">[dtDept]</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>
@@ -65,35 +70,40 @@
     </Container>
     <Container>
       <Property name="className">c-data</Property>
-      <ToolBar>
-        <ToolBarButton>
-          <ClientEvent name="onClick">&#xD;
+      <SplitPanel>
+        <Property name="direction">right</Property>
+        <Property name="position">350</Property>
+        <MainControl>
+          <Container>
+            <ToolBar>
+              <ToolBarButton>
+                <ClientEvent name="onClick">&#xD;
 view.get(&quot;#ajaxInitAdd&quot;).execute(function(data){&#xD;
     	view.get(&quot;#dsMain&quot;).insert(data);&#xD;
         view.get(&quot;#dialogMain&quot;).show();&#xD;
     });</ClientEvent>
-          <Property name="caption">鏂板</Property>
-          <Property name="exClassName">btn1</Property>
-          <Property name="width">100</Property>
-          <Property name="iconClass">fa fa-plus</Property>
-        </ToolBarButton>
-        <ToolBarButton>
-          <ClientEvent name="onClick">var data = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);
+                <Property name="caption">鏂板</Property>
+                <Property name="exClassName">btn1</Property>
+                <Property name="width">100</Property>
+                <Property name="iconClass">fa fa-plus</Property>
+              </ToolBarButton>
+              <ToolBarButton>
+                <ClientEvent name="onClick">var data = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);
 if(data){&#xD;
     view.get(&quot;#dialogMain&quot;).show();
 }else{&#xD;
     $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑淇℃伅鈥︹��&quot;);&#xD;
 }&#xD;</ClientEvent>
-          <Property name="id">btnUpdate</Property>
-          <Property name="caption">淇敼</Property>
-          <Property name="exClassName">btn2</Property>
-          <Property name="width">100</Property>
-          <Property name="iconClass">fa fa-pencil-square-o</Property>
-        </ToolBarButton>
-        <ToolBarButton>
-          <ClientEvent name="onClick">var data = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;)
+                <Property name="id">btnUpdate</Property>
+                <Property name="caption">淇敼</Property>
+                <Property name="exClassName">btn2</Property>
+                <Property name="width">100</Property>
+                <Property name="iconClass">fa fa-pencil-square-o</Property>
+              </ToolBarButton>
+              <ToolBarButton>
+                <ClientEvent name="onClick">var data = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;)
 if(!data){
-	$alert(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑淇℃伅鈥︹��&quot;);
+	$alert(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑璐ㄦ娂鍚堝悓淇℃伅鈥︹��&quot;);
 }else{
 	view.get(&quot;#ajaxDelData&quot;).set(&quot;parameter&quot;, data).execute(function(result){
 		if(&quot;200&quot;!=result.code){
@@ -104,56 +114,131 @@
 		}
 	})
 }</ClientEvent>
-          <Property name="caption">鍒犻櫎</Property>
-          <Property name="exClassName">btn3</Property>
-          <Property name="width">100</Property>
-          <Property name="iconClass">fa fa-times</Property>
-        </ToolBarButton>
-      </ToolBar>
-      <DataGrid id="dgMain" layoutConstraint="padding:8" selectionMode="singleRow">
-        <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;, arg.data)</ClientEvent>
-        <Property name="dataSet">dsMain</Property>
-        <Property name="readOnly">true</Property>
-        <RowSelectorColumn/>
-        <RowNumColumn/>
-        <DataColumn name="pledgeBank">
-          <Property name="property">pledgeBank</Property>
-        </DataColumn>
-        <DataColumn name="pledgeCompany">
-          <Property name="property">pledgeCompany</Property>
-        </DataColumn>
-        <DataColumn name="name">
-          <Property name="property">name</Property>
-          <Property name="width">400</Property>
-        </DataColumn>
-        <DataColumn name="status">
-          <Property name="property">status</Property>
-          <Property name="align">center</Property>
-          <Property name="width">150</Property>
-        </DataColumn>
-        <DataColumn name="remark">
-          <Property name="property">remark</Property>
-        </DataColumn>
-        <DataColumn name="updateBy">
-          <Property name="property">updateBy</Property>
-          <Property name="align">center</Property>
-          <Property name="width">160</Property>
-        </DataColumn>
-        <DataColumn name="updateTime">
-          <Property name="property">updateTime</Property>
-          <Property name="align">center</Property>
-          <Property name="width">200</Property>
-        </DataColumn>
-        <DataColumn name="signTime">
-          <Property name="property">signTime</Property>
-        </DataColumn>
-        <DataColumn name="pledgeStart">
-          <Property name="property">pledgeStart</Property>
-        </DataColumn>
-        <DataColumn name="pledgeEnd">
-          <Property name="property">pledgeEnd</Property>
-        </DataColumn>
-      </DataGrid>
+                <Property name="caption">鍒犻櫎</Property>
+                <Property name="exClassName">btn3</Property>
+                <Property name="width">100</Property>
+                <Property name="iconClass">fa fa-times</Property>
+              </ToolBarButton>
+              <ToolBarButton>
+                <ClientEvent name="onClick">//var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+var cur = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+if(cur){&#xD;
+	var entity = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+	var Id = entity.get(&quot;id&quot;);&#xD;
+	var code = entity.get(&quot;pledgeCompany&quot;);&#xD;
+	view.get(&quot;#dsDepotSelect&quot;).set(&quot;parameter&quot;,{parentId:code,PledgeId:Id}).flush();&#xD;
+	view.get(&quot;#dialogDepot&quot;).show();&#xD;
+}else{&#xD;
+	$notify(&quot;璇峰厛閫夋嫨璐ㄦ娂鍚堝悓淇℃伅锛�&quot;);&#xD;
+}</ClientEvent>
+                <Property name="caption">閰嶇疆浠撳簱</Property>
+                <Property name="exClassName">btn1</Property>
+                <Property name="width">100</Property>
+                <Property name="iconClass">fa fa-plus</Property>
+              </ToolBarButton>
+            </ToolBar>
+            <DataGrid id="dgMain" layoutConstraint="padding:8" selectionMode="singleRow">
+              <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;, arg.data);&#xD;
+var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+var code = entity.get(&quot;id&quot;);&#xD;
+view.get(&quot;#dsPledgeContractDepot&quot;).set(&quot;parameter&quot;,{PledgeId:code}).flush();</ClientEvent>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="readOnly">true</Property>
+              <Property name="fixedColumnCount">3</Property>
+              <RowSelectorColumn/>
+              <RowNumColumn/>
+              <DataColumn name="pledgeCompany">
+                <Property name="property">pledgeCompany</Property>
+                <Property name="width">200</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="pledgeBank">
+                <Property name="property">pledgeBank</Property>
+                <Property name="width">200</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="name">
+                <Property name="property">name</Property>
+                <Property name="width">400</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="status">
+                <Property name="property">status</Property>
+                <Property name="align">center</Property>
+                <Property name="width">150</Property>
+              </DataColumn>
+              <DataColumn name="remark">
+                <Property name="property">remark</Property>
+                <Property name="width">300</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="updateBy">
+                <Property name="property">updateBy</Property>
+                <Property name="align">center</Property>
+                <Property name="width">300</Property>
+              </DataColumn>
+              <DataColumn name="updateTime">
+                <Property name="property">updateTime</Property>
+                <Property name="align">center</Property>
+                <Property name="width">150</Property>
+              </DataColumn>
+              <DataColumn name="signTime">
+                <Property name="property">signTime</Property>
+                <Property name="width">150</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="pledgeStart">
+                <Property name="property">pledgeStart</Property>
+                <Property name="width">150</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+              <DataColumn name="pledgeEnd">
+                <Property name="property">pledgeEnd</Property>
+                <Property name="width">150</Property>
+                <Property name="align">center</Property>
+              </DataColumn>
+            </DataGrid>
+          </Container>
+        </MainControl>
+        <SideControl>
+          <Container>
+            <ToolBar>
+              <ToolBarButton>
+                <ClientEvent name="onClick">var data = view.get(&quot;#dgMainItem&quot;).get(&quot;selection&quot;)
+if(!data){
+	$alert(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑璐ㄦ娂浠撳簱淇℃伅鈥︹��&quot;);
+}else{
+	view.get(&quot;#ajaxDelDepotData&quot;).set(&quot;parameter&quot;, data).execute(function(result){
+		if(&quot;200&quot;!=result.code){
+			$alert(&quot;寮傚父淇℃伅锛�&quot;+result.message);
+		}else{
+			$notify(&quot;鎵ц鎴愬姛&quot;);
+            queryDepot();
+		}
+	})
+}</ClientEvent>
+                <Property name="caption">鍒犻櫎浠撳簱</Property>
+                <Property name="exClassName">btn3</Property>
+                <Property name="width">100</Property>
+                <Property name="iconClass">fa fa-times</Property>
+              </ToolBarButton>
+            </ToolBar>
+            <DataGrid id="dgMainItem" layoutConstraint="padding:8" selectionMode="singleRow">
+              <ClientEvent name="onDataRowClick">self.set(&quot;selection&quot;, arg.data)</ClientEvent>
+              <Property name="dataSet">dsPledgeContractDepot</Property>
+              <Property name="readOnly">true</Property>
+              <RowSelectorColumn/>
+              <RowNumColumn/>
+              <DataColumn name="pledgeDept">
+                <Property name="property">pledgeDept</Property>
+              </DataColumn>
+              <DataColumn name="pledgeDepot">
+                <Property name="property">pledgeDepot</Property>
+              </DataColumn>
+            </DataGrid>
+          </Container>
+        </SideControl>
+      </SplitPanel>
     </Container>
     <Dialog id="dialogMain" layout="regionPadding:8">
       <Property name="closeable">false</Property>
@@ -225,15 +310,23 @@
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
-              <Property name="name">pledgeDept</Property>
-              <Property name="property">pledgeDept</Property>
-              <Property name="trigger">dsDeptDropDown</Property>
+              <Property name="name">contractAmount</Property>
+              <Property name="property">contractAmount</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
-              <Property name="name">depotNames</Property>
-              <Property name="property">depotNames</Property>
-              <Property name="trigger">CDDDept</Property>
+              <Property name="name">repaidAmount</Property>
+              <Property name="property">repaidAmount</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:2">
+              <Property name="name">contractName</Property>
+              <Property name="property">contractName</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">contractNo</Property>
+              <Property name="property">contractNo</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -251,35 +344,9 @@
               <Property name="property">pledgeEnd</Property>
               <Editor/>
             </AutoFormElement>
-            <AutoFormElement layoutConstraint="colSpan:2">
-              <Property name="name">contractName</Property>
-              <Property name="property">contractName</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">contractNo</Property>
-              <Property name="property">contractNo</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">contractAmount</Property>
-              <Property name="property">contractAmount</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement>
-              <Property name="name">repaidAmount</Property>
-              <Property name="property">repaidAmount</Property>
-              <Editor/>
-            </AutoFormElement>
             <AutoFormElement>
               <Property name="name">status</Property>
               <Property name="property">status</Property>
-              <Editor/>
-            </AutoFormElement>
-            <AutoFormElement layoutConstraint="colSpan:3">
-              <Property name="name">remark</Property>
-              <Property name="property">remark</Property>
-              <Property name="editorType">TextArea</Property>
               <Editor/>
             </AutoFormElement>
             <AutoFormElement>
@@ -292,6 +359,12 @@
               <Property name="name">createTime</Property>
               <Property name="property">createTime</Property>
               <Property name="readOnly">true</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement layoutConstraint="colSpan:3">
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Property name="editorType">TextArea</Property>
               <Editor/>
             </AutoFormElement>
             <HtmlContainer layoutConstraint="colSpan:3">
@@ -314,108 +387,93 @@
       </UpdateItem>
     </UpdateAction>
     <AjaxAction id="ajaxDelData">
-      <Property name="confirmMessage">纭畾瑕佸垹闄ゆ暟鎹箞锛�</Property>
+      <Property name="confirmMessage">纭畾瑕佸垹闄よ璐ㄦ娂鍚堝悓鏁版嵁鍚楋紵</Property>
       <Property name="service">pledgeContractPR#delete</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDelDepotData">
+      <Property name="confirmMessage">纭畾瑕佸垹闄よ璐ㄦ娂浠撳簱鏁版嵁涔堝悧锛�</Property>
+      <Property name="service">pledgeContractPR#deleteDepot</Property>
     </AjaxAction>
     <AjaxAction id="ajaxInitAdd">
       <Property name="service">pledgeContractPR#initAdd</Property>
     </AjaxAction>
-    <DataSetDropDown id="dsDeptDropDown">
-      <ClientEvent name="onOpen">&#xD;
-var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-if(!entity){&#xD;
-    $alert(&quot;璇峰厛閫夋嫨璐ㄦ娂鍏徃&quot;);&#xD;
-}else{&#xD;
-    var pledgeCompany = entity.get(&quot;pledgeCompany&quot;);&#xD;
-    if(!pledgeCompany){&#xD;
-        $alert(&quot;璇峰厛閫夋嫨璐ㄦ娂鍏徃&quot;);&#xD;
-    }else{&#xD;
-        view.get(&quot;#dsDeptList&quot;).set(&quot;parameter&quot;,entity.get(&quot;pledgeCompany&quot;)).flushAsync();&#xD;
-    }
-}</ClientEvent>
-      <Property name="dataSet">dsDeptList</Property>
-      <Property name="height">450</Property>
-      <Property name="autoOpen">true</Property>
-      <Property name="assignmentMap">pledgeDept=id</Property>
-      <Property name="width">400</Property>
-      <DataColumn>
-        <Property name="align">center</Property>
-        <Property name="name">kqmc</Property>
-        <Property name="property">kqmc</Property>
-        <Editor/>
-      </DataColumn>
-    </DataSetDropDown>
-    <CustomDropDown id="CDDDept">
-      <ClientEvent name="onOpen">&#xD;
-var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-if(!entity){&#xD;
-    $alert(&quot;璇峰厛閫夋嫨璐ㄦ娂搴撳尯&quot;);&#xD;
-}else{&#xD;
-    var pledgeDept = entity.get(&quot;pledgeDept&quot;);&#xD;
-    if(!pledgeDept){&#xD;
-        $alert(&quot;璇峰厛閫夋嫨璐ㄦ娂搴撳尯&quot;);&#xD;
-    }else{&#xD;
-        view.get(&quot;#dsDeptSelect&quot;).set(&quot;parameter&quot;,entity.get(&quot;pledgeDept&quot;)).flushAsync();&#xD;
-    }
-}</ClientEvent>
-      <Property name="minWidth">400</Property>
-      <Property name="minHeight">400</Property>
-      <Property name="assignmentMap">depotIds=depotIds,depotNames=depotNames</Property>
-      <Panel>
-        <Property name="showCaptionBar">false</Property>
-        <Buttons>
-          <Button>
-            <ClientEvent name="onClick">var selection = view.get(&quot;#dgDepotSelect&quot;).get(&quot;selection&quot;);&#xD;
-if(!selection || selection.length == 0){&#xD;
-    $alert(&quot;璇烽�夋嫨浠撳簱&quot;);&#xD;
-    return;&#xD;
-}&#xD;
+    <Dialog id="dialogDepot">
+      <ClientEvent name="onReady">var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+var code = entity.get(&quot;pledgeCompany&quot;);&#xD;
+view.get(&quot;#dsDepotSelect&quot;).set(&quot;parameter&quot;,{parentId:code}).flush();</ClientEvent>
+      <Property name="width">50%</Property>
+      <Property name="height">80%</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var selection = view.get(&quot;#dialogDepotSelect&quot;).get(&quot;selection&quot;);&#xD;
+var cur = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+var ua = view.get(&quot;#saveAction&quot;);&#xD;
+if(selection.length == 0) return;&#xD;
 &#xD;
-var depotIds = &quot;&quot;,depotNames=&quot;&quot;;&#xD;
-selection.each(function(item){&#xD;
-    depotIds += item.get(&quot;id&quot;)+&quot;,&quot;;&#xD;
-    depotNames+=item.get(&quot;name&quot;)+&quot;,&quot;;&#xD;
+var items = cur.get(&quot;depotData&quot;);&#xD;
+var tag = true;&#xD;
+selection.each(function(entity){&#xD;
+	tag = true;&#xD;
+	items.each(function(data){&#xD;
+		if(data.get(&quot;pledgeDepot&quot;) == entity.get(&quot;id&quot;)) tag = false;&#xD;
+	});&#xD;
+	if(tag){&#xD;
+		items.insert({&#xD;
+			pledgeDepot:entity.get(&quot;id&quot;),&#xD;
+			pledgeDept:entity.get(&quot;deptId&quot;),&#xD;
+			pledgeId:cur.get(&quot;id&quot;),&#xD;
+			companyId:cur.get(&quot;companyId&quot;)&#xD;
+		});&#xD;
+	}&#xD;
+});	&#xD;
+ua.execute(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+	view.get(&quot;#dialogDepotSelect&quot;).set(&quot;selection&quot;,null);&#xD;
+	queryDepot();&#xD;
 });&#xD;
-&#xD;
-view.get(&quot;#CDDDept&quot;).close({depotIds:depotIds,depotNames:depotNames});</ClientEvent>
-            <Property name="caption">纭閫夋嫨</Property>
-          </Button>
-          <Button>
-            <ClientEvent name="onClick">view.get(&quot;#CDDDept&quot;).close({});&#xD;
-                view.get(&quot;#dgDepotSelect&quot;).set(&quot;selection&quot;,null);</ClientEvent>
-            <Property name="caption">鍙栨秷鎿嶄綔</Property>
-          </Button>
-        </Buttons>
-        <Children>
-          <DataSet id="dsDeptSelect">
-            <Property name="dataType">[dtDepot]</Property>
-            <Property name="dataProvider">depotPR#getData</Property>
-            <Property name="userData">搴撳尯鍒楄〃涓嬫媺妗�</Property>
-            <Property name="loadMode">manual</Property>
-          </DataSet>
-          <DataGrid id="dgDepotSelect">
-            <Property name="dataSet">dsDeptSelect</Property>
-            <Property name="selectionMode">multiRows</Property>
-            <RowSelectorColumn>
-              <Property name="caption">閫夋嫨</Property>
-              <Property name="width">50</Property>
-            </RowSelectorColumn>
-            <DataColumn name="name">
-              <Property name="property">name</Property>
-              <Property name="readOnly">true</Property>
-            </DataColumn>
-            <DataColumn name="id">
-              <Property name="property">id</Property>
-              <Property name="readOnly">true</Property>
-            </DataColumn>
-            <DataColumn name="depotType">
-              <Property name="property">depotType</Property>
-              <Property name="readOnly">true</Property>
-            </DataColumn>
-          </DataGrid>
-        </Children>
-        <Tools/>
-      </Panel>
-    </CustomDropDown>
+</ClientEvent>
+          <Property name="caption">纭閫夋嫨</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">self.get(&quot;parent&quot;).hide();&#xD;
+view.get(&quot;#dialogDepotSelect&quot;).set(&quot;selection&quot;,null);</ClientEvent>
+          <Property name="caption">鍙栨秷鎿嶄綔</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <DataSet id="dsDepotSelect">
+          <Property name="dataType">[dtDepot]</Property>
+          <Property name="dataProvider">pledgeContractPR#getUnplacedDepotData</Property>
+          <Property name="userData">搴撳尯鍒楄〃涓嬫媺妗�</Property>
+          <Property name="loadMode">manual</Property>
+        </DataSet>
+        <DataGrid id="dialogDepotSelect">
+          <Property name="dataSet">dsDepotSelect</Property>
+          <Property name="selectionMode">multiRows</Property>
+          <RowSelectorColumn>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="width">50</Property>
+          </RowSelectorColumn>
+          <DataColumn>
+            <Property name="property">deptId</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="name">deptId</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+            <Property name="readOnly">true</Property>
+          </DataColumn>
+          <DataColumn name="id">
+            <Property name="property">id</Property>
+            <Property name="readOnly">true</Property>
+          </DataColumn>
+          <DataColumn name="depotType">
+            <Property name="property">depotType</Property>
+            <Property name="readOnly">true</Property>
+          </DataColumn>
+        </DataGrid>
+      </Children>
+      <Tools/>
+    </Dialog>
   </View>
 </ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContractPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContractPR.java
index 4f3f36a..fd55294 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContractPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PledgeContractPR.java
@@ -7,8 +7,11 @@
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.BaseResp;
 import com.fzzy.igds.data.IgdsBaseParam;
-import com.fzzy.igds.domain.InoutNoticeIn;
+import com.fzzy.igds.domain.Depot;
 import com.fzzy.igds.domain.PledgeContract;
+import com.fzzy.igds.domain.PledgeContractDepot;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.PledgeContractDepotService;
 import com.fzzy.igds.service.PledgeContractService;
 import com.fzzy.igds.utils.ContextUtil;
 import com.ruoyi.common.annotation.Log;
@@ -28,6 +31,13 @@
 
     @Resource
     private PledgeContractService pledgeContractService;
+
+    @Resource
+    private PledgeContractDepotService pledgeContractDepotService;
+
+
+    @Resource
+    private DepotService depotService;
 
     /**
      * pledgeContractPR#initAdd
@@ -73,6 +83,10 @@
     @Transactional
     @DataResolver
     public BaseResp saveUpdate(PledgeContract pledgeContract) {
+        List<PledgeContractDepot> depotData = pledgeContract.getDepotData();
+        if (depotData != null && !depotData.isEmpty()) {
+            pledgeContractDepotService.addDataByList(depotData);
+        }
         if (null == pledgeContract.getCreateTime()) {
             return pledgeContractService.addData(pledgeContract);
         } else {
@@ -83,17 +97,18 @@
 
     /**
      * 鍒犻櫎
+     * pledgeContractPR#delete
      *
      * @param pledgeContract
      * @return
      */
-    @Log( title = "璐ㄦ娂鍚堝悓", businessType = BusinessType.DELETE,bizType = BizTypeEnum.SUPERVISION)
+    @Log(title = "璐ㄦ娂鍚堝悓", businessType = BusinessType.DELETE, bizType = BizTypeEnum.SUPERVISION)
     @Expose
     public BaseResp delete(PledgeContract pledgeContract) {
         if (StringUtils.isNotEmpty(pledgeContract.getId())) return pledgeContractService.deleteData(pledgeContract);
         return BaseResp.success();
     }
-    
+
     /**
      * 璐ㄦ娂鐘舵��
      * ${dorado.getDataProvider("pledgeContractPR#status").getResult()}
@@ -102,9 +117,73 @@
      */
     @DataProvider
     public List<SysDictData> status() {
-    	List<SysDictData> result =  new ArrayList<>();
+        List<SysDictData> result = new ArrayList<>();
         result.add(new SysDictData("鏈В鎶�", Constant.YN_N));
         result.add(new SysDictData("宸茶В鎶�", Constant.YN_Y));
         return result;
     }
+
+    /**
+     * 鍒犻櫎璐ㄦ娂浠撳簱
+     * pledgeContractPR#deleteDepot
+     *
+     * @param pledgeContractDepot
+     * @return
+     */
+    @Log(title = "璐ㄦ娂鍚堝悓", businessType = BusinessType.DELETE, bizType = BizTypeEnum.SUPERVISION)
+    @Expose
+    public BaseResp deleteDepot(PledgeContractDepot pledgeContractDepot) {
+        if (StringUtils.isNotEmpty(pledgeContractDepot.getId()))
+            return pledgeContractDepotService.deleteData(pledgeContractDepot);
+        return BaseResp.success();
+    }
+
+
+    /**
+     * pledgeContractPR#listAllData
+     * 璐ㄦ娂浠撳簱鍒楄〃
+     */
+    @DataProvider
+    public List<PledgeContractDepot> listAllData(String PledgeId) {
+        IgdsBaseParam param = new IgdsBaseParam();
+        param.setCompanyId(ContextUtil.getCompanyId());
+        param.setParentId(PledgeId);
+        return pledgeContractDepotService.listAll(param);
+    }
+
+
+    /**
+     * pledgeContractPR#getUnplacedDepotData
+     *
+     * @return
+     */
+    @DataProvider
+    public List<Depot> getUnplacedDepotData(String parentId, String PledgeId) {
+        List<Depot> result = new ArrayList<>();
+        if (com.ruoyi.common.utils.StringUtils.isBlank(PledgeId) || com.ruoyi.common.utils.StringUtils.isBlank(parentId)) {
+            return result;
+        }
+        //鑾峰彇鏀跺偍鍏徃涓嬫墍鏈変粨搴�
+        List<Depot> data = depotService.getData(null, parentId, false);
+
+        //鑾峰彇宸查厤缃粨搴�
+        IgdsBaseParam param = new IgdsBaseParam();
+        param.setCompanyId(ContextUtil.getCompanyId());
+        param.setParentId(PledgeId);
+        List<PledgeContractDepot> pledgeContractDepots = pledgeContractDepotService.listAll(param);
+        //閬嶅巻鎵惧嚭鎵�鏈夋湭閰嶇疆浠撳簱
+        for (Depot depot : data) {
+            boolean flag = true;
+            for (PledgeContractDepot pledgeContractDepot : pledgeContractDepots) {
+                if (depot.getId().equals(pledgeContractDepot.getPledgeDepot())) {
+                    flag = false;
+                    break;
+                }
+            }
+            if (flag) {
+                result.add(depot);
+            }
+        }
+        return result;
+    }
 }
diff --git a/fzzy-igdss-view/src/main/java/models/core.model.xml b/fzzy-igdss-view/src/main/java/models/core.model.xml
index 890b565..f1e741b 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -1128,7 +1128,7 @@
         <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
         <Property name="valueProperty">kqmc</Property>
       </Property>
-      <Property name="required">true</Property>
+      <Property name="required">false</Property>
     </PropertyDef>
     <PropertyDef name="signTime">
       <Property name="dataType">Date</Property>
@@ -1170,6 +1170,55 @@
       <Property name="dataType">Date</Property>
       <Property name="label">鏇存柊鏃堕棿</Property>
     </PropertyDef>
+    <Reference name="depotData">
+      <Property name="parameter">$${this.id}</Property>
+      <Property name="dataProvider">pledgeContractPR#listAllData</Property>
+      <Property name="dataType">[dtPledgeContractDepot]</Property>
+    </Reference>
+  </DataType>
+  <DataType name="dtPledgeContractDepot">
+    <Property name="creationType">com.fzzy.igds.domain.PledgeContractDepot</Property>
+    <PropertyDef name="companyId">
+      <Property></Property>
+      <Property name="label">缁勭粐缂栫爜</Property>
+    </PropertyDef>
+    <PropertyDef name="createBy">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="createTime">
+      <Property name="dataType">Date</Property>
+    </PropertyDef>
+    <PropertyDef name="updateBy">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="updateTime">
+      <Property name="dataType">Date</Property>
+    </PropertyDef>
+    <PropertyDef name="id">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="pledgeId">
+      <Property></Property>
+      <Property name="label">璐ㄦ娂鍚堝悓Id</Property>
+    </PropertyDef>
+    <PropertyDef name="pledgeDept">
+      <Property></Property>
+      <Property name="label">璐ㄦ娂搴撳尯</Property>
+      <Property name="mapping">
+        <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
+        <Property name="keyProperty">id</Property>
+        <Property name="valueProperty">kqmc</Property>
+      </Property>
+    </PropertyDef>
+    <PropertyDef name="pledgeDepot">
+      <Property></Property>
+      <Property name="label">璐ㄦ娂浠撳簱</Property>
+      <Property name="mapping">
+        <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getData&quot;).getResult()}</Property>
+        <Property name="keyProperty">id</Property>
+        <Property name="valueProperty">name</Property>
+      </Property>
+    </PropertyDef>
   </DataType>
   <DataType name="dtSnapRecord">
     <Property name="creationType">com.fzzy.igds.domain.SnapRecord</Property>

--
Gitblit v1.9.3