From 55316fe6c610c10086d9625e6d5ce38afac4cde8 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期四, 29 六月 2023 16:45:40 +0800
Subject: [PATCH] 出入库流程优化-入库详单优化

---
 igds-inout/src/main/java/com/ld/igds/m/view/ContractManage.view.xml                     |  865 +++++++++++++++++++++++++++++++++++++++
 igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/OpenApiInoutService.java |   75 +++
 igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java                             |    2 
 igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java                       |    3 
 igds-inout/src/main/java/com/ld/igds/models/InoutContract.java                          |  306 +++++++------
 igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/package-info.java        |    1 
 igds-inout/src/main/java/com/ld/igds/m/view/ContractManagePR.java                       |    3 
 igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/data/PlateReqVo.java     |   31 +
 8 files changed, 1,131 insertions(+), 155 deletions(-)

diff --git a/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java b/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
index 2538bf0..daa1f3b 100644
--- a/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
+++ b/igds-core/src/main/java/com/ld/igds/io/constant/ProtocolEnum.java
@@ -28,7 +28,8 @@
     TCP_LT_SAMPLE_V3("TCP_LT_SAMPLE_V3", "鎵︽牱鏈哄崗璁�"),
     TCP_FZZY_QUANTITY_V35("TCP_FZZY_QUANTITY_V35", "鏁伴噺妫�娴媀35"),
     TCP_BHZH_GRAIN_FM_V1("TCP_BHZH_GRAIN_FM_V1", "閭︽捣鏅鸿兘鏃犵嚎涓绘満鐗圴1"),
-    TCP_BHZH_GRAIN_V2("TCP_BHZH_GRAIN_V2", "閭︽捣鏅鸿兘鏈夌嚎鐗圴2");
+    TCP_BHZH_GRAIN_V2("TCP_BHZH_GRAIN_V2", "閭︽捣鏅鸿兘鏈夌嚎鐗圴2"),
+    FZZY_OPENAPI_HTTP("FZZY_OPENAPI_HTTP", "椋庢鑷磋繙API-HTTP鍗忚");
     private String code;
     private String msg;
 
