From 4fa767640ea1aad094db7c1393d02895be7e8c8d Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期六, 02 九月 2023 17:11:43 +0800
Subject: [PATCH] 上海新增页面---交易合同中心,定化水检验

---
 src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2204PR.java |  201 ++++
 src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2203PR.java |  201 ++++
 src/main/java/com/fzzy/otherview/sh2023/ShApi2104.view.xml  |  487 +++++++++++
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2102.java   |    2 
 src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2103PR.java |    6 
 src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2104PR.java |  199 ++++
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2103.java   |    2 
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2203.java   |    4 
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1311.java   |    2 
 src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2102PR.java |    4 
 src/main/java/com/fzzy/otherview/sh2023/ShApi2204.view.xml  |  533 ++++++++++++
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1101.java   |    4 
 src/main/java/com/fzzy/otherview/sh2023/ShApi2203.view.xml  |  767 ++++++++++++++++++
 src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2104.java   |    2 
 14 files changed, 2,396 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/fzzy/otherview/sh2023/ShApi2104.view.xml b/src/main/java/com/fzzy/otherview/sh2023/ShApi2104.view.xml
index 360037f..4994015 100644
--- a/src/main/java/com/fzzy/otherview/sh2023/ShApi2104.view.xml
+++ b/src/main/java/com/fzzy/otherview/sh2023/ShApi2104.view.xml
@@ -3,9 +3,492 @@
   <Arguments/>
   <Context/>
   <Model>
-
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.push.sh2023.dto.SH2023Api2104</Property>
+      <PropertyDef name="bydh">
+        <Property/>
+        <Property name="label">椹宠繍鍗曞彿</Property>
+      </PropertyDef>
+      <PropertyDef name="kqdm">
+        <Property/>
+        <Property name="label">搴撳尯浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="jzrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">璁拌处鏃ユ湡</Property>
+      </PropertyDef>
+      <PropertyDef name="khmc">
+        <Property/>
+        <Property name="label">瀹㈡埛缂栧彿</Property>
+      </PropertyDef>
+      <PropertyDef name="psplan">
+        <Property/>
+        <Property name="label">鏉ョ伯棰勬姤鍙�/鎻愯揣鍗曞彿</Property>
+      </PropertyDef>
+      <PropertyDef name="hth">
+        <Property/>
+        <Property name="label">鍚堝悓鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="cch">
+        <Property/>
+        <Property name="label">杞﹁埞鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="lspzdm">
+        <Property/>
+        <Property name="label">鍝佺澶х被</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSPZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lsxzdm">
+        <Property/>
+        <Property name="label">绮鎬ц川浠g爜</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSXZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lldm">
+        <Property/>
+        <Property name="label">鏉ョ伯浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="jz">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍑�閲�</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property/>
+        <Property name="label">鏁版嵁鐘舵��</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="zhgxsh">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏈�鍚庢洿鏂版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="pch">
+        <Property/>
+        <Property name="label">鎵规鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="bjw">
+        <Property></Property>
+        <Property name="label">鏍囪浣�</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">key</Property>
+          <Property name="valueProperty">value</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="value">榛勬郸鍖�</Property>
+                <Property name="key">huangpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">寰愭眹鍖�</Property>
+                <Property name="key">xuhui</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闀垮畞鍖�</Property>
+                <Property name="key">changning</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闈欏畨鍖�</Property>
+                <Property name="key">jingan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏅檧鍖�</Property>
+                <Property name="key">putuo</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">铏瑰彛鍖�</Property>
+                <Property name="key">hongkou</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏉ㄦ郸鍖�</Property>
+                <Property name="key">yangpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闂佃鍖�</Property>
+                <Property name="key">minhang</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">瀹濆北鍖�</Property>
+                <Property name="key">baoshan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鍢夊畾鍖�</Property>
+                <Property name="key">jiading</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">娴︿笢鏂板尯</Property>
+                <Property name="key">pudong</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">閲戝北鍖�</Property>
+                <Property name="key">jinshan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏉炬睙鍖�</Property>
+                <Property name="key">songjiang</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闈掓郸鍖�</Property>
+                <Property name="key">qingpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">濂夎搐鍖�</Property>
+                <Property name="key">fengxian</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">宕囨槑鍖�</Property>
+                <Property name="key">chongming</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtParam">
+      <Property name="creationType">com.fzzy.api.data.ApiParam</Property>
+      <PropertyDef name="kqdm">
+        <Property></Property>
+        <Property name="label">鎵�灞炲簱鍖�</Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property></Property>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
   </Model>
   <View layout="regionPadding:10">