diff --git a/igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java b/igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java
index 5049650..14259de 100644
--- a/igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java
+++ b/igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java
@@ -53,7 +53,7 @@
 	public static final String AUDIT_UNPASS = "UNPASS";
 
 	/**
-	 * 鍚堝悓绫诲瀷-杞崲鍚堝悓
+	 * 鍚堝悓绫诲瀷-浠e偍鍚堝悓
 	 */
 	public static final String CONTRACT_TYPE_3 = "3";
 	/**
diff --git a/igds-inout/src/main/java/com/ld/igds/m/view/ContractManage.view.xml b/igds-inout/src/main/java/com/ld/igds/m/view/ContractManage.view.xml
new file mode 100644
index 0000000..ca7db91
--- /dev/null
+++ b/igds-inout/src/main/java/com/ld/igds/m/view/ContractManage.view.xml
@@ -0,0 +1,865 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtParam">
+      <PropertyDef name="year">
+        <Property></Property>
+        <Property name="label">鍚堝悓骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#loadParents&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鍚堝悓鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="customerId">
+        <Property></Property>
+        <Property name="label">瀹㈡埛鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="customerName">
+        <Property></Property>
+        <Property name="label">瀹㈡埛鍚嶇О</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtMain">
+      <Property name="creationType">com.ld.igds.models.InoutContract</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">ID_</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">搴撶偣</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#loadParents&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="planId">
+        <Property></Property>
+        <Property name="label">鎵�灞炶鍒�</Property>
+      </PropertyDef>
+      <PropertyDef name="planName">
+        <Property></Property>
+        <Property name="label">鎵�灞炶鍒�</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property></Property>
+        <Property name="label">鍚堝悓绫诲瀷</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;contractManagePR#triggerContractType&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鍚堝悓鍚嶇О</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="year">
+        <Property></Property>
+        <Property name="label">骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="customerId">
+        <Property></Property>
+        <Property name="label">瀹㈡埛缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="customerName">
+        <Property></Property>
+        <Property name="label">瀹㈡埛鍚嶇О</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="customerType">
+        <Property></Property>
+        <Property name="label">瀹㈡埛绫诲瀷</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;contractManagePR#triggerCustomerType&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="customerBank">
+        <Property></Property>
+        <Property name="label">瀹㈡埛寮�鎴疯</Property>
+      </PropertyDef>
+      <PropertyDef name="customerBankAccount">
+        <Property></Property>
+        <Property name="label">瀹㈡埛寮�鎴疯璐﹀彿</Property>
+      </PropertyDef>
+      <PropertyDef name="customerSignUser">
+        <Property></Property>
+        <Property name="label">瀹㈡埛绛剧害浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="bank">
+        <Property></Property>
+        <Property name="label">鏈柟寮�鎴疯</Property>
+      </PropertyDef>
+      <PropertyDef name="bankAccount">
+        <Property></Property>
+        <Property name="label">鏈柟寮�鎴疯璐﹀彿</Property>
+      </PropertyDef>
+      <PropertyDef name="signUser">
+        <Property></Property>
+        <Property name="label">鏈柟绛剧害浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="signAddress">
+        <Property></Property>
+        <Property name="label">绛剧害鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="price">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍗曚环</Property>
+        <Property name="displayFormat">#,###0.000 鍏�/鍏枻</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="money">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎬婚噾棰�</Property>
+        <Property name="displayFormat">#,###0.00 鍏�</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="contactAmount">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍚堝悓鏁伴噺</Property>
+        <Property name="displayFormat">#,##0.00 KG</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="completeNum">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍚堝悓瀹屾垚鏁伴噺</Property>
+        <Property name="displayFormat">#,##0.00 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicTriggerPR#dicTrigger&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodType">
+        <Property></Property>
+        <Property name="label">绮鎬ц川</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicTriggerPR#dicTrigger&quot;).getResult(&quot;FOOD_TYPE_&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="payType">
+        <Property></Property>
+        <Property name="label">鏀粯鏂瑰紡</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicTriggerPR#dicTrigger&quot;).getResult(&quot;PAY_TYPE&quot;)}</Property>
+          <Property name="valueProperty">name</Property>
+          <Property name="keyProperty">code</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="createUser">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="signingTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">绛捐鏃堕棿</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="beginTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏈夋晥寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="endTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏈夋晥鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+      <PropertyDef name="fddbr">
+        <Property/>
+        <Property name="label">娉曞畾浠h〃浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="txdz">
+        <Property/>
+        <Property name="label">閫氳鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="yzbm">
+        <Property/>
+        <Property name="label">閭斂缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="lxrxm">
+        <Property/>
+        <Property name="label">鑱旂郴浜哄鍚�</Property>
+      </PropertyDef>
+      <PropertyDef name="lxrdh">
+        <Property/>
+        <Property name="label">鑱旂郴鐢佃瘽</Property>
+      </PropertyDef>
+      <PropertyDef name="sfzh">
+        <Property/>
+        <Property name="label">韬唤璇佸彿</Property>
+      </PropertyDef>
+      <PropertyDef name="dzyx">
+        <Property/>
+        <Property name="label">鐢靛瓙淇$</Property>
+      </PropertyDef>
+      <PropertyDef name="relEndTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">瀹為檯瀹屾垚鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="lybzj">
+        <Property name="dataType">Double</Property>
+        <Property name="label">灞ョ害淇濊瘉閲�</Property>
+      </PropertyDef>
+      <PropertyDef name="lyl">
+        <Property name="dataType">Double</Property>
+        <Property name="label">灞ョ害鐜�</Property>
+      </PropertyDef>
+      <PropertyDef name="jsjg">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻浠锋牸锛屽厓/鍚�</Property>
+      </PropertyDef>
+      <PropertyDef name="jszje">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻鎬婚噾棰�</Property>
+      </PropertyDef>
+      <PropertyDef name="jsyhtyzx">
+        <Property/>
+        <Property name="label">缁撶畻涓庡悎鍚屼竴鑷存��</Property>
+      </PropertyDef>
+      <PropertyDef name="jsyhtbyzyy">
+        <Property/>
+        <Property name="label">涓嶄竴鑷村師鍥�</Property>
+      </PropertyDef>
+      <PropertyDef name="auditUser">
+        <Property/>
+        <Property name="label">瀹℃壒浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="auditDate">
+        <Property/>
+        <Property name="label">瀹℃壒鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="auditStatus">
+        <Property/>
+        <Property name="label">瀹℃壒鐘舵��</Property>
+      </PropertyDef>
+      <PropertyDef name="wcrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="hqzz">
+        <Property/>
+        <Property name="label">璐ф潈缁勭粐</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#loadParents&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtPlan">
+      <Property name="creationType">com.ld.igds.models.InoutPlan</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">璁″垝缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="referenceNumber">
+        <Property name="label">璁″垝鏂囧彿</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#loadParents&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property></Property>
+        <Property name="label">璁″垝绫诲瀷</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;planManagePR#triggerPlanType&quot;).getResult()}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">璁″垝鍚嶇О</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="year">
+        <Property></Property>
+        <Property name="label">骞翠唤</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="beginTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="endTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="createUser">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="regionPadding:10">
+    <ClientEvent name="onReady">var deptId = window.parent.deptId;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+&#xD;
+addMain = function(){&#xD;
+	view.get(&quot;#dsMain&quot;).insert({});&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+};&#xD;
+view.get(&quot;#dsParam&quot;).insert({});</ClientEvent>
+    <ClientEvent name="onCreate">//鑷姩璁$畻&#xD;
+countMoney = function(){&#xD;
+	var curData = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+	&#xD;
+	var price = curData.get(&quot;price&quot;);&#xD;
+	&#xD;
+	var contactAmount = curData.get(&quot;contactAmount&quot;);&#xD;
+	&#xD;
+	if(price &amp;&amp; contactAmount){&#xD;
+		&#xD;
+		//璁$畻鍊掑叆鏁伴噺&#xD;
+		var money = price*contactAmount;&#xD;
+    	curData.set(&quot;money&quot;,money); &#xD;
+	}&#xD;
+};</ClientEvent>
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">contractManagePR#pageContract</Property>
+      <Property name="pageSize">15</Property>
+      <Property name="parameter">
+        <Entity>
+          <Property name="type">1</Property>
+        </Entity>
+      </Property>
+    </DataSet>
+    <DataSet id="dsParam">
+      <Property name="dataType">dtParam</Property>
+    </DataSet>
+    <Container layoutConstraint="top">
+      <Property name="height">55</Property>
+      <Property name="contentOverflow">hidden</Property>
+      <Property name="exClassName">bg-color</Property>
+      <Label layoutConstraint="left padding:10">
+        <Property name="text">鑿滃崟鏍忥細</Property>
+      </Label>
+      <Button layoutConstraint="left padding:10">
+        <ClientEvent name="onClick">addMain();</ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+        <Property name="exClassName">btn-default</Property>
+      </Button>
+      <Button layoutConstraint="left padding:10">
+        <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}</ClientEvent>
+        <Property name="caption">淇敼</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+        <Property name="exClassName">btn-warm</Property>
+      </Button>
+      <Button layoutConstraint="left padding:10">
+        <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(!data){&#xD;
+	return;&#xD;
+}&#xD;
+view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,data).execute(function(result){&#xD;
+	if(result){&#xD;
+		$alert(result);&#xD;
+		return;&#xD;
+	}else{&#xD;
+		data.remove();&#xD;
+	}&#xD;
+});</ClientEvent>
+        <Property name="caption">鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-times</Property>
+        <Property name="exClassName">btn-warn</Property>
+      </Button>
+    </Container>
+    <Container layout="regionPadding:10" layoutConstraint="center">
+      <Property name="exClassName">bg-color</Property>
+      <AutoForm>
+        <Property name="cols">*,*,*,*</Property>
+        <Property name="dataSet">dsParam</Property>
+        <Property name="labelAlign">right</Property>
+        <Property name="labelSeparator">锛�</Property>
+        <Property name="labelWidth">100</Property>
+        <AutoFormElement>
+          <Property name="name">year</Property>
+          <Property name="property">year</Property>
+          <Property name="trigger">defaultYearDropDown</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">customerName</Property>
+          <Property name="property">customerName</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">name</Property>
+          <Property name="property">name</Property>
+          <Editor/>
+        </AutoFormElement>
+        <Container layout="regionPadding:15">
+          <Button layoutConstraint="left">
+            <ClientEvent name="onClick">var param = view.get(&quot;#dsParam.data&quot;);&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,param.toJSON()).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="exClassName">btn-default</Property>
+            <Property name="iconClass">fa fa-refresh</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">view.get(&quot;#dsParam&quot;).setData({type:'1'});&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,{type:'1'}).flushAsync();</ClientEvent>
+            <Property name="exClassName">btn-warn</Property>
+            <Property name="iconClass">fa fa-refresh</Property>
+            <Property name="caption">閲嶇疆</Property>
+          </Button>
+        </Container>
+      </AutoForm>
+      <DataGrid layoutConstraint="center padding:5px">
+        <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <RowNumColumn/>
+        <DataColumn name="name">
+          <Property name="property">name</Property>
+        </DataColumn>
+        <DataColumn name="type">
+          <Property name="property">type</Property>
+        </DataColumn>
+        <DataColumn name="year">
+          <Property name="property">year</Property>
+        </DataColumn>
+        <DataColumn name="customerName">
+          <Property name="property">customerName</Property>
+        </DataColumn>
+        <DataColumn name="money">
+          <Property name="property">money</Property>
+        </DataColumn>
+        <DataColumn name="contactAmount">
+          <Property name="property">contactAmount</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">foodVariety</Property>
+          <Property name="name">foodVariety</Property>
+        </DataColumn>
+        <DataColumn name="createUser">
+          <Property name="property">createUser</Property>
+        </DataColumn>
+        <DataColumn name="createTime">
+          <Property name="property">createTime</Property>
+        </DataColumn>
+      </DataGrid>
+    </Container>
+    <Container layout="regionPadding:10" layoutConstraint="bottom">
+      <Property name="exClassName">bg-color</Property>
+      <DataPilot layoutConstraint="right">
+        <Property name="itemCodes">pageSize,pages</Property>
+        <Property name="dataSet">dsMain</Property>
+      </DataPilot>
+    </Container>
+    <Dialog id="dialogMain" layout="padding:5;regionPadding:10">
+      <Property name="width">85%</Property>
+      <Property name="caption">鍚堝悓淇℃伅</Property>
+      <Property name="iconClass">fa fa-flag-o</Property>
+      <Property name="closeable">false</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if(data.validate() != 'ok'){&#xD;
+	$notify(&quot;鏁版嵁鏍¢獙澶辫触锛侊紒&quot;);&#xD;
+	return;&#xD;
+}&#xD;
+view.get(&quot;#uaAction&quot;).set(&quot;parameter&quot;,data).execute();&#xD;
+self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">纭</Property>
+          <Property name="iconClass">fa fa-check-circle</Property>
+          <Property name="width">90</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#dsMain.data:#&quot;).cancel();&#xD;
+self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="iconClass">fa fa-times-circle</Property>
+          <Property name="width">90</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <Container>
+          <AutoForm>
+            <Property name="cols">*</Property>
+            <Property name="labelAlign">right</Property>
+            <Property name="showHint">false</Property>
+            <Label>
+              <Property name="style">
+                <Property name="font">bold 24px Georgia, serif;</Property>
+                <Property name="text-align">center</Property>
+              </Property>
+              <Property name="text">鍚堝悓淇℃伅</Property>
+            </Label>
+          </AutoForm>
+          <Container>
+            <FieldSet layout="regionPadding:5">
+              <Property name="caption">鍩烘湰淇℃伅</Property>
+              <Buttons/>
+              <Children>
+                <AutoForm>
+                  <Property name="dataSet">dsMain</Property>
+                  <Property name="cols">*,*,*</Property>
+                  <Property name="labelWidth">150</Property>
+                  <Property name="labelAlign">right</Property>
+                  <Property name="labelSeparator">锛�</Property>
+                  <AutoFormElement>
+                    <Property name="name">type</Property>
+                    <Property name="property">type</Property>
+                    <Property name="editorType">RadioGroup</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">name</Property>
+                    <Property name="property">name</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">hqzz</Property>
+                    <Property name="property">hqzz</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">year</Property>
+                    <Property name="property">year</Property>
+                    <Property name="trigger">defaultYearDropDown</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodVariety</Property>
+                    <Property name="property">foodVariety</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <ClientEvent name="onBlur">countMoney();</ClientEvent>
+                    <Property name="name">price</Property>
+                    <Property name="property">price</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <ClientEvent name="onBlur">countMoney();</ClientEvent>
+                    <Property name="name">contactAmount</Property>
+                    <Property name="property">contactAmount</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodType</Property>
+                    <Property name="property">foodType</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">money</Property>
+                    <Property name="property">money</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">completeNum</Property>
+                    <Property name="property">completeNum</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">payType</Property>
+                    <Property name="property">payType</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">beginTime</Property>
+                    <Property name="property">beginTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">endTime</Property>
+                    <Property name="property">endTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">deptId</Property>
+                    <Property name="property">deptId</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">planName</Property>
+                    <Property name="property">planName</Property>
+                    <Property name="trigger">ddPlan</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                </AutoForm>
+              </Children>
+            </FieldSet>
+            <FieldSet layout="regionPadding:5">
+              <Property name="caption">绛剧害淇℃伅</Property>
+              <Buttons/>
+              <Children>
+                <AutoForm>
+                  <Property name="dataSet">dsMain</Property>
+                  <Property name="cols">*,*,*</Property>
+                  <Property name="labelWidth">150</Property>
+                  <Property name="labelAlign">right</Property>
+                  <Property name="labelSeparator">锛�</Property>
+                  <AutoFormElement>
+                    <Property name="name">customerName</Property>
+                    <Property name="property">customerName</Property>
+                    <Property name="trigger">ddCustomer</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">customerType</Property>
+                    <Property name="property">customerType</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">signingTime</Property>
+                    <Property name="property">signingTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">customerBank</Property>
+                    <Property name="property">customerBank</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">customerBankAccount</Property>
+                    <Property name="property">customerBankAccount</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">customerSignUser</Property>
+                    <Property name="property">customerSignUser</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">bank</Property>
+                    <Property name="property">bank</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">bankAccount</Property>
+                    <Property name="property">bankAccount</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">signUser</Property>
+                    <Property name="property">signUser</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:3">
+                    <Property name="name">signAddress</Property>
+                    <Property name="property">signAddress</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:3">
+                    <Property name="name">remark</Property>
+                    <Property name="property">remark</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                </AutoForm>
+              </Children>
+            </FieldSet>
+          </Container>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="uaAction">
+      <Property name="dataResolver">contractManagePR#saveContract</Property>
+      <UpdateItem>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="dataPath">[#current]</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="confirmMessage">纭畾瑕佸垹闄ゅ悧锛�</Property>
+      <Property name="service">contractManagePR#delContract</Property>
+    </AjaxAction>
+    <CustomDropDown id="ddCustomer">
+      <Property name="minHeight">400</Property>
+      <Property name="assignmentMap">customerId=id,customerName=name</Property>
+      <Property name="minWidth">500</Property>
+      <Property name="autoOpen">true</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsCustomer">
+          <Property name="dataProvider">inoutCustomerPR#queryListByKey</Property>
+          <Property name="dataType">[dtInoutCustomer]</Property>
+          <Property name="parameter"></Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key">
+            <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key.value&quot;);&#xD;
+var type = &quot;${request.getParameter('type')}&quot;;&#xD;
+view.get(&quot;#dsCustomer&quot;).set(&quot;parameter&quot;,{key:key,type:type}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="iconClass">fa fa-search</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsCustomer.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddCustomer&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsCustomer.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddCustomer&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsCustomer</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="id">
+            <Property name="property">id</Property>
+            <Property name="width">100</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+            <Property name="property">name</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="ddPlan">
+      <Property name="minHeight">317</Property>
+      <Property name="assignmentMap">planId=id,planName=name</Property>
+      <Property name="minWidth">550</Property>
+      <Property name="autoOpen">false</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsPlan">
+          <Property name="dataProvider">planManagePR#pagePlan</Property>
+          <Property name="dataType">[dtPlan]</Property>
+          <Property name="parameter"></Property>
+          <Property name="pageSize">50</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;#dsPlan&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="iconClass">fa fa-search</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsPlan.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddPlan&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsPlan.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddPlan&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsPlan</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn>
+            <Property name="property">id</Property>
+            <Property name="width">100</Property>
+            <Property name="align">center</Property>
+            <Property name="name">id</Property>
+            <Property name="visible">false</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+            <Property name="property">name</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">referenceNumber</Property>
+            <Property name="width">200</Property>
+            <Property name="align">center</Property>
+            <Property name="name">referenceNumber</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">year</Property>
+            <Property name="width">80</Property>
+            <Property name="align">center</Property>
+            <Property name="name">year</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">type</Property>
+            <Property name="width">80</Property>
+            <Property name="align">center</Property>
+            <Property name="name">type</Property>
+          </DataColumn>
+        </DataGrid>
+        <DataPilot layoutConstraint="bottom">
+          <Property name="dataSet">dsPlan</Property>
+        </DataPilot>
+      </Container>
+    </CustomDropDown>
+  </View>
+</ViewConfig>
diff --git a/igds-inout/src/main/java/com/ld/igds/m/view/ContractManagePR.java b/igds-inout/src/main/java/com/ld/igds/m/view/ContractManagePR.java
index 48d46e5..64a9d4a 100644
--- a/igds-inout/src/main/java/com/ld/igds/m/view/ContractManagePR.java
+++ b/igds-inout/src/main/java/com/ld/igds/m/view/ContractManagePR.java
@@ -88,10 +88,9 @@
 	@DataProvider
 	public List<DicTrigger> triggerContractType() {
 		List<DicTrigger> list = new ArrayList<DicTrigger>();
-
 		list.add(new DicTrigger(InoutManageUtil.CONTRACT_TYPE_1, "閿�鍞悎鍚�"));
 		list.add(new DicTrigger(InoutManageUtil.CONTRACT_TYPE_2, "閲囪喘鍚堝悓"));
-		list.add(new DicTrigger(InoutManageUtil.CONTRACT_TYPE_3, "杞崲鍚堝悓"));
+		list.add(new DicTrigger(InoutManageUtil.CONTRACT_TYPE_3, "浠e偍鍚堝悓"));
 
 		return list;
 	}
diff --git a/igds-inout/src/main/java/com/ld/igds/models/InoutContract.java b/igds-inout/src/main/java/com/ld/igds/models/InoutContract.java
index 86a3067..5de7f0b 100644
--- a/igds-inout/src/main/java/com/ld/igds/models/InoutContract.java
+++ b/igds-inout/src/main/java/com/ld/igds/models/InoutContract.java
@@ -13,210 +13,214 @@
 /**
  * @Desc:
  * @author: Andy
- * @update-time: 2023/5/22  鏍规嵁鏂板浗鏍囪皟鏁村悕绉帮紝浼樺寲瀛楁
+ * @update-time: 2023/5/22 鏍规嵁鏂板浗鏍囪皟鏁村悕绉帮紝浼樺寲瀛楁
  */
 @Data
 @Entity
 @Table(name = "D_INOUT_CONTRACT")
 public class InoutContract implements Serializable {
 
-    private static final long serialVersionUID = 1L;
+	private static final long serialVersionUID = 1L;
 
-    @Id
-    @Column(name = "ID_", length = 40)
-    @PropertyDef(label = "ID_")
-    private String id;
+	@Id
+	@Column(name = "ID_", length = 40)
+	@PropertyDef(label = "ID_")
+	private String id;
 
-    @Column(name = "COMPANY_ID_", length = 10)
-    @PropertyDef(label = "缁勭粐缂栫爜")
-    private String companyId;
+	@Column(name = "COMPANY_ID_", length = 10)
+	@PropertyDef(label = "缁勭粐缂栫爜")
+	private String companyId;
 
-    @Column(name = "DEPT_ID_", length = 40)
-    @PropertyDef(label = "搴撳尯缂栫爜")
-    private String deptId;
+	@Column(name = "DEPT_ID_", length = 40)
+	@PropertyDef(label = "搴撳尯缂栫爜")
+	private String deptId;
 
-    @Column(name = "NAME_", length = 50)
-    @PropertyDef(label = "鍚堝悓鍚嶇О")
-    private String name;
+	@Column(name = "NAME_", length = 50)
+	@PropertyDef(label = "鍚堝悓鍚嶇О")
+	private String name;
 
-//	@Column(name = "PLAN_ID_", length = 40)
-//	@PropertyDef(label = "璁″垝缂栫爜")
-//	private String planId;
-//
-//	@Column(name = "PLAN_NAME_", length = 50)
-//	@PropertyDef(label = "璁″垝鍚嶇О")
-//	private String planName;
+	@Column(name = "PLAN_ID_", length = 40)
+	@PropertyDef(label = "璁″垝缂栫爜")
+	private String planId;
 
-    @Column(name = "TYPE_", length = 10)
-    @PropertyDef(label = "涓氬姟绫诲埆", description = "1:閿�鍞悎鍚� 2:閲囪喘鍚堝悓 3:浠e偍鍚堝悓")
-    private String type;
+	@Column(name = "PLAN_NAME_", length = 50)
+	@PropertyDef(label = "璁″垝鍚嶇О")
+	private String planName;
 
-    @Column(name = "CUSTOMER_TYPE_", length = 10)
-    @PropertyDef(label = "瀹㈡埛绫诲瀷", description = "1:浼佷笟 2:涓汉")
-    private String customerType;
+	@Column(name = "TYPE_", length = 10)
+	@PropertyDef(label = "涓氬姟绫诲埆", description = "1:閿�鍞悎鍚� 2:閲囪喘鍚堝悓 3:浠e偍鍚堝悓")
+	private String type;
 
-    @Column(name = "YEAR_", length = 10)
-    @PropertyDef(label = "骞翠唤")
-    private String year;
+	@Column(name = "CUSTOMER_TYPE_", length = 10)
+	@PropertyDef(label = "瀹㈡埛绫诲瀷", description = "1:浼佷笟 2:涓汉")
+	private String customerType;
 
-    @Column(name = "CUSTOMER_ID_", length = 20)
-    @PropertyDef(label = "绀句細淇$敤鐮�", description = "濡傛灉鏄紒涓�=瀹㈡埛缁熶竴绀句細淇$敤浠g爜")
-    private String customerId;
+	@Column(name = "YEAR_", length = 10)
+	@PropertyDef(label = "骞翠唤")
+	private String year;
 
-    @Column(name = "CUSTOMER_NAME_", length = 50)
-    @PropertyDef(label = "瀹㈡埛鍚嶇О")
-    private String customerName;
+	@Column(name = "CUSTOMER_ID_", length = 20)
+	@PropertyDef(label = "绀句細淇$敤鐮�", description = "濡傛灉鏄紒涓�=瀹㈡埛缁熶竴绀句細淇$敤浠g爜")
+	private String customerId;
 
-    @Column(name = "fddbr", length = 50)
-    @PropertyDef(label = "娉曞畾浠h〃浜�")
-    private String fddbr;
+	@Column(name = "CUSTOMER_NAME_", length = 50)
+	@PropertyDef(label = "瀹㈡埛鍚嶇О")
+	private String customerName;
 
-    @Column(name = "txdz", length = 200)
-    @PropertyDef(label = "閫氳鍦板潃")
-    private String txdz;
+	@Column(name = "fddbr", length = 50)
+	@PropertyDef(label = "娉曞畾浠h〃浜�")
+	private String fddbr;
 
-    @Column(name = "yzbm", length = 6)
-    @PropertyDef(label = "閭斂缂栫爜")
-    private String yzbm;
+	@Column(name = "txdz", length = 200)
+	@PropertyDef(label = "閫氳鍦板潃")
+	private String txdz;
 
-    @PropertyDef(label = "鑱旂郴浜哄鍚�")
-    @Column(name = "lxrxm", length = 50)
-    private String lxrxm;
+	@Column(name = "yzbm", length = 6)
+	@PropertyDef(label = "閭斂缂栫爜")
+	private String yzbm;
 
-    @PropertyDef(label = "鑱旂郴鐢佃瘽")
-    @Column(name = "lxrdh", length = 20)
-    private String lxrdh;
+	@PropertyDef(label = "鑱旂郴浜哄鍚�")
+	@Column(name = "lxrxm", length = 50)
+	private String lxrxm;
 
-    @PropertyDef(label = "韬唤璇佸彿")
-    @Column(name = "sfzh", length = 20)
-    private String sfzh;
+	@PropertyDef(label = "鑱旂郴鐢佃瘽")
+	@Column(name = "lxrdh", length = 20)
+	private String lxrdh;
 
-    @PropertyDef(label = "鐢靛瓙淇$")
-    @Column(name = "dzyx", length = 50)
-    private String dzyx;
+	@PropertyDef(label = "韬唤璇佸彿")
+	@Column(name = "sfzh", length = 20)
+	private String sfzh;
 
-    @Column(name = "SIGNING_TIME_")
-    @PropertyDef(label = "绛捐鏃堕棿", description = "鏍煎紡锛歽yyy-MM-dd")
-    private Date signingTime;
+	@PropertyDef(label = "鐢靛瓙淇$")
+	@Column(name = "dzyx", length = 50)
+	private String dzyx;
 
-    @Column(name = "SIGN_ADDRESS_", length = 100)
-    @PropertyDef(label = "绛剧害鍦扮偣")
-    private String signAddress;
+	@Column(name = "SIGNING_TIME_")
+	@PropertyDef(label = "绛捐鏃堕棿", description = "鏍煎紡锛歽yyy-MM-dd")
+	private Date signingTime;
 
-    @Column(name = "BEGIN_TIME_")
-    @PropertyDef(label = "绾﹀畾寮�濮嬫椂闂�")
-    private Date beginTime;
+	@Column(name = "SIGN_ADDRESS_", length = 100)
+	@PropertyDef(label = "绛剧害鍦扮偣")
+	private String signAddress;
 
-    @Column(name = "END_TIME_")
-    @PropertyDef(label = "绾﹀畾瀹屾垚鏃堕棿")
-    private Date endTime;
+	@Column(name = "BEGIN_TIME_")
+	@PropertyDef(label = "绾﹀畾寮�濮嬫椂闂�")
+	private Date beginTime;
 
-    @Column(name = "REL_END_TIME_")
-    @PropertyDef(label = "瀹為檯瀹屾垚鏃堕棿")
-    private Date relEndTime;
+	@Column(name = "END_TIME_")
+	@PropertyDef(label = "绾﹀畾瀹屾垚鏃堕棿")
+	private Date endTime;
 
-    @Column(name = "FOOD_VARIETY_", length = 20)
-    @PropertyDef(label = "绮鍝佺")
-    private String foodVariety;
+	@Column(name = "REL_END_TIME_")
+	@PropertyDef(label = "瀹為檯瀹屾垚鏃堕棿")
+	private Date relEndTime;
 
-    @Column(name = "FOOD_TYPE_", length = 20)
-    @PropertyDef(label = "绮鎬ц川")
-    private String foodType;
+	@Column(name = "FOOD_VARIETY_", length = 20)
+	@PropertyDef(label = "绮鍝佺")
+	private String foodVariety;
 
-    @Column(name = "PRICE_")
-    @PropertyDef(label = "鍚堝悓鍗曚环锛屽厓/鍚�")
-    private Double price;
+	@Column(name = "FOOD_TYPE_", length = 20)
+	@PropertyDef(label = "绮鎬ц川")
+	private String foodType;
 
-    @Column(name = "MONEY_")
-    @PropertyDef(label = "鍚堝悓鎬婚噾棰�", description = "鍗曚綅锛氬厓")
-    private Double money;
+	@Column(name = "PRICE_")
+	@PropertyDef(label = "鍚堝悓鍗曚环锛屽厓/鍚�")
+	private Double price;
 
-    @Column(name = "CONTRACT_AMOUNT_")
-    @PropertyDef(label = "鍚堝悓鏁伴噺", description = "鍗曚綅锛氬叕鏂�")
-    private Double contactAmount;
+	@Column(name = "MONEY_")
+	@PropertyDef(label = "鍚堝悓鎬婚噾棰�", description = "鍗曚綅锛氬厓")
+	private Double money;
 
-    @Column(name = "COMPLETE_NUM_")
-    @PropertyDef(label = "灞ョ害鏁伴噺", description = "鍗曚綅锛氬叕鏂�")
-    private Double completeNum;
+	@Column(name = "CONTRACT_AMOUNT_")
+	@PropertyDef(label = "鍚堝悓鏁伴噺", description = "鍗曚綅锛氬叕鏂�")
+	private Double contactAmount;
 
-    @Column(name = "lybzj")
-    @PropertyDef(label = "灞ョ害淇濊瘉閲�", description = "鍗曚綅锛氬厓")
-    private Double lybzj;
+	@Column(name = "COMPLETE_NUM_")
+	@PropertyDef(label = "灞ョ害鏁伴噺", description = "鍗曚綅锛氬叕鏂�")
+	private Double completeNum;
 
-    @PropertyDef(label = "灞ョ害鐜�", description = "鍗曚綅锛�%")
-    @Column(name = "lyl")
-    private Double lyl;
+	@Column(name = "lybzj")
+	@PropertyDef(label = "灞ョ害淇濊瘉閲�", description = "鍗曚綅锛氬厓")
+	private Double lybzj;
 
-    @Column(name = "jsjg")
-    @PropertyDef(label = "缁撶畻浠锋牸锛屽厓/鍚�")
-    private Double jsjg;
+	@PropertyDef(label = "灞ョ害鐜�", description = "鍗曚綅锛�%")
+	@Column(name = "lyl")
+	private Double lyl;
 
-    @PropertyDef(label = "缁撶畻鎬婚噾棰�", description = "鍗曚綅锛氬厓")
-    @Column(name = "jszje")
-    private Double jszje;
+	@Column(name = "jsjg")
+	@PropertyDef(label = "缁撶畻浠锋牸锛屽厓/鍚�")
+	private Double jsjg;
 
-    @PropertyDef(label = "缁撶畻涓庡悎鍚屼竴鑷存��", description = "1锛氱鍚� 2锛氫笉绗﹀悎")
-    @Column(name = "jsyhtyzx", length = 1)
-    private String jsyhtyzx;
+	@PropertyDef(label = "缁撶畻鎬婚噾棰�", description = "鍗曚綅锛氬厓")
+	@Column(name = "jszje")
+	private Double jszje;
 
-    @PropertyDef(label = "涓嶄竴鑷村師鍥�")
-    @Column(name = "jsyhtbyzyy", length = 250)
-    private String jsyhtbyzyy;
+	@PropertyDef(label = "缁撶畻涓庡悎鍚屼竴鑷存��", description = "1锛氱鍚� 2锛氫笉绗﹀悎")
+	@Column(name = "jsyhtyzx", length = 1)
+	private String jsyhtyzx;
 
-    @Column(name = "CUSTOMER_BANK_", length = 10)
-    @PropertyDef(label = "瀹㈡埛寮�鎴疯")
-    private String customerBank;
+	@PropertyDef(label = "涓嶄竴鑷村師鍥�")
+	@Column(name = "jsyhtbyzyy", length = 250)
+	private String jsyhtbyzyy;
 
-    @Column(name = "CUSTOMER_BANK_ACCOUNT_", length = 40)
-    @PropertyDef(label = "瀹㈡埛鏂硅处鍙�")
-    private String customerBankAccount;
+	@Column(name = "CUSTOMER_BANK_", length = 10)
+	@PropertyDef(label = "瀹㈡埛寮�鎴疯")
+	private String customerBank;
 
-    @Column(name = "CUSTOMER_SIGN_USER_", length = 50)
-    @PropertyDef(label = "瀹㈡埛绛剧害浜�")
-    private String customerSignUser;
+	@Column(name = "CUSTOMER_BANK_ACCOUNT_", length = 40)
+	@PropertyDef(label = "瀹㈡埛鏂硅处鍙�")
+	private String customerBankAccount;
 
-    @Column(name = "BANK_", length = 50)
-    @PropertyDef(label = "鏈柟寮�鎴疯")
-    private String bank;
+	@Column(name = "CUSTOMER_SIGN_USER_", length = 50)
+	@PropertyDef(label = "瀹㈡埛绛剧害浜�")
+	private String customerSignUser;
 
-    @Column(name = "BANK_ACCOUNT_", length = 40)
-    @PropertyDef(label = "鏈柟璐﹀彿")
-    private String bankAccount;
+	@Column(name = "BANK_", length = 50)
+	@PropertyDef(label = "鏈柟寮�鎴疯")
+	private String bank;
 
-    @Column(name = "SIGN_USER_", length = 50)
-    @PropertyDef(label = "鏈柟绛剧害浜�")
-    private String signUser;
+	@Column(name = "BANK_ACCOUNT_", length = 40)
+	@PropertyDef(label = "鏈柟璐﹀彿")
+	private String bankAccount;
 
-    /**
-     * --------瀹℃壒淇℃伅--------
-     **/
+	@Column(name = "SIGN_USER_", length = 50)
+	@PropertyDef(label = "鏈柟绛剧害浜�")
+	private String signUser;
 
-    @Column(name = "CREATE_USER_", length = 50)
-    @PropertyDef(label = "鍒涘缓浜�")
-    private String createUser;
+	/**
+	 * --------瀹℃壒淇℃伅--------
+	 **/
 
-    @Column(name = "AUDIT_USER_", length = 50)
-    @PropertyDef(label = "瀹℃壒浜�")
-    private String auditUser;
+	@Column(name = "CREATE_USER_", length = 50)
+	@PropertyDef(label = "鍒涘缓浜�")
+	private String createUser;
 
-    @Column(name = "AUDIT_DATE_")
-    @PropertyDef(label = "瀹℃壒鏃堕棿", description = "鏍煎紡锛歽yyy-MM-dd HH:mm:ss")
-    private String auditDate;
+	@Column(name = "AUDIT_USER_", length = 50)
+	@PropertyDef(label = "瀹℃壒浜�")
+	private String auditUser;
 
-    @Column(name = "AUDIT_STATUS_", length = 10)
-    @PropertyDef(label = "瀹℃壒鐘舵��")
-    private String auditStatus;
+	@Column(name = "AUDIT_DATE_")
+	@PropertyDef(label = "瀹℃壒鏃堕棿", description = "鏍煎紡锛歽yyy-MM-dd HH:mm:ss")
+	private String auditDate;
 
-    @Column(name = "CREATE_TIME_")
-    @PropertyDef(label = "鍒涘缓鏃堕棿")
-    private Date createTime;
+	@Column(name = "AUDIT_STATUS_", length = 10)
+	@PropertyDef(label = "瀹℃壒鐘舵��")
+	private String auditStatus;
 
-    @Column(name = "wcrq")
-    @PropertyDef(label = "瀹屾垚鏃堕棿")
-    private Date wcrq;
+	@Column(name = "CREATE_TIME_")
+	@PropertyDef(label = "鍒涘缓鏃堕棿")
+	private Date createTime;
 
-    @Column(name = "UPDATE_TIME_")
-    @PropertyDef(label = "鏇存柊鏃堕棿")
-    private Date updateTime;
+	@Column(name = "wcrq")
+	@PropertyDef(label = "瀹屾垚鏃堕棿")
+	private Date wcrq;
+
+	@Column(name = "hqzz", length = 30)
+	@PropertyDef(label = "璐ф潈缁勭粐")
+	private String hqzz;
+
+	@Column(name = "UPDATE_TIME_")
+	@PropertyDef(label = "鏇存柊鏃堕棿")
+	private Date updateTime;
 
 }