-
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">sHApi2104PR#listData</Property>
+      <Property name="pageSize">15</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <ClientEvent name="onReady">self.insert();</ClientEvent>
+      <Property name="dataType">dtParam</Property>
+    </DataSet>
+    <ToolBar>
+      <ToolBarLabel>
+        <Property name="text">宸ュ叿鏍忥細</Property>
+        <Property name="style">
+          <Property name="font-weight">bold</Property>
+        </Property>
+      </ToolBarLabel>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var query = view.get(&quot;#dsQuery&quot;).getData();&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,query).flushAsync();</ClientEvent>
+        <Property name="caption">鏌ヨ</Property>
+        <Property name="iconClass">fa fa-search</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnAdd">
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnUpdate">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}</ClientEvent>
+        <Property name="caption">淇敼</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-warm</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDelUpdate&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.set(&quot;czbz&quot;,&quot;d&quot;)&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鏍囪鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnDel">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.remove();&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鐩存帴鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var select = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select &amp;&amp; select.length > 0){&#xD;
+	view.get(&quot;#ajaxPush&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+		view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+          $notify(result);&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫変笂鎶ユ暟鎹紒&quot;);&#xD;
+}&#xD;
+</ClientEvent>
+        <Property name="caption">鎵嬪姩涓婁紶</Property>
+        <Property name="iconClass">fa fa-hand-o-up</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <Fill/>
+      <ToolBarButton>
+        <Property name="caption">涓婁紶璁板綍</Property>
+        <Property name="iconClass">fa fa-bars</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+    </ToolBar>
+    <AutoForm>
+      <Property name="dataSet">dsQuery</Property>
+      <Property name="cols">*,*,*,*</Property>
+      <Property name="labelAlign">right</Property>
+      <Property name="labelSeparator">锛�</Property>
+      <Property name="labelWidth">90</Property>
+      <AutoFormElement>
+        <Property name="name">kqdm</Property>
+        <Property name="property">kqdm</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">start</Property>
+        <Property name="property">start</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">end</Property>
+        <Property name="property">end</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">czbz</Property>
+        <Property name="property">czbz</Property>
+        <Property name="trigger">autoMappingDropDown2</Property>
+        <Editor/>
+      </AutoFormElement>
+    </AutoForm>
+    <DataGrid id="dgMain">
+      <ClientEvent name="onDataRowDoubleClick">view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+      <Property name="dataSet">dsMain</Property>
+      <Property name="selectionMode">multiRows</Property>
+      <Property name="readOnly">true</Property>
+      <RowNumColumn/>
+      <RowSelectorColumn>
+        <Property name="caption">涓婁紶</Property>
+      </RowSelectorColumn>
+      <DataColumn name="bydh">
+        <Property name="property">bydh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="kqdm">
+        <Property name="property">kqdm</Property>
+        <Property name="align">center</Property>
+        <Property name="width">200</Property>
+      </DataColumn>
+      <DataColumn name="lspzdm">
+        <Property name="property">lspzdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="lsxzdm">
+        <Property name="property">lsxzdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="lldm">
+        <Property name="property">lldm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="jz">
+        <Property name="property">jz</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="czbz">
+        <Property name="property">czbz</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="zhgxsh">
+        <Property name="property">zhgxsh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="bjw">
+        <Property name="property">bjw</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+    </DataGrid>
+    <ToolBar layoutConstraint="bottom">
+      <Fill/>
+      <DataPilot>
+        <Property name="itemCodes">pageSize,pages</Property>
+        <Property name="dataSet">dsMain</Property>
+      </DataPilot>
+    </ToolBar>
+    <Dialog id="dialogMain">
+      <Property name="width">80%</Property>
+      <Property name="caption">鍒颁粨淇℃伅</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Property name="closeable">false</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#updateSave&quot;).execute(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</ClientEvent>
+          <Property name="caption">淇濆瓨淇敼</Property>
+          <Property name="iconClass">fa fa-check</Property>
+          <Property name="exClassName">toolbar-button</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+self.get(&quot;parent&quot;).hide();&#xD;
+if(cur) cur.cancel();</ClientEvent>
+          <Property name="caption">鍙栨秷淇敼</Property>
+          <Property name="iconClass">fa fa-times</Property>
+          <Property name="exClassName">toolbar-button-warn</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <AutoForm>
+          <Property name="dataSet">dsMain</Property>
+          <Property name="cols">*,*,*</Property>
+          <Property name="labelAlign">left</Property>
+          <Property name="labelSeparator">锛�</Property>
+          <Property name="labelPosition">top</Property>
+          <AutoFormElement>
+            <Property name="name">bydh</Property>
+            <Property name="property">bydh</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">kqdm</Property>
+            <Property name="property">kqdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jzrq</Property>
+            <Property name="property">jzrq</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">khmc</Property>
+            <Property name="property">khmc</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">psplan</Property>
+            <Property name="property">psplan</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">hth</Property>
+            <Property name="property">hth</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">cch</Property>
+            <Property name="property">cch</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lspzdm</Property>
+            <Property name="property">lspzdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lsxzdm</Property>
+            <Property name="property">lsxzdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lldm</Property>
+            <Property name="property">lldm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jz</Property>
+            <Property name="property">jz</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">czbz</Property>
+            <Property name="property">czbz</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">zhgxsh</Property>
+            <Property name="property">zhgxsh</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">pch</Property>
+            <Property name="property">pch</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bjw</Property>
+            <Property name="property">bjw</Property>
+            <Editor/>
+          </AutoFormElement>
+        </AutoForm>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">sHApi2104PR#saveData</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxPush">
+      <Property name="service">sHApi2104PR#pushData</Property>
+      <Property name="confirmMessage">纭畾瑕佷笂鎶ヤ箞锛�</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">sHApi2104PR#delData</Property>
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDelUpdate">
+      <Property name="service">sHApi2104PR#delUpdate</Property>
+      <Property name="confirmMessage">纭畾瑕佸皢鏁版嵁鏍囪涓哄垹闄や箞锛�</Property>
+    </AjaxAction>
   </View>
 </ViewConfig>
diff --git a/src/main/java/com/fzzy/otherview/sh2023/ShApi2203.view.xml b/src/main/java/com/fzzy/otherview/sh2023/ShApi2203.view.xml
index 360037f..e7fdf25 100644
--- a/src/main/java/com/fzzy/otherview/sh2023/ShApi2203.view.xml
+++ b/src/main/java/com/fzzy/otherview/sh2023/ShApi2203.view.xml
@@ -3,9 +3,772 @@
   <Arguments/>
   <Context/>
   <Model>
-
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.push.sh2023.dto.SH2023Api2203</Property>
+      <PropertyDef name="htbh">
+        <Property/>
+        <Property name="label">鍚堝悓鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="bdh">
+        <Property/>
+        <Property name="label">鏍囩殑鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="cjrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴愪氦鏃ユ湡</Property>
+      </PropertyDef>
+      <PropertyDef name="jyzt">
+        <Property/>
+        <Property name="label">浜ゆ槗鐘舵��</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">key</Property>
+          <Property name="valueProperty">value</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="key"/>
+                <Property name="value"/>
+              </Entity>
+              <Entity>
+                <Property name="key">00</Property>
+                <Property name="value">宸茬粓姝�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">01</Property>
+                <Property name="value">鏂板埗</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">02</Property>
+                <Property name="value">宸茬绾�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">03</Property>
+                <Property name="value">宸插畬缁�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">04</Property>
+                <Property name="value">閮ㄥ垎缁堟</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">05</Property>
+                <Property name="value">杩涜涓�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">06</Property>
+                <Property name="value">宸查獙鏀�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">07</Property>
+                <Property name="value">鍙綊妗�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">08</Property>
+                <Property name="value">宸插綊妗�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">09</Property>
+                <Property name="value">鍐荤粨淇濊瘉閲�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">10</Property>
+                <Property name="value">杩濈害</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">11</Property>
+                <Property name="value">娴佹媿</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lsxz">
+        <Property/>
+        <Property name="label">绮鎬ц川</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSXZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lspzdl">
+        <Property/>
+        <Property name="label">绮鍝佺澶х被</Property>
+      </PropertyDef>
+      <PropertyDef name="lspzmx">
+        <Property/>
+        <Property name="label">绮鍝佺鏄庣粏</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSPZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="scnf">
+        <Property/>
+        <Property name="label">鐢熶骇骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="kd">
+        <Property/>
+        <Property name="label">搴撶偣</Property>
+      </PropertyDef>
+      <PropertyDef name="bmfqc">
+        <Property/>
+        <Property name="label">涔版柟鍏ㄧО</Property>
+      </PropertyDef>
+      <PropertyDef name="smfqc">
+        <Property/>
+        <Property name="label">鍗栨柟鍏ㄧО</Property>
+      </PropertyDef>
+      <PropertyDef name="cjsl">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎴愪氦鏁伴噺</Property>
+        <Property name="displayFormat">#0.00鍚�</Property>
+      </PropertyDef>
+      <PropertyDef name="cjje">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎴愪氦閲戦</Property>
+        <Property name="displayFormat">#0.00鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="qpj">
+        <Property name="dataType">Double</Property>
+        <Property name="label">璧锋媿浠�</Property>
+        <Property name="displayFormat">#0.00鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="cjj">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎴愪氦浠�</Property>
+        <Property name="displayFormat">#0.00鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="yjfd">
+        <Property name="dataType">Double</Property>
+        <Property name="label">婧环骞呭害</Property>
+        <Property name="displayFormat">#0.00</Property>
+      </PropertyDef>
+      <PropertyDef name="bmfsxf">
+        <Property name="dataType">Double</Property>
+        <Property name="label">涔版柟鎵嬬画璐�</Property>
+        <Property name="displayFormat">#0.00鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="smfsxf">
+        <Property/>
+        <Property name="label">鍗栨柟鎵嬬画璐�</Property>
+        <Property name="dataType">Double</Property>
+        <Property name="displayFormat">#0.00鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="lx">
+        <Property/>
+        <Property name="label">閲囪喘/閿�鍞被鍨�</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">key</Property>
+          <Property name="valueProperty">value</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="key">0</Property>
+                <Property name="value">閲囪喘璁㈠崟</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">1</Property>
+                <Property name="value">閿�鍞鍗�</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="bmfxzqh">
+        <Property/>
+        <Property name="label">涔版柟琛屾斂鍖哄垝</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;gbAreaPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="smfxzqh">
+        <Property/>
+        <Property name="label">鍗栨柟琛屾斂鍖哄垝</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;gbAreaPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="hwmc">
+        <Property/>
+        <Property name="label">璐т綅鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="jyxzqh">
+        <Property/>
+        <Property name="label">浜ゆ槗琛屾斂鍖哄垝</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;gbAreaPR#listAll&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property/>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="zhgxsj">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏈�鍚庢洿鏂版椂闂�</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtParam">
+      <Property name="creationType">com.fzzy.api.data.ApiParam</Property>
+      <PropertyDef name="kqdm">
+        <Property></Property>
+        <Property name="label">鎵�灞炲簱鍖�</Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property></Property>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtGBArea">
+      <Property name="creationType">com.fzzy.api.entity.GbArea</Property>
+      <PropertyDef name="code">
+        <Property></Property>
+        <Property name="label">鎺ュ彛缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="parentCode">
+        <Property></Property>
+        <Property name="label">鐖剁紪鐮�</Property>
+      </PropertyDef>
+      <PropertyDef name="disabledTag">
+        <Property></Property>
+        <Property name="label">绂佺敤</Property>
+      </PropertyDef>
+      <PropertyDef name="simple">
+        <Property></Property>
+        <Property name="label">鏄惁榛樿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+    </DataType>
   </Model>
   <View layout="regionPadding:10">
-
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">sHApi2203PR#listData</Property>
+      <Property name="pageSize">15</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <ClientEvent name="onReady">self.insert();</ClientEvent>
+      <Property name="dataType">dtParam</Property>
+    </DataSet>
+    <ToolBar>
+      <ToolBarLabel>
+        <Property name="text">宸ュ叿鏍忥細</Property>
+        <Property name="style">
+          <Property name="font-weight">bold</Property>
+        </Property>
+      </ToolBarLabel>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var query = view.get(&quot;#dsQuery&quot;).getData();&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,query).flushAsync();</ClientEvent>
+        <Property name="caption">鏌ヨ</Property>
+        <Property name="iconClass">fa fa-search</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnAdd">
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnUpdate">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}</ClientEvent>
+        <Property name="caption">淇敼</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-warm</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDelUpdate&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.set(&quot;czbz&quot;,&quot;d&quot;)&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鏍囪鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnDel">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.remove();&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鐩存帴鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var select = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select &amp;&amp; select.length > 0){&#xD;
+	view.get(&quot;#ajaxPush&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+		view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+          $notify(result);&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫変笂鎶ユ暟鎹紒&quot;);&#xD;
+}&#xD;
+</ClientEvent>
+        <Property name="caption">鎵嬪姩涓婁紶</Property>
+        <Property name="iconClass">fa fa-hand-o-up</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <Fill/>
+      <ToolBarButton>
+        <Property name="caption">涓婁紶璁板綍</Property>
+        <Property name="iconClass">fa fa-bars</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+    </ToolBar>
+    <AutoForm>
+      <Property name="dataSet">dsQuery</Property>
+      <Property name="cols">*,*,*,*</Property>
+      <Property name="labelAlign">right</Property>
+      <Property name="labelSeparator">锛�</Property>
+      <Property name="labelWidth">90</Property>
+      <AutoFormElement>
+        <Property name="name">kqdm</Property>
+        <Property name="property">kqdm</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">start</Property>
+        <Property name="property">start</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">end</Property>
+        <Property name="property">end</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">czbz</Property>
+        <Property name="property">czbz</Property>
+        <Property name="trigger">autoMappingDropDown2</Property>
+        <Editor/>
+      </AutoFormElement>
+    </AutoForm>
+    <DataGrid id="dgMain">
+      <ClientEvent name="onDataRowDoubleClick">view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+      <Property name="dataSet">dsMain</Property>
+      <Property name="selectionMode">multiRows</Property>
+      <Property name="readOnly">true</Property>
+      <RowNumColumn/>
+      <RowSelectorColumn>
+        <Property name="caption">涓婁紶</Property>
+      </RowSelectorColumn>
+      <DataColumn name="htbh">
+        <Property name="property">htbh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="jyzt">
+        <Property name="property">jyzt</Property>
+      </DataColumn>
+      <DataColumn name="lspzmx">
+        <Property name="property">lspzmx</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="scnf">
+        <Property name="property">scnf</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="jyxzqh">
+        <Property name="property">jyxzqh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="czbz">
+        <Property name="property">czbz</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="zhgxsj">
+        <Property name="property">zhgxsj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+    </DataGrid>
+    <ToolBar layoutConstraint="bottom">
+      <Fill/>
+      <DataPilot>
+        <Property name="itemCodes">pageSize,pages</Property>
+        <Property name="dataSet">dsMain</Property>
+      </DataPilot>
+    </ToolBar>
+    <Dialog id="dialogMain">
+      <Property name="width">80%</Property>
+      <Property name="caption">鍒颁粨淇℃伅</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Property name="closeable">false</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#updateSave&quot;).execute(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</ClientEvent>
+          <Property name="caption">淇濆瓨淇敼</Property>
+          <Property name="iconClass">fa fa-check</Property>
+          <Property name="exClassName">toolbar-button</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+self.get(&quot;parent&quot;).hide();&#xD;
+if(cur) cur.cancel();</ClientEvent>
+          <Property name="caption">鍙栨秷淇敼</Property>
+          <Property name="iconClass">fa fa-times</Property>
+          <Property name="exClassName">toolbar-button-warn</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <AutoForm>
+          <Property name="dataSet">dsMain</Property>
+          <Property name="cols">*,*,*</Property>
+          <Property name="labelAlign">left</Property>
+          <Property name="labelSeparator">锛�</Property>
+          <Property name="labelPosition">left</Property>
+          <Property name="labelWidth">120</Property>
+          <AutoFormElement>
+            <Property name="name">htbh</Property>
+            <Property name="property">htbh</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bdh</Property>
+            <Property name="property">bdh</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">cjrq</Property>
+            <Property name="property">cjrq</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jyzt</Property>
+            <Property name="property">jyzt</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lsxz</Property>
+            <Property name="property">lsxz</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lspzdl</Property>
+            <Property name="property">lspzdl</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lspzmx</Property>
+            <Property name="property">lspzmx</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">scnf</Property>
+            <Property name="property">scnf</Property>
+            <Property name="trigger">defaultYearDropDown</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">kd</Property>
+            <Property name="property">kd</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bmfqc</Property>
+            <Property name="property">bmfqc</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">smfqc</Property>
+            <Property name="property">smfqc</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">cjsl</Property>
+            <Property name="property">cjsl</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">cjje</Property>
+            <Property name="property">cjje</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">qpj</Property>
+            <Property name="property">qpj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">cjj</Property>
+            <Property name="property">cjj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">yjfd</Property>
+            <Property name="property">yjfd</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bmfsxf</Property>
+            <Property name="property">bmfsxf</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">smfsxf</Property>
+            <Property name="property">smfsxf</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lx</Property>
+            <Property name="property">lx</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bmfxzqh</Property>
+            <Property name="property">bmfxzqh</Property>
+            <Property name="trigger">cddGbArea</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">smfxzqh</Property>
+            <Property name="property">smfxzqh</Property>
+            <Property name="trigger">cddGbArea1</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">hwmc</Property>
+            <Property name="property">hwmc</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jyxzqh</Property>
+            <Property name="property">jyxzqh</Property>
+            <Property name="trigger">cddGbArea2</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">czbz</Property>
+            <Property name="property">czbz</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">zhgxsj</Property>
+            <Property name="property">zhgxsj</Property>
+            <Editor/>
+          </AutoFormElement>
+        </AutoForm>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">sHApi2203PR#saveData</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxPush">
+      <Property name="service">sHApi2203PR#pushData</Property>
+      <Property name="confirmMessage">纭畾瑕佷笂鎶ヤ箞锛�</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">sHApi2203PR#delData</Property>
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDelUpdate">
+      <Property name="service">sHApi2203PR#delUpdate</Property>
+      <Property name="confirmMessage">纭畾瑕佸皢鏁版嵁鏍囪涓哄垹闄や箞锛�</Property>
+    </AjaxAction>
+    <CustomDropDown id="cddGbArea">
+      <Property name="assignmentMap">bmfxzqh=code</Property>
+      <Property name="height">500</Property>
+      <Property name="minHeight">500</Property>
+      <Property name="maxHeight">500</Property>
+      <Property name="width">400</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsGBArea">
+          <Property name="dataProvider">gbAreaPR#findByCode</Property>
+          <Property name="dataType">[dtGBArea]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key2">
+            <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
+view.get(&quot;#dsGBArea&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="caption">鏌ヨ</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsGBArea.data:#&quot;);&#xD;
+if (data) {&#xD;
+	view.get(&quot;#cddGbArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="caption">纭畾</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsGBArea.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#cddGbArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsGBArea</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="cddGbArea1">
+      <Property name="assignmentMap">smfxzqh=code</Property>
+      <Property name="height">500</Property>
+      <Property name="minHeight">500</Property>
+      <Property name="maxHeight">500</Property>
+      <Property name="width">400</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsGBArea1">
+          <Property name="dataProvider">gbAreaPR#findByCode</Property>
+          <Property name="dataType">[dtGBArea]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key3">
+            <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key3.value&quot;);&#xD;
+view.get(&quot;#dsGBArea1&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="caption">鏌ヨ</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsGBArea1.data:#&quot;);&#xD;
+if (data) {&#xD;
+	view.get(&quot;#cddGbArea1&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="caption">纭畾</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsGBArea1.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#cddGbArea1&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsGBArea1</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="cddGbArea2">
+      <Property name="assignmentMap">jyxzqh=code</Property>
+      <Property name="height">500</Property>
+      <Property name="minHeight">500</Property>
+      <Property name="maxHeight">500</Property>
+      <Property name="width">400</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsGBArea2">
+          <Property name="dataProvider">gbAreaPR#findByCode</Property>
+          <Property name="dataType">[dtGBArea]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key4">
+            <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key4.value&quot;);&#xD;
+view.get(&quot;#dsGBArea2&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="caption">鏌ヨ</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsGBArea2.data:#&quot;);&#xD;
+if (data) {&#xD;
+	view.get(&quot;#cddGbArea2&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="caption">纭畾</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsGBArea2.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#cddGbArea2&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsGBArea2</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
   </View>
 </ViewConfig>
diff --git a/src/main/java/com/fzzy/otherview/sh2023/ShApi2204.view.xml b/src/main/java/com/fzzy/otherview/sh2023/ShApi2204.view.xml
index 360037f..fee85fa 100644
--- a/src/main/java/com/fzzy/otherview/sh2023/ShApi2204.view.xml
+++ b/src/main/java/com/fzzy/otherview/sh2023/ShApi2204.view.xml
@@ -3,9 +3,538 @@
   <Arguments/>
   <Context/>
   <Model>
-
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.push.sh2023.dto.SH2023Api2204</Property>
+      <PropertyDef name="zjbgdh">
+        <Property/>
+        <Property name="label">璐ㄦ鎶ュ憡鍗曞彿</Property>
+      </PropertyDef>
+      <PropertyDef name="hwdm">
+        <Property/>
+        <Property name="label">璐т綅浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="lsxzdm">
+        <Property/>
+        <Property name="label">绮鎬ц川浠g爜</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSXZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lspzdm">
+        <Property/>
+        <Property name="label">绮鍝佺浠g爜</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSPZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="lsdjdm">
+        <Property/>
+        <Property name="label">绮绛夌骇浠g爜</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;LSDJ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="jysj">
+        <Property name="dataType">Date</Property>
+        <Property name="label">妫�楠屾椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="jyr">
+        <Property/>
+        <Property name="label">妫�楠屼汉</Property>
+      </PropertyDef>
+      <PropertyDef name="jyyj">
+        <Property/>
+        <Property name="label">妫�楠屼緷鎹�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;JYYJ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="sf">
+        <Property name="dataType">Double</Property>
+        <Property name="label">姘村垎</Property>
+        <Property name="displayFormat">#0.00</Property>
+      </PropertyDef>
+      <PropertyDef name="rksf">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍏ュ簱姘村垎</Property>
+        <Property name="displayFormat">#0.00</Property>
+      </PropertyDef>
+      <PropertyDef name="qysj">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎵︽牱鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="lldm">
+        <Property/>
+        <Property name="label">鏉ョ伯浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="bz">
+        <Property/>
+        <Property name="label">澶囨敞</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property/>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="zhgxsj">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏈�鍚庢洿鏂版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="bjw">
+        <Property></Property>
+        <Property name="label">鏍囪浣�</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">key</Property>
+          <Property name="valueProperty">value</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="value">榛勬郸鍖�</Property>
+                <Property name="key">huangpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">寰愭眹鍖�</Property>
+                <Property name="key">xuhui</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闀垮畞鍖�</Property>
+                <Property name="key">changning</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闈欏畨鍖�</Property>
+                <Property name="key">jingan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏅檧鍖�</Property>
+                <Property name="key">putuo</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">铏瑰彛鍖�</Property>
+                <Property name="key">hongkou</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏉ㄦ郸鍖�</Property>
+                <Property name="key">yangpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闂佃鍖�</Property>
+                <Property name="key">minhang</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">瀹濆北鍖�</Property>
+                <Property name="key">baoshan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鍢夊畾鍖�</Property>
+                <Property name="key">jiading</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">娴︿笢鏂板尯</Property>
+                <Property name="key">pudong</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">閲戝北鍖�</Property>
+                <Property name="key">jinshan</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">鏉炬睙鍖�</Property>
+                <Property name="key">songjiang</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">闈掓郸鍖�</Property>
+                <Property name="key">qingpu</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">濂夎搐鍖�</Property>
+                <Property name="key">fengxian</Property>
+              </Entity>
+              <Entity>
+                <Property name="value">宕囨槑鍖�</Property>
+                <Property name="key">chongming</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="pch">
+        <Property/>
+        <Property name="label">鎵规鍙�</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtParam">
+      <Property name="creationType">com.fzzy.api.data.ApiParam</Property>
+      <PropertyDef name="kqdm">
+        <Property></Property>
+        <Property name="label">鎵�灞炲簱鍖�</Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property></Property>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
   </Model>
   <View layout="regionPadding:10">
-
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">sHApi2204PR#listData</Property>
+      <Property name="pageSize">15</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <ClientEvent name="onReady">self.insert();</ClientEvent>
+      <Property name="dataType">dtParam</Property>
+    </DataSet>
+    <ToolBar>
+      <ToolBarLabel>
+        <Property name="text">宸ュ叿鏍忥細</Property>
+        <Property name="style">
+          <Property name="font-weight">bold</Property>
+        </Property>
+      </ToolBarLabel>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var query = view.get(&quot;#dsQuery&quot;).getData();&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,query).flushAsync();</ClientEvent>
+        <Property name="caption">鏌ヨ</Property>
+        <Property name="iconClass">fa fa-search</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnAdd">
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnUpdate">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}</ClientEvent>
+        <Property name="caption">淇敼</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-warm</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDelUpdate&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.set(&quot;czbz&quot;,&quot;d&quot;)&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鏍囪鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <ToolBarButton id="btnDel">
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+	} else{&#xD;
+		cur.remove();&#xD;
+	}&#xD;
+});&#xD;
+</ClientEvent>
+        <Property name="caption">鐩存帴鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+        <Property name="hideMode">display</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var select = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select &amp;&amp; select.length > 0){&#xD;
+	view.get(&quot;#ajaxPush&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+		view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+          $notify(result);&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫変笂鎶ユ暟鎹紒&quot;);&#xD;
+}&#xD;
+</ClientEvent>
+        <Property name="caption">鎵嬪姩涓婁紶</Property>
+        <Property name="iconClass">fa fa-hand-o-up</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <Fill/>
+      <ToolBarButton>
+        <Property name="caption">涓婁紶璁板綍</Property>
+        <Property name="iconClass">fa fa-bars</Property>
+        <Property name="exClassName">toolbar-button</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+    </ToolBar>
+    <AutoForm>
+      <Property name="dataSet">dsQuery</Property>
+      <Property name="cols">*,*,*,*</Property>
+      <Property name="labelAlign">right</Property>
+      <Property name="labelSeparator">锛�</Property>
+      <Property name="labelWidth">90</Property>
+      <AutoFormElement>
+        <Property name="name">kqdm</Property>
+        <Property name="property">kqdm</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">start</Property>
+        <Property name="property">start</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">end</Property>
+        <Property name="property">end</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">czbz</Property>
+        <Property name="property">czbz</Property>
+        <Property name="trigger">autoMappingDropDown2</Property>
+        <Editor/>
+      </AutoFormElement>
+    </AutoForm>
+    <DataGrid id="dgMain">
+      <ClientEvent name="onDataRowDoubleClick">view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+      <Property name="dataSet">dsMain</Property>
+      <Property name="selectionMode">multiRows</Property>
+      <Property name="readOnly">true</Property>
+      <RowNumColumn/>
+      <RowSelectorColumn>
+        <Property name="caption">涓婁紶</Property>
+      </RowSelectorColumn>
+      <DataColumn name="zjbgdh">
+        <Property name="property">zjbgdh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="hwdm">
+        <Property name="property">hwdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="lsxzdm">
+        <Property name="property">lsxzdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="lspzdm">
+        <Property name="property">lspzdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="lsdjdm">
+        <Property name="property">lsdjdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="jysj">
+        <Property name="property">jysj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="jyyj">
+        <Property name="property">jyyj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="sf">
+        <Property name="property">sf</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="rksf">
+        <Property name="property">rksf</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="qysj">
+        <Property name="property">qysj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="czbz">
+        <Property name="property">czbz</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="zhgxsj">
+        <Property name="property">zhgxsj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="bjw">
+        <Property name="property">bjw</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+    </DataGrid>
+    <ToolBar layoutConstraint="bottom">
+      <Fill/>
+      <DataPilot>
+        <Property name="itemCodes">pageSize,pages</Property>
+        <Property name="dataSet">dsMain</Property>
+      </DataPilot>
+    </ToolBar>
+    <Dialog id="dialogMain">
+      <Property name="width">80%</Property>
+      <Property name="caption">鍒颁粨淇℃伅</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Property name="closeable">false</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#updateSave&quot;).execute(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</ClientEvent>
+          <Property name="caption">淇濆瓨淇敼</Property>
+          <Property name="iconClass">fa fa-check</Property>
+          <Property name="exClassName">toolbar-button</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+self.get(&quot;parent&quot;).hide();&#xD;
+if(cur) cur.cancel();</ClientEvent>
+          <Property name="caption">鍙栨秷淇敼</Property>
+          <Property name="iconClass">fa fa-times</Property>
+          <Property name="exClassName">toolbar-button-warn</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <AutoForm>
+          <Property name="dataSet">dsMain</Property>
+          <Property name="cols">*,*,*</Property>
+          <Property name="labelAlign">left</Property>
+          <Property name="labelSeparator">锛�</Property>
+          <Property name="labelPosition">left</Property>
+          <Property name="labelWidth">120</Property>
+          <AutoFormElement>
+            <Property name="name">zjbgdh</Property>
+            <Property name="property">zjbgdh</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">hwdm</Property>
+            <Property name="property">hwdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lsxzdm</Property>
+            <Property name="property">lsxzdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lspzdm</Property>
+            <Property name="property">lspzdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lsdjdm</Property>
+            <Property name="property">lsdjdm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jysj</Property>
+            <Property name="property">jysj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jyr</Property>
+            <Property name="property">jyr</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">jyyj</Property>
+            <Property name="property">jyyj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">sf</Property>
+            <Property name="property">sf</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">rksf</Property>
+            <Property name="property">rksf</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">qysj</Property>
+            <Property name="property">qysj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">lldm</Property>
+            <Property name="property">lldm</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">czbz</Property>
+            <Property name="property">czbz</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">zhgxsj</Property>
+            <Property name="property">zhgxsj</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">bjw</Property>
+            <Property name="property">bjw</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">pch</Property>
+            <Property name="property">pch</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement layoutConstraint="colSpan:2">
+            <Property name="name">bz</Property>
+            <Property name="property">bz</Property>
+            <Editor/>
+          </AutoFormElement>
+        </AutoForm>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">sHApi2204PR#saveData</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxPush">
+      <Property name="service">sHApi2204PR#pushData</Property>
+      <Property name="confirmMessage">纭畾瑕佷笂鎶ヤ箞锛�</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="service">sHApi2204PR#delData</Property>
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDelUpdate">
+      <Property name="service">sHApi2204PR#delUpdate</Property>
+      <Property name="confirmMessage">纭畾瑕佸皢鏁版嵁鏍囪涓哄垹闄や箞锛�</Property>
+    </AjaxAction>
   </View>
 </ViewConfig>
diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2102PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2102PR.java
index 71e768a..6babe56 100644
--- a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2102PR.java
+++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2102PR.java
@@ -180,12 +180,12 @@
                 if (Constant.CZBZ_I.equals(data.getCzbz())) {
 
                     infoData = new ApiInfoData();
-                    infoData.setId(data.getBizId());
+                    infoData.setId(data.getDrdh());
                     infoData.setKqdm(data.getDrhwdm().substring(0, 21));
                     infoData.setInteType("21");
                     infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2102);
                     infoData.setUpdateTime(new Date());
-                    infoData.setDataId(data.getBizId());
+                    infoData.setDataId(data.getDrdh());
 
                     data.setCzbz(Constant.CZBZ_U);
                     infoData.setCzbz(Constant.CZBZ_U);
diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2103PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2103PR.java
index 6c90b64..ccb10da 100644
--- a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2103PR.java
+++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2103PR.java
@@ -186,12 +186,12 @@
             for (SH2023Api2103 data : items) {
 
                 infoData = new ApiInfoData();
-                infoData.setId(data.getBizId());
-                infoData.setKqdm(data.getKqdm());
+                infoData.setId(data.getHwdm());
+                infoData.setKqdm(data.getHwdm().substring(0, 21));
                 infoData.setInteType("21");
                 infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2103);
                 infoData.setUpdateTime(new Date());
-                infoData.setDataId(data.getBizId());
+                infoData.setDataId(data.getHwdm());
 
                 infoData.setCzbz(Constant.CZBZ_U);
                 infoData.setData(JSON.toJSONString(data));
diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2104PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2104PR.java
new file mode 100644
index 0000000..bb2b057
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2104PR.java
@@ -0,0 +1,199 @@
+package com.fzzy.otherview.sh2023.pr;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.api.Constant;
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.entity.ApiInfoData;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiPushManager;
+import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.ApiInfoDataRep;
+import com.fzzy.push.sh2023.SH2023Constant;
+import com.fzzy.push.sh2023.dto.SH2023Api2104;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 甯傚偍椹宠繍鍗曚俊鎭�
+ *
+ * @Author:YAN
+ */
+@Component(value = "sHApi2104PR")
+public class SHApi2104PR {
+
+    @Autowired
+    private ApiInfoDataRep apiInfoDataRep;
+    @Autowired
+    private ApiCommonService apiCommonService;
+    @Autowired
+    private ApiPushManager apiPushManager;
+
+    /**
+     * 鑾峰彇淇℃伅
+     * sHApi2104PR#listData
+     *
+     * @return
+     */
+    @DataProvider
+    public void listData(Page<SH2023Api2104> page, ApiParam param) {
+
+        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "updateTime");
+
+        Specification specification = new Specification<ApiInfoData>() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public Predicate toPredicate(Root<ApiInfoData> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
+                List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█
+
+                Predicate predicate = criteriaBuilder.equal(root.get("inteId"), SH2023Constant.SH_2023_API_CODE_2104);
+                predicates.add(predicate);
+
+                if (null != param) {
+                    if (StringUtils.isNotBlank(param.getKqdm())) {
+                        Predicate predicate1 = criteriaBuilder.equal(root.get("kqdm"), param.getKqdm());
+                        predicates.add(predicate1);
+                    }
+
+                    if (StringUtils.isNotBlank(param.getCzbz())) {
+                        Predicate predicate2 = criteriaBuilder.equal(root.get("czbz"), param.getCzbz());
+                        predicates.add(predicate2);
+                    }
+                    if (null != param.getStart()) {
+                        Predicate predicate3 = criteriaBuilder.greaterThan(root.get("updateTime"), ContextUtil.getCurZero(param.getStart()));
+                        predicates.add(predicate3);
+                    }
+
+                    if (null != param.getEnd()) {
+                        Predicate predicate4 = criteriaBuilder.lessThan(root.get("updateTime"), ContextUtil.getNextZero(param.getEnd()));
+                        predicates.add(predicate4);
+                    }
+                }
+                return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
+            }
+        };
+        org.springframework.data.domain.Page<ApiInfoData> japPage = apiInfoDataRep.findAll(specification, pageable);
+        page.setEntityCount((int) japPage.getTotalElements());
+        List<SH2023Api2104> list = new ArrayList<>();
+        SH2023Api2104 sh2023Api2104;
+        for (ApiInfoData infoData : japPage.getContent()) {
+            sh2023Api2104 = JSONObject.parseObject(infoData.getData(), SH2023Api2104.class);
+            list.add(sh2023Api2104);
+        }
+        page.setEntities(list);
+
+    }
+
+    /**
+     * sHApi2104PR#saveData
+     */
+    @DataResolver
+    public void saveData(SH2023Api2104 data) {
+
+        ApiInfoData infoData = new ApiInfoData();
+        infoData.setId(data.getBydh());
+        infoData.setKqdm(data.getKqdm());
+        infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2104);
+        infoData.setUpdateTime(new Date());
+        infoData.setDataId(data.getBydh());
+        infoData.setData(JSON.toJSONString(data));
+        infoData.setCzbz(data.getCzbz());
+        infoData.setRemarks("澶囨敞淇℃伅");
+
+        apiInfoDataRep.save(infoData);
+    }
+
+    /**
+     * sHApi2104PR#delData
+     */
+    @Expose
+    public void delData(SH2023Api2104 data) {
+        apiInfoDataRep.deleteById(data.getBydh());
+    }
+
+    /**
+     * sHApi2104PR#delUpdate
+     */
+    @Expose
+    public String delUpdate(SH2023Api2104 entity) {
+        if (null == entity) {
+            return "鏃犳暟鎹墽琛�";
+        }
+        entity.setCzbz(Constant.CZBZ_D);
+        apiInfoDataRep.updateStatus(entity.getBydh(), JSON.toJSONString(entity), Constant.CZBZ_D);
+        return null;
+    }
+
+    @Expose
+    public String pushData(List<SH2023Api2104> items) {
+        ResponseDto responseDto;
+        String result = "";
+
+        String kqdm = items.get(0).getKqdm();
+        ApiConfs apiConf = apiCommonService.getConf(kqdm);
+
+        if (null == apiConf) {
+            return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触";
+        }
+
+        //灏佽鍙傛暟
+        ApiParam param = new ApiParam(apiConf, "21", SH2023Constant.SH_2023_API_CODE_2104);
+
+        //鑾峰彇瀹炵幇鎺ュ彛
+        ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol());
+        if (null == apiService) {
+            return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触";
+        }
+
+        //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮�
+        responseDto = apiService.pushData(param, apiConf, items);
+        if (responseDto.getSuccess() == 0) {
+            //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
+
+            ApiInfoData infoData;
+            for (SH2023Api2104 data : items) {
+                if (Constant.CZBZ_I.equals(data.getCzbz())) {
+
+                    infoData = new ApiInfoData();
+                    infoData.setId(data.getBydh());
+                    infoData.setKqdm(data.getKqdm());
+                    infoData.setInteType("21");
+                    infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2104);
+                    infoData.setUpdateTime(new Date());
+                    infoData.setDataId(data.getBydh());
+
+                    data.setCzbz(Constant.CZBZ_U);
+                    infoData.setCzbz(Constant.CZBZ_U);
+                    infoData.setData(JSON.toJSONString(data));
+
+                    apiInfoDataRep.save(infoData);
+                }
+            }
+            result += responseDto.toString();
+        }
+        return result;
+    }
+
+}
diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2203PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2203PR.java
new file mode 100644
index 0000000..937c256
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2203PR.java
@@ -0,0 +1,201 @@
+package com.fzzy.otherview.sh2023.pr;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.api.Constant;
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.entity.ApiInfoData;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiPushManager;
+import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.ApiConfsRep;
+import com.fzzy.api.view.repository.ApiInfoDataRep;
+import com.fzzy.push.sh2023.SH2023Constant;
+import com.fzzy.push.sh2023.dto.SH2023Api2203;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 浜ゆ槗涓績鍚堝悓
+ *
+ * @Author:YAN
+ */
+@Component(value = "sHApi2203PR")
+public class SHApi2203PR {
+
+    @Autowired
+    private ApiInfoDataRep apiInfoDataRep;
+    @Autowired
+    private ApiCommonService apiCommonService;
+    @Autowired
+    private ApiPushManager apiPushManager;
+    @Autowired
+    private ApiConfsRep apiConfsRep;
+
+    /**
+     * 鑾峰彇淇℃伅
+     * sHApi2203PR#listData
+     *
+     * @return
+     */
+    @DataProvider
+    public void listData(Page<SH2023Api2203> page, ApiParam param) {
+
+        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "updateTime");
+
+        Specification specification = new Specification<ApiInfoData>() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public Predicate toPredicate(Root<ApiInfoData> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
+                List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█
+
+                Predicate predicate = criteriaBuilder.equal(root.get("inteId"), SH2023Constant.SH_2023_API_CODE_2203);
+                predicates.add(predicate);
+
+                if (null != param) {
+                    if (StringUtils.isNotBlank(param.getKqdm())) {
+                        Predicate predicate1 = criteriaBuilder.equal(root.get("kqdm"), param.getKqdm());
+                        predicates.add(predicate1);
+                    }
+
+                    if (StringUtils.isNotBlank(param.getCzbz())) {
+                        Predicate predicate2 = criteriaBuilder.equal(root.get("czbz"), param.getCzbz());
+                        predicates.add(predicate2);
+                    }
+                    if (null != param.getStart()) {
+                        Predicate predicate3 = criteriaBuilder.greaterThan(root.get("updateTime"), ContextUtil.getCurZero(param.getStart()));
+                        predicates.add(predicate3);
+                    }
+
+                    if (null != param.getEnd()) {
+                        Predicate predicate4 = criteriaBuilder.lessThan(root.get("updateTime"), ContextUtil.getNextZero(param.getEnd()));
+                        predicates.add(predicate4);
+                    }
+                }
+                return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
+            }
+        };
+        org.springframework.data.domain.Page<ApiInfoData> japPage = apiInfoDataRep.findAll(specification, pageable);
+        page.setEntityCount((int) japPage.getTotalElements());
+        List<SH2023Api2203> list = new ArrayList<>();
+        SH2023Api2203 sh2023Api2203;
+        for (ApiInfoData infoData : japPage.getContent()) {
+            sh2023Api2203 = JSONObject.parseObject(infoData.getData(), SH2023Api2203.class);
+            list.add(sh2023Api2203);
+        }
+        page.setEntities(list);
+
+    }
+
+    /**
+     * sHApi2203PR#saveData
+     */
+    @DataResolver
+    public void saveData(SH2023Api2203 data) {
+        List<ApiConfs> confsList = apiConfsRep.findAll();
+        ApiInfoData infoData = new ApiInfoData();
+        infoData.setId(data.getHtbh());
+        infoData.setKqdm(confsList.get(0).getKqdm());
+        infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2203);
+        infoData.setUpdateTime(new Date());
+        infoData.setDataId(data.getHtbh());
+        infoData.setData(JSON.toJSONString(data));
+        infoData.setCzbz(data.getCzbz());
+        infoData.setRemarks("澶囨敞淇℃伅");
+
+        apiInfoDataRep.save(infoData);
+    }
+
+    /**
+     * sHApi2203PR#delData
+     */
+    @Expose
+    public void delData(SH2023Api2203 data) {
+        apiInfoDataRep.deleteById(data.getHtbh());
+    }
+
+    /**
+     * sHApi2203PR#delUpdate
+     */
+    @Expose
+    public String delUpdate(SH2023Api2203 entity) {
+        if (null == entity) {
+            return "鏃犳暟鎹墽琛�";
+        }
+        entity.setCzbz(Constant.CZBZ_D);
+        apiInfoDataRep.updateStatus(entity.getHtbh(), JSON.toJSONString(entity), Constant.CZBZ_D);
+        return null;
+    }
+
+    @Expose
+    public String pushData(List<SH2023Api2203> items) {
+        ResponseDto responseDto;
+        String result = "";
+        List<ApiConfs> confsList = apiConfsRep.findAll();
+        String kqdm = confsList.get(0).getKqdm();
+        ApiConfs apiConf = apiCommonService.getConf(kqdm);
+
+        if (null == apiConf) {
+            return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触";
+        }
+
+        //灏佽鍙傛暟
+        ApiParam param = new ApiParam(apiConf, "22", SH2023Constant.SH_2023_API_CODE_2203);
+
+        //鑾峰彇瀹炵幇鎺ュ彛
+        ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol());
+        if (null == apiService) {
+            return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触";
+        }
+
+        //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮�
+        responseDto = apiService.pushData(param, apiConf, items);
+        if (responseDto.getSuccess() == 0) {
+            //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
+
+            ApiInfoData infoData;
+            for (SH2023Api2203 data : items) {
+                if (Constant.CZBZ_I.equals(data.getCzbz())) {
+
+                    infoData = new ApiInfoData();
+                    infoData.setId(data.getHtbh());
+                    infoData.setKqdm(data.getHtbh());
+                    infoData.setInteType("22");
+                    infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2203);
+                    infoData.setUpdateTime(new Date());
+                    infoData.setDataId(data.getHtbh());
+
+                    data.setCzbz(Constant.CZBZ_U);
+                    infoData.setCzbz(Constant.CZBZ_U);
+                    infoData.setData(JSON.toJSONString(data));
+
+                    apiInfoDataRep.save(infoData);
+                }
+            }
+            result += responseDto.toString();
+        }
+        return result;
+    }
+
+}
diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2204PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2204PR.java
new file mode 100644
index 0000000..3e309bb
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2204PR.java
@@ -0,0 +1,201 @@
+package com.fzzy.otherview.sh2023.pr;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.api.Constant;
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.entity.ApiInfoData;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiPushManager;
+import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.ApiInfoDataRep;
+import com.fzzy.push.sh2023.SH2023Constant;
+import com.fzzy.push.sh2023.dto.SH2023Api2204;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 瀹氬寲姘存楠�
+ *
+ * @Author:YAN
+ */
+@Component(value = "sHApi2204PR")
+public class SHApi2204PR {
+
+    @Autowired
+    private ApiInfoDataRep apiInfoDataRep;
+    @Autowired
+    private ApiCommonService apiCommonService;
+    @Autowired
+    private ApiPushManager apiPushManager;
+
+    /**
+     * 鑾峰彇淇℃伅
+     * sHApi2204PR#listData
+     *
+     * @return
+     */
+    @DataProvider
+    public void listData(Page<SH2023Api2204> page, ApiParam param) {
+
+        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "updateTime");
+
+        Specification specification = new Specification<ApiInfoData>() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public Predicate toPredicate(Root<ApiInfoData> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
+                List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█
+
+                Predicate predicate = criteriaBuilder.equal(root.get("inteId"), SH2023Constant.SH_2023_API_CODE_2204);
+                predicates.add(predicate);
+
+                if (null != param) {
+                    if (StringUtils.isNotBlank(param.getKqdm())) {
+                        Predicate predicate1 = criteriaBuilder.equal(root.get("kqdm"), param.getKqdm());
+                        predicates.add(predicate1);
+                    }
+
+                    if (StringUtils.isNotBlank(param.getCzbz())) {
+                        Predicate predicate2 = criteriaBuilder.equal(root.get("czbz"), param.getCzbz());
+                        predicates.add(predicate2);
+                    }
+                    if (null != param.getStart()) {
+                        Predicate predicate3 = criteriaBuilder.greaterThan(root.get("updateTime"), ContextUtil.getCurZero(param.getStart()));
+                        predicates.add(predicate3);
+                    }
+
+                    if (null != param.getEnd()) {
+                        Predicate predicate4 = criteriaBuilder.lessThan(root.get("updateTime"), ContextUtil.getNextZero(param.getEnd()));
+                        predicates.add(predicate4);
+                    }
+                }
+                return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
+            }
+        };
+        org.springframework.data.domain.Page<ApiInfoData> japPage = apiInfoDataRep.findAll(specification, pageable);
+        page.setEntityCount((int) japPage.getTotalElements());
+        List<SH2023Api2204> list = new ArrayList<>();
+        SH2023Api2204 sh2023Api2204;
+        for (ApiInfoData infoData : japPage.getContent()) {
+            sh2023Api2204 = JSONObject.parseObject(infoData.getData(), SH2023Api2204.class);
+            list.add(sh2023Api2204);
+        }
+        page.setEntities(list);
+
+    }
+
+    /**
+     * sHApi2204PR#saveData
+     */
+    @DataResolver
+    public void saveData(SH2023Api2204 data) {
+        if (null == data.getPch() || "" == data.getPch()) {
+            data.setPch(data.getHwdm() + DateFormatUtils.format(data.getJysj(), "yyyy"));
+        }
+        ApiInfoData infoData = new ApiInfoData();
+        infoData.setId(data.getZjbgdh());
+        infoData.setKqdm(data.getHwdm().substring(0, 21));
+        infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2204);
+        infoData.setUpdateTime(new Date());
+        infoData.setDataId(data.getZjbgdh());
+        infoData.setData(JSON.toJSONString(data));
+        infoData.setCzbz(data.getCzbz());
+        infoData.setRemarks("澶囨敞淇℃伅");
+
+        apiInfoDataRep.save(infoData);
+    }
+
+    /**
+     * sHApi2204PR#delData
+     */
+    @Expose
+    public void delData(SH2023Api2204 data) {
+        apiInfoDataRep.deleteById(data.getZjbgdh());
+    }
+
+    /**
+     * sHApi2204PR#delUpdate
+     */
+    @Expose
+    public String delUpdate(SH2023Api2204 entity) {
+        if (null == entity) {
+            return "鏃犳暟鎹墽琛�";
+        }
+        entity.setCzbz(Constant.CZBZ_D);
+        apiInfoDataRep.updateStatus(entity.getZjbgdh(), JSON.toJSONString(entity), Constant.CZBZ_D);
+        return null;
+    }
+
+    @Expose
+    public String pushData(List<SH2023Api2204> items) {
+        ResponseDto responseDto;
+        String result = "";
+
+        String kqdm = items.get(0).getHwdm().substring(0, 21);
+        ApiConfs apiConf = apiCommonService.getConf(kqdm);
+
+        if (null == apiConf) {
+            return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触";
+        }
+
+        //灏佽鍙傛暟
+        ApiParam param = new ApiParam(apiConf, "22", SH2023Constant.SH_2023_API_CODE_2204);
+
+        //鑾峰彇瀹炵幇鎺ュ彛
+        ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol());
+        if (null == apiService) {
+            return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触";
+        }
+
+        //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮�
+        responseDto = apiService.pushData(param, apiConf, items);
+        if (responseDto.getSuccess() == 0) {
+            //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
+
+            ApiInfoData infoData;
+            for (SH2023Api2204 data : items) {
+                if (Constant.CZBZ_I.equals(data.getCzbz())) {
+
+                    infoData = new ApiInfoData();
+                    infoData.setId(data.getZjbgdh());
+                    infoData.setKqdm(data.getHwdm().substring(0, 21));
+                    infoData.setInteType("22");
+                    infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2204);
+                    infoData.setUpdateTime(new Date());
+                    infoData.setDataId(data.getZjbgdh());
+
+                    data.setCzbz(Constant.CZBZ_U);
+                    infoData.setCzbz(Constant.CZBZ_U);
+                    infoData.setData(JSON.toJSONString(data));
+
+                    apiInfoDataRep.save(infoData);
+                }
+            }
+            result += responseDto.toString();
+        }
+        return result;
+    }
+
+}
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1101.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1101.java
index ab06114..5d797f3 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1101.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1101.java
@@ -22,10 +22,10 @@
  * @date 2022-09-02 14:18
  */
 @Data
-public class SH2023Api1101 extends ApiParent implements Serializable {
+public class SH2023Api1101 implements Serializable {
 
     private static final long serialVersionUID = 9157617424050247565L;
-    
+
     @PropertyDef(label = "鍗曚綅浠g爜")
     private String dwdm;
 
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1311.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1311.java
index 55a4912..eca0939 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1311.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api1311.java
@@ -16,7 +16,7 @@
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class SH2023Api1311 extends ApiParent implements Serializable {
+public class SH2023Api1311 implements Serializable {
 
     /**
      *
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2102.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2102.java
index f49d834..e7ddad4 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2102.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2102.java
@@ -14,7 +14,7 @@
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
-public class SH2023Api2102 extends ApiParent implements Serializable {
+public class SH2023Api2102 implements Serializable {
     /**
      *
      */
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2103.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2103.java
index 5cdfa70..e2fef72 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2103.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2103.java
@@ -17,7 +17,7 @@
  * @date 2023-08-21
  */
 @Data
-public class SH2023Api2103 extends ApiParent implements Serializable {
+public class SH2023Api2103 implements Serializable {
 
     private static final long serialVersionUID = 9157617424050247565L;
 
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2104.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2104.java
index 90e5dca..9d9b785 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2104.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2104.java
@@ -49,7 +49,7 @@
     private String lldm;
 
     @PropertyDef(label = "鍑�閲�")
-    private String jz;
+    private Double jz;
 
     @PropertyDef(label = "鏁版嵁鐘舵��")
     private String czbz;
diff --git a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2203.java b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2203.java
index 0809e07..7bd9f11 100644
--- a/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2203.java
+++ b/src/main/java/com/fzzy/push/sh2023/dto/SH2023Api2203.java
@@ -8,6 +8,8 @@
 import java.util.Date;
 
 /**
+ * 浜ゆ槗涓績鍚堝悓
+ *
  * @Author:YAN
  */
 @Data
@@ -70,7 +72,7 @@
     private Double bmfsxf;
 
     @PropertyDef(label = "鍗栨柟鎵嬬画璐�")
-    private String smfsxf;
+    private Double smfsxf;
 
     @PropertyDef(label = "閲囪喘/閿�鍞被鍨�")
     private String lx;

--
Gitblit v1.9.3