diff --git a/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/OpenApiInoutService.java b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/OpenApiInoutService.java
new file mode 100644
index 0000000..44a5e1f
--- /dev/null
+++ b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/OpenApiInoutService.java
@@ -0,0 +1,75 @@
+package com.ld.igds.protocol.openapi;
+
+import com.ld.igds.inout.ApiInoutService;
+import com.ld.igds.inout.dto.ApiInoutData;
+import com.ld.igds.io.constant.ProtocolEnum;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Desc: OPEN-API HTTP璇锋眰鍗忚瀹炵幇
+ * @author: andy.jia
+ * @update-time: 2023/6/29 15:21
+ */
+@Component
+public class OpenApiInoutService implements ApiInoutService {
+
+
+    private String http_url = "http://127.0.0.1:8081:/api/anpr/plate/single-recognition";
+
+    @Override
+    public String getProtocol() {
+        return ProtocolEnum.FZZY_OPENAPI_HTTP.getCode();
+    }
+
+    @Override
+    public ApiInoutData getIcCardNum(ApiInoutData param) {
+
+        param.setErrorMsg("褰撳墠鍗忚涓嶆敮鎸�");
+        return param;
+    }
+
+    @Override
+    public ApiInoutData getPlateNum(ApiInoutData param) {
+
+
+        String rtsp = param.getMediaAddr();
+
+        if (StringUtils.isEmpty(rtsp)) {
+            param.setErrorMsg("褰撳墠杞︾墝璇嗗埆璁惧鏈厤缃挱鏀惧湴鍧�");
+
+            return param;
+        }
+
+        //璇存槑鍦板潃鏈仛淇℃伅鏇挎崲
+        if (rtsp.indexOf("{0}") > 0) {
+
+        }
+
+        // HttpUtils.doPostJson()
+
+
+        return param;
+    }
+
+    @Override
+    public String initLpr(ApiInoutData param) {
+        param.setErrorMsg("褰撳墠鍗忚涓嶆敮鎸�");
+        return "褰撳墠鍗忚涓嶆敮鎸�";
+    }
+
+    @Override
+    public String gateControl(ApiInoutData param) {
+        return "褰撳墠鍗忚涓嶆敮鎸�";
+    }
+
+    @Override
+    public String noticeRadio(ApiInoutData param) {
+        return "褰撳墠鍗忚涓嶆敮鎸�";
+    }
+
+    @Override
+    public String noticeLed(ApiInoutData param) {
+        return "褰撳墠鍗忚涓嶆敮鎸�";
+    }
+}
diff --git a/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/data/PlateReqVo.java b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/data/PlateReqVo.java
new file mode 100644
index 0000000..4f80403
--- /dev/null
+++ b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/data/PlateReqVo.java
@@ -0,0 +1,31 @@
+package com.ld.igds.protocol.openapi.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Desc:
+ * @author: andy.jia
+ * @update-time: 2023/6/29 15:30
+ */
+@Data
+public class PlateReqVo implements Serializable {
+
+
+    /**
+     * 鍥惧儚Base64缂栫爜鍊�
+     **/
+    private String image;
+
+    /**
+     * 鎽勫儚澶碦TSP鍦板潃
+     **/
+    private String rtsp;
+
+    /**
+     * 鎼滅储鏉℃暟锛氶粯璁�5
+     **/
+    private Integer limit = 1;
+
+}
diff --git a/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/package-info.java b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/package-info.java
new file mode 100644
index 0000000..3f0c135
--- /dev/null
+++ b/igds-protocol-block/src/main/java/com/ld/igds/protocol/openapi/package-info.java
@@ -0,0 +1 @@
+package com.ld.igds.protocol.openapi;
\ No newline at end of file

--
Gitblit v1.9.3