From 36aea6acd5ec532f5e6fcb530debd174a28cd450 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期一, 08 十二月 2025 15:35:37 +0800
Subject: [PATCH] 出入库结算及单据打印

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java              |   83 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java |   76 +
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml              |    2 
 fzzy-igdss-web/src/main/resources/templates/print/pay.html                  |   72 +
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java                |    1 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java             |    3 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml            |  920 +++++++++++++++++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java            |  129 +++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml       | 1203 ++++++++++++++++++++++++++++
 9 files changed, 2,483 insertions(+), 6 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
index 05d4221..4b6b786 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
@@ -19,5 +19,6 @@
     /**
      * 榛樿缁撶畻鍗�
      */
-    public static String IN_SETTLE_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>鍏ュ簱杩囩鍗�</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:15px}.div-tit{padding-top:10px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:50%;float:left;text-align:center}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>缁撶畻鏃堕棿锛歱ayTime</span><span class='sp1'>鍏ュ簱鍗曞彿锛歴erId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>鍙戣揣鍗曚綅</td><td colspan='3'width='37.5%'>customerName</td><td width='12.5%'>鏀惰揣鍗曚綅</td><td colspan='3'width='37.5%'>deptName</td></tr><tr><td width='12.5%'>寮�鎴烽摱琛�</td><td colspan='3'width='37.5%'>bank</td><td>姣涢噸(KG)</td><td>fullWeight</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td width='12.5%'>閾惰鍗″彿</td><td colspan='3'width='37.5%'>banNum</td><td>鍑�閲�(KG)</td><td>netWeight</td><td>鎬绘墸閲�(KG)</td><td>deSum</td></tr><tr><td>鍏ュ簱浠撳簱</td><td>depotName</td><td>绮鍝佺</td><td>foodVariety</td><td>绮鍗曚环</td><td>payPrice</td><td>缁撶畻閲嶉噺</td><td>settleWeight</td></tr><tr><td>淇濈鍛�</td><td>keeperName</td><td>鎵胯繍浜�</td><td>driverName</td><td>鍏朵粬璐圭敤</td><td>otherSum</td><td>缁撶畻璐圭敤</td><td>paySum</td></tr><tr><td>澶囨敞</td><td colspan='3'>remark</td><td>澶у啓閲戦</td><td colspan='3'>moneyName</td></tr></table><div class='div-tit'><span class=\"sp2\">鏀惰揣鍗曚綅绛惧瓧锛�</span><span class=\"sp2\">瀹㈡埛绛惧瓧锛�</span></div></body></html>";
+    public static String IN_SETTLE_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>缁撶畻鍗�</title><style>body{text-align:center;padding:10px;font-family:'瀹嬩綋'}.tit{font-size:24px;flex-grow:1;text-align:center}.div-tit{padding-top:6px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px;border-collapse:collapse}table td{border-left:1px solid;border-top:1px solid;height:32px}.sp1{width:33%;float:left;padding-bottom:5px}.sp2{width:25%;float:left;text-align:center}.sp3{width:16.6%;float:left;text-align:center}.txt-left{text-align:left}.txt-center{text-align:center}.txt-right{text-align:right}</style></head><body><h1 class='tit'><u>[billTitle]</u></h1><div class='div-tit'><span class='sp1 txt-left'>搴撳尯鍚嶇О锛歔deptId]</span><span class='sp1 txt-center'>鍗曟嵁鍙�:[id]</span><span class='sp1 txt-right'>鎵撳嵃鏃堕棿锛歔payTime]</span></div><table cellspacing='0'cellpadding='0'><tr><td>瀹㈡埛鍚嶇О</td><td colspan='7'>[customerName]</td></tr><tr><td width='12.5%'>鎵胯繍浜�</td><td width='37.5%'colspan='3'>[userName]</td><td width='12.5%'>鑱旂郴鐢佃瘽</td><td width='37.5%'colspan='3'>[userContact]</td></tr><tr><td>韬唤璇佸彿鐮�</td><td colspan='3'>[userId]</td><td>杞︾墝鍙�</td><td colspan='3'>[plateNum]</td></tr><tr><td>浠撳簱</td><td colspan='3'>[depotId]</td><td>绮鍚嶇О</td><td colspan='3'>[foodVariety]</td></tr><tr><td>澶囨敞</td><td colspan=\"7\">[remark]</td></tr><tr><td colspan=\"8\">璁¢噺淇℃伅</td></tr><tr><td>姣涢噸</td><td colspan='2'>[fullWeight]鍏枻</td><td>鐨噸</td><td colspan='2'>[emptyWeight]鍏枻</td><td>鎵i噸</td><td colspan='2'>[deOther]鍏枻</td></tr><tr><td colspan=\"8\">缁撶畻淇℃伅</td></tr><tr><td>鍗曚环</td><td colspan='2'>[payPrice]鍏�/鍏枻</td><td>缁撶畻閲嶉噺</td><td colspan='2'>[settleWeight]鍏枻</td><td>缁撶畻閲戦</td><td colspan='2'>[payMoney]鍏�</td></tr><tr><td>澶у啓閲戦</td><td colspan=\"7\">[payMoneyName]</td></tr></table><div class='div-tit'><span class='sp2 txt-left '>缁撶畻鍛橈細_______</span><span class='sp2 txt-left '>淇濈鍛橈細_______</span><span class='sp2 txt-left '>瀹℃牳浜猴細_______</span><span class='sp2 txt-left '>鎵胯繍浜猴細_______</span></div></body></html>";
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
index 21012e6..ab051fd 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -14,6 +14,7 @@
 import com.fzzy.igds.mapper.InoutRecordMapper;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.DateUtil;
+import com.fzzy.igds.utils.MoneyUtil;
 import com.fzzy.igds.utils.NumberUtil;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.redis.RedisCache;
@@ -23,6 +24,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.List;
@@ -124,15 +126,16 @@
         if (StringUtils.isNotBlank(param.getType())) {
             queryWrapper.eq("type", param.getType());
         }
+        if (StringUtils.isNotBlank(param.getSettleTag())) {
+            queryWrapper.eq("settle_tag", param.getSettleTag());
+        }
         if (null != param.getStart()) {
             queryWrapper.ge("create_time", DateUtil.getCurZero(param.getStart()));
         }
         if (null != param.getEnd()) {
             queryWrapper.le("create_time", DateUtil.getNextZero(param.getEnd()));
         }
-        queryWrapper.eq("record_status", Constant.RECORD_STATUS_NORMAL); //姝e父鐘舵�佺殑鍗曞瓙
-        queryWrapper.or();
-        queryWrapper.eq("record_status", Constant.RECORD_STATUS_ADD); //琛ュ綍鍗曞瓙鐨勫崟瀛�
+        queryWrapper.ne("record_status", Constant.RECORD_STATUS_DEL); //涓嶆槸鍒犻櫎鐨勫崟瀛愶紝鍗虫甯哥殑鍗曞瓙
         queryWrapper.orderByDesc("create_time");
 
         return queryWrapper;
@@ -649,4 +652,71 @@
         return bill;
     }
 
+    /**
+     * 鑾峰彇缁撶畻鍗�
+     *
+     * @param
+     * @return
+     */
+    public String printPay(InoutRecord data) {
+
+        // 璋冩暣妯$増鏁版嵁骞惰繑鍥�
+        String htmlStr = InoutBill.IN_SETTLE_DEFAULT;
+        //鏍囬
+        //娓呰繙鍑哄彂璐у崟浣嶅強鏍囬锛屼娇鐢ㄥ叕鍙稿悕
+        String billTitle = data.getType().equals("IN") ? "鍏ュ簱缁撶畻鍗�" : "鍑哄簱缁撶畻鍗�";
+
+        htmlStr = htmlStr.replace("[billTitle]", billTitle);
+        //搴撳尯鍚嶇О
+        SysDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getDeptId());
+        if (dept != null) {
+            htmlStr = htmlStr.replace("[deptId]", null == data.getDeptId() ? "" : dept.getDeptName());
+        } else {
+            htmlStr = htmlStr.replace("[deptId]", "");
+        }
+
+        //涓氬姟鍗曞彿
+        htmlStr = htmlStr.replace("[id]", data.getId());
+        //鎵撳嵃鏃堕棿
+        htmlStr = htmlStr.replace("[payTime]", null == data.getSettleTime() ? "" : DateFormatUtils.format(data.getSettleTime(), "yyyy骞碝M鏈坉d鏃�"));
+        //瀹㈡埛鍚嶇О
+        htmlStr = htmlStr.replace("[customerName]", null == data.getCustomerName() ? "" : data.getCustomerName());
+        //鎵胯繍浜�
+        htmlStr = htmlStr.replace("[userName]", null == data.getUserName() ? "" : data.getUserName());
+        //鎵胯繍浜鸿仈绯荤數璇�
+        htmlStr = htmlStr.replace("[userContact]", null == data.getUserContact() ? "" : data.getUserContact());
+        //鎵胯繍浜鸿韩浠借瘉鍙�
+        htmlStr = htmlStr.replace("[userId]", null == data.getUserId() ? "" : data.getUserId());
+        //鎵胯繍浜鸿溅鐗屽彿
+        htmlStr = htmlStr.replace("[plateNum]", null == data.getPlateNum() ? "" : data.getPlateNum());
+        //鑾峰彇浠撳簱淇℃伅
+        Depot depot = depotService.getCacheDepot(data.getCompanyId(), data.getDepotId());
+        if (null != depot) {
+            //璐т綅淇℃伅
+            htmlStr = htmlStr.replace("[depotId]", depot.getName());
+        }
+        //绮鍚嶇О
+        htmlStr = htmlStr.replace("[foodVariety]", null == data.getFoodVariety() ? "" : FoodVariety.getMsg(data.getFoodVariety()));
+
+        //澶囨敞
+        htmlStr = htmlStr.replace("[remark]", null == data.getRemarks() ? "" : data.getRemarks());
+        //姣涢噸
+        htmlStr = htmlStr.replace("[fullWeight]", null == data.getFullWeight() ? "" : String.format("%.2f", data.getFullWeight()));
+        //鐨噸
+        htmlStr = htmlStr.replace("[emptyWeight]", null == data.getEmptyWeight() ? "" : String.format("%.2f", data.getEmptyWeight()));
+        //鎵i噸
+        htmlStr = htmlStr.replace("[deOther]", null == data.getDeOther() ? "" : String.format("%.2f", data.getDeOther()));
+        //绮补浠锋牸
+        htmlStr = htmlStr.replace("[payPrice]", null == data.getPrice() ? "" : String.format("%.3f", data.getPrice()));
+        //缁撶畻閲嶉噺
+        htmlStr = htmlStr.replace("[settleWeight]", String.format("%.2f", data.getSettleWeight()));
+        //缁撶畻閲戦
+        htmlStr = htmlStr.replace("[payMoney]", null == data.getSettleMoney() ? "" : String.format("%.3f", data.getSettleMoney()));
+
+        //缁撶畻閲嶉噺鍚嶇О
+        htmlStr = htmlStr.replace("[payMoneyName]", MoneyUtil.formatToCN(new BigDecimal(String.format("%.2f", data.getSettleMoney()))));
+
+        return htmlStr;
+    }
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java
new file mode 100644
index 0000000..2c4ea14
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java
@@ -0,0 +1,129 @@
+package com.fzzy.igds.utils;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ *
+ * 鏁板瓧杞崲涓烘眽璇腑浜烘皯甯佺殑澶у啓<br>
+ *
+ */
+public class MoneyUtil {
+    /**
+     * 姹夎涓暟瀛楀ぇ鍐�
+     */
+    private static final String[] CN_UPPER_NUMBER = { "闆�", "澹�", "璐�", "鍙�", "鑲�",
+            "浼�", "闄�", "鏌�", "鎹�", "鐜�" };
+    /**
+     * 姹夎涓揣甯佸崟浣嶅ぇ鍐欙紝杩欐牱鐨勮璁$被浼间簬鍗犱綅绗�
+     */
+    private static final String[] CN_UPPER_MONETRAY_UNIT = { "鍒�", "瑙�", "鍏�",
+            "鎷�", "浣�", "浠�", "涓�", "鎷�", "浣�", "浠�", "浜�", "鎷�", "浣�", "浠�", "鍏�", "鎷�",
+            "浣�", "浠�" };
+    /**
+     * 鐗规畩瀛楃锛氭暣
+     */
+    private static final String CN_FULL = "鏁�";
+    /**
+     * 鐗规畩瀛楃锛氳礋
+     */
+    private static final String CN_NEGATIVE = "璐�";
+    /**
+     * 閲戦鐨勭簿搴︼紝榛樿鍊间负2
+     */
+    private static final int MONEY_PRECISION = 2;
+    /**
+     * 鐗规畩瀛楃锛氶浂鍏冩暣
+     */
+    private static final String CN_ZEOR_FULL = "闆跺厓" + CN_FULL;
+
+    /**
+     * 鎶婅緭鍏ョ殑閲戦杞崲涓烘眽璇腑浜烘皯甯佺殑澶у啓
+     *
+     * @param numberOfMoney
+     *            杈撳叆鐨勯噾棰�
+     * @return 瀵瑰簲鐨勬眽璇ぇ鍐�
+     */
+    public static String formatToCN(BigDecimal numberOfMoney) {
+        StringBuffer sb = new StringBuffer();
+        // -1, 0, or 1 as the value of this BigDecimal is negative, zero, or
+        // positive.
+        int signum = numberOfMoney.signum();
+        // 闆跺厓鏁寸殑鎯呭喌
+        if (signum == 0) {
+            return CN_ZEOR_FULL;
+        }
+        // 杩欓噷浼氳繘琛岄噾棰濈殑鍥涜垗浜斿叆
+        long number = numberOfMoney.movePointRight(MONEY_PRECISION)
+                .setScale(0, 4).abs().longValue();
+        // 寰楀埌灏忔暟鐐瑰悗涓や綅鍊�
+        long scale = number % 100;
+        int numUnit = 0;
+        int numIndex = 0;
+        boolean getZero = false;
+        // 鍒ゆ柇鏈�鍚庝袱浣嶆暟锛屼竴鍏辨湁鍥涗腑鎯呭喌锛�00 = 0, 01 = 1, 10, 11
+        if (!(scale > 0)) {
+            numIndex = 2;
+            number = number / 100;
+            getZero = true;
+        }
+        if ((scale > 0) && (!(scale % 10 > 0))) {
+            numIndex = 1;
+            number = number / 10;
+            getZero = true;
+        }
+        int zeroSize = 0;
+        while (true) {
+            if (number <= 0) {
+                break;
+            }
+            // 姣忔鑾峰彇鍒版渶鍚庝竴涓暟
+            numUnit = (int) (number % 10);
+            if (numUnit > 0) {
+                if ((numIndex == 9) && (zeroSize >= 3)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[6]);
+                }
+                if ((numIndex == 13) && (zeroSize >= 3)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[10]);
+                }
+                sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+                getZero = false;
+                zeroSize = 0;
+            } else {
+                ++zeroSize;
+                if (!(getZero)) {
+                    sb.insert(0, CN_UPPER_NUMBER[numUnit]);
+                }
+                if (numIndex == 2) {
+                    if (number > 0) {
+                        sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                    }
+                } else if (((numIndex - 2) % 4 == 0) && (number % 1000 > 0)) {
+                    sb.insert(0, CN_UPPER_MONETRAY_UNIT[numIndex]);
+                }
+                getZero = true;
+            }
+            // 璁﹏umber姣忔閮藉幓鎺夋渶鍚庝竴涓暟
+            number = number / 10;
+            ++numIndex;
+        }
+        // 濡傛灉signum == -1锛屽垯璇存槑杈撳叆鐨勬暟瀛椾负璐熸暟锛屽氨鍦ㄦ渶鍓嶉潰杩藉姞鐗规畩瀛楃锛氳礋
+        if (signum == -1) {
+            sb.insert(0, CN_NEGATIVE);
+        }
+        // 杈撳叆鐨勬暟瀛楀皬鏁扮偣鍚庝袱浣嶄负"00"鐨勬儏鍐碉紝鍒欒鍦ㄦ渶鍚庤拷鍔犵壒娈婂瓧绗︼細鏁�
+        if (!(scale > 0)) {
+            sb.append(CN_FULL);
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        double money = 11901.1;
+        BigDecimal numberOfMoney = new BigDecimal(money);
+        String s = MoneyUtil.formatToCN(numberOfMoney);
+        System.out.println("浣犺緭鍏ョ殑閲戦涓猴細銆�" + money + "銆�   #--# [" + s.toString()
+                + "]");
+    }
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
index 46f4786..87f3c24 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
@@ -32,7 +32,6 @@
      *
      * @param page
      * @param param
-     * @throws Exception
      */
     @DataProvider
     public void pageInoutData(Page<InoutRecord> page, InoutParam param) {
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
index 6afd1cd..31715db 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -316,7 +316,7 @@
         </Property>
       </PropertyDef>
       <PropertyDef name="plateNum">
-        <Property name="label">杞︾墝鍙峰彿</Property>
+        <Property name="label">杞︾墝鍙�</Property>
       </PropertyDef>
       <PropertyDef name="foodVariety">
         <Property></Property>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
new file mode 100644
index 0000000..a6249d6
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
@@ -0,0 +1,920 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtQuery">
+      <Property name="creationType">com.fzzy.igds.data.InoutParam</Property>
+      <PropertyDef name="plateNum">
+        <Property name="label">杞︾墝鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property name="label">鍑哄叆搴撶被鍨�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鍑哄簱</Property>
+                <Property name="value">OUT</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍏ュ簱</Property>
+                <Property name="value">IN</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="settleTag">
+        <Property name="label">鏄惁缁撶畻</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鏈粨绠�</Property>
+                <Property name="value">N</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">宸茬粨绠�</Property>
+                <Property name="value">Y</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="label">寮�濮嬫椂闂�</Property>
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="label">鎴鏃堕棿</Property>
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.InoutRecord</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">鍗曟嵁鍙�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="progress">
+        <Property></Property>
+        <Property name="label">娴佺▼杩涘害</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;PROCESS_STATUS_&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="recordStatus">
+        <Property></Property>
+        <Property name="label">鏁版嵁鐘舵��</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;RECORD_STATUS&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="checkStatus">
+        <Property></Property>
+        <Property name="label">鎵︽牱缁撴灉</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;CHECK_STATUS&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="registerTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鐧昏鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="registerUser">
+        <Property></Property>
+        <Property name="label">鐧昏浜哄憳</Property>
+      </PropertyDef>
+      <PropertyDef name="userName">
+        <Property></Property>
+        <Property name="label">鎵胯繍浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="userId">
+        <Property></Property>
+        <Property name="label">韬唤璇佸彿</Property>
+      </PropertyDef>
+      <PropertyDef name="userContact">
+        <Property></Property>
+        <Property name="label">鑱旂郴鏂瑰紡</Property>
+      </PropertyDef>
+      <PropertyDef name="userAddress">
+        <Property></Property>
+        <Property name="label">鎵胯繍浜哄湴鍧�</Property>
+      </PropertyDef>
+      <PropertyDef name="plateNum">
+        <Property></Property>
+        <Property name="label">杞︾墝鍙�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="customerName">
+        <Property></Property>
+        <Property name="label">寰�鏉ュ崟浣�</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocation">
+        <Property></Property>
+        <Property name="label">绮浜у湴</Property>
+      </PropertyDef>
+      <PropertyDef name="foodYear">
+        <Property></Property>
+        <Property name="label">绮骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="deOther">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎵i噸</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">婊¤溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">婊¤溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightUser">
+        <Property></Property>
+        <Property name="label">婊¤溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">绌鸿溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">绌鸿溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightUser">
+        <Property></Property>
+        <Property name="label">绌鸿溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="netWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍑�閲�</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="settleWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻鍑�閲�</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="recordWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍏ュ簱閲嶉噺</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="handleStart">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="handleEnd">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨缁撴潫鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="handleUser">
+        <Property></Property>
+        <Property name="label">鍊间粨鎿嶄綔浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="completeTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="completeUser">
+        <Property></Property>
+        <Property name="label">瀹屾垚纭浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="remarks">
+        <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#getAllData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="depotId">
+        <Property></Property>
+        <Property name="label">瑁呭嵏浠撳簱</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property name="label">鍑哄叆搴撶被鍨�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鍑哄簱</Property>
+                <Property name="value">OUT</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍏ュ簱</Property>
+                <Property name="value">IN</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodLevel">
+        <Property></Property>
+        <Property name="label">绮绛夌骇</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerFoodLevel&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="checkUser">
+        <Property></Property>
+        <Property name="label">璐ㄦ浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="price">
+        <Property name="dataType">double</Property>
+        <Property name="label">绮瀹氫环</Property>
+        <Property name="displayFormat">0.00 鍏�/鍏枻</Property>
+      </PropertyDef>
+      <PropertyDef name="noticeId">
+        <Property></Property>
+        <Property name="label">閫氱煡鍗曠紪鐮�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocationId">
+        <Property></Property>
+        <Property name="label">浜у湴鍚嶇О浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="checkTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">璐ㄦ鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="perWet">
+        <Property name="dataType">Double</Property>
+        <Property name="label">姘村垎</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="perImpurity">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鏉傝川</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="settleMoney">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻閲戦</Property>
+        <Property name="displayFormat">0.00 鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="settleTag">
+        <Property></Property>
+        <Property name="label">鏄惁缁撶畻</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鏈粨绠�</Property>
+                <Property name="value">N</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">宸茬粨绠�</Property>
+                <Property name="value">Y</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="settleTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">缁撶畻鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">var deptId = window.parent.DEPT_ID;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+//榛樿鏌ヨ鏌ヨ鎻愭潯浠�&#xD;
+view.get(&quot;#dsQuery&quot;).insert({&#xD;
+    deptId:deptId&#xD;
+});&#xD;
+/**&#xD;
+ * 鏌ヨ&#xD;
+ */&#xD;
+query = function(){&#xD;
+    var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
+    view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
+}&#xD;
+query();&#xD;
+
+/**&#xD;
+* 鑷姩璁$畻&#xD;
+* @param name&#xD;
+*/&#xD;
+payMoney = function () {&#xD;
+    &#xD;
+    var curData = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+    var price = curData.get(&quot;price&quot;);&#xD;
+    var settleWeight = curData.get(&quot;settleWeight&quot;);&#xD;
+
+    var settleMoney = Number(price)*Number(settleWeight);&#xD;
+    &#xD;
+    curData.set(&quot;settleMoney&quot;, settleMoney);&#xD;
+};&#xD;
+//鎵撳嵃缁撶畻鍗�&#xD;
+printPay = function () {&#xD;
+    var data = view.get(&quot;#dataGridSettle&quot;).get(&quot;selection&quot;);&#xD;
+    if (!data) return;&#xD;
+        if (&quot;DEL&quot; == data.get(&quot;recordStatus&quot;)) {&#xD;
+        $alert(&quot;寮傚父澶勭悊鐨勪俊鎭笉鏀寔鎵撳嵃锛�&quot;);&#xD;
+        return;&#xD;
+    }&#xD;
+    if (&quot;RECORD&quot; != data.get(&quot;progress&quot;)) {&#xD;
+        $alert(&quot;娴佺▼鏈畬鎴愪笉鏀寔鎵撳嵃锛�&quot;);&#xD;
+        return;&#xD;
+    }&#xD;
+    if (&quot;N&quot; == data.get(&quot;settleTag&quot;)) {&#xD;
+        $alert(&quot;鏈粨绠楃殑鏁版嵁涓嶆敮鎸佹墦鍗帮紒&quot;);&#xD;
+        return;&#xD;
+    }&#xD;
+    view.get(&quot;#ajaxPrint&quot;).set(&quot;parameter&quot;, data).execute(function (result) {&#xD;
+        printBill(result);&#xD;
+    });&#xD;
+};&#xD;
+/**&#xD;
+* 鎵撳嵃&#xD;
+*/&#xD;
+printBill = function (htmlStr) {&#xD;
+    var LODOP = CLODOP;&#xD;
+    LODOP.PRINT_INIT(&quot;绉伴噸鍗�&quot;);&#xD;
+    LODOP.SET_PRINT_PAGESIZE(1, 2100, 1400, &quot;A4&quot;);&#xD;
+    LODOP.ADD_PRINT_HTM(0, 0, &quot;100%&quot;, &quot;100%&quot;, htmlStr);&#xD;
+    LODOP.PREVIEW();&#xD;
+};&#xD;
+</ClientEvent>
+    <Property name="packages">font-awesome,css-common</Property>
+    <Property name="javaScriptFile">./static/js/plugins/lodop/LodopFuncs.js</Property>
+    <DataSet id="dsMain">
+      <Property name="dataProvider">inoutSettlePR#pageInoutSettleData</Property>
+      <Property name="pageSize">20</Property>
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="loadMode">manual</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <Property name="dataType">dtQuery</Property>
+    </DataSet>
+    <Container>
+      <Property name="className">c-param</Property>
+      <AutoForm>
+        <Property name="cols">*,*,*,*,90,90</Property>
+        <Property name="dataSet">dsQuery</Property>
+        <Property name="labelAlign">right</Property>
+        <Property name="labelWidth">100</Property>
+        <AutoFormElement>
+          <Property name="name">type</Property>
+          <Property name="property">type</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">settleTag</Property>
+          <Property name="property">settleTag</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">start</Property>
+          <Property name="property">start</Property>
+          <Property name="trigger">defaultDateDropDown</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">end</Property>
+          <Property name="property">end</Property>
+          <Property name="trigger">defaultDateDropDown</Property>
+          <Editor/>
+        </AutoFormElement>
+        <Button>
+          <ClientEvent name="onClick">query();&#xD;</ClientEvent>
+          <Property name="caption">鎼滅储</Property>
+          <Property name="iconClass">fa fa-search</Property>
+          <Property name="exClassName">btn-q1</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var deptId = window.parent.DEPT_ID;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+view.get(&quot;#dsQuery&quot;).setData({deptId:deptId});</ClientEvent>
+          <Property name="caption">閲嶇疆</Property>
+          <Property name="exClassName">btn-q2</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+        </Button>
+      </AutoForm>
+    </Container>
+    <Container>
+      <Property name="className">c-data</Property>
+      <ToolBar>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridSettle&quot;).get(&quot;selection&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#dialogMain&quot;).show();&#xD;
+            }else{&#xD;
+            $notify(&quot;璇烽�夋嫨闇�瑕佺粨绠楃殑淇℃伅鈥︹��&quot;);&#xD;
+            }</ClientEvent>
+          <Property name="caption">缁撶畻</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-plus</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridSettle&quot;).get(&quot;selection&quot;);&#xD;
+if(data){&#xD;
+    view.get(&quot;#dialogMain&quot;).show();&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑淇℃伅鈥︹��&quot;);&#xD;
+}</ClientEvent>
+          <Property name="caption">鏌ョ湅</Property>
+          <Property name="exClassName">btn2</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-pencil-square-o</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridSettle&quot;).get(&quot;selection&quot;);&#xD;
+            if (!data) {&#xD;
+            $alert(&quot;璇峰厛閫夋嫨鏁版嵁锛�&quot;);&#xD;
+            return;&#xD;
+            }&#xD;
+            &#xD;
+            printPay();&#xD;
+          </ClientEvent>
+          <Property name="caption">鎵撳嵃缁撶畻鍗�</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-print</Property>
+          <Property name="width">120</Property>
+        </ToolBarButton>
+      </ToolBar>
+      <DataGrid id="dataGridSettle" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridSettle&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="selectionMode">singleRow</Property>
+        <Property name="readOnly">true</Property>
+        <RowSelectorColumn/>
+        <RowNumColumn>
+          <Property name="width">50</Property>
+        </RowNumColumn>
+        <DataColumn name="id">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.dom.style.color = &quot;#f67d06&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">id</Property>
+          <Property name="align">center</Property>
+          <Property name="width">150</Property>
+        </DataColumn>
+        <DataColumn name="type">
+          <Property name="property">type</Property>
+          <Property name="align">center</Property>
+          <Property name="width">90</Property>
+        </DataColumn>
+        <DataColumn name="plateNum">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">plateNum</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">customerName</Property>
+          <Property name="name">customerName</Property>
+          <Property name="align">center</Property>
+          <Property name="caption">寰�鏉ュ崟浣�</Property>
+        </DataColumn>
+        <DataColumn name="depotId">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">depotId</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="foodVariety">
+          <Property name="property">foodVariety</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="settleTag">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">settleTag</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="settleWeight">
+          <Property name="property">settleWeight</Property>
+          <Property name="align">center</Property>
+        </DataColumn>
+        <DataColumn name="price">
+          <Property name="property">price</Property>
+          <Property name="caption">鍗曚环</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="settleMoney">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">settleMoney</Property>
+          <Property name="align">center</Property>
+          <Property name="width">150</Property>
+        </DataColumn>
+        <DataColumn name="settleTime">
+          <Property name="property">settleTime</Property>
+          <Property name="align">center</Property>
+          <Property name="width">180</Property>
+        </DataColumn>
+      </DataGrid>
+      <ToolBar layoutConstraint="bottom">
+        <Fill/>
+        <DataPilot layoutConstraint="right">
+          <Property name="itemCodes">pageSize,pages</Property>
+          <Property name="dataSet">dsMain</Property>
+        </DataPilot>
+      </ToolBar>
+    </Container>
+    <Dialog id="dialogMain" layout="regionPadding:8">
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Property name="caption">缁撶畻淇℃伅</Property>
+      <Property name="width">1200</Property>
+      <Property name="showCaptionBar">false</Property>
+      <Buttons>
+        <Button id="btnOK">
+          <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;#uaSave&quot;).execute(function(result){&#xD;
+            if(result){&#xD;
+            $alert(result);&#xD;
+            return;&#xD;
+            }&#xD;
+            $notify(&quot;鏁版嵁鎵ц瀹屾垚锛侊紒&quot;);&#xD;
+            self.get(&quot;parent&quot;).hide();&#xD;
+            });</ClientEvent>
+          <Property name="caption">纭畾淇濆瓨</Property>
+          <Property name="iconClass">fa fa-check-circle</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">120</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">self.get(&quot;parent&quot;).close();</ClientEvent>
+          <Property name="caption">鍙栨秷鎿嶄綔</Property>
+          <Property name="exClassName">btn3</Property>
+          <Property name="iconClass">fa fa-times-circle</Property>
+          <Property name="width">120</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <FieldSet layout="padding:5">
+          <Property name="caption">鍩烘湰淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement>
+                <Property name="name">id</Property>
+                <Property name="property">id</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">plateNum</Property>
+                <Property name="property">plateNum</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">depotId</Property>
+                <Property name="property">depotId</Property>
+                <Property name="readOnly">true</Property>
+                <Property name="label">瑁呭嵏浠撳簱</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodVariety</Property>
+                <Property name="property">foodVariety</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">perWet</Property>
+                <Property name="property">perWet</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">perImpurity</Property>
+                <Property name="property">perImpurity</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodLocation</Property>
+                <Property name="property">foodLocation</Property>
+                <Property name="trigger">ddDicArea</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="label">瀹㈡埛鍚嶇О</Property>
+                <Property name="property">customerName</Property>
+                <Property name="editable">false</Property>
+                <Property name="trigger">ddNotice</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="padding:5">
+          <Property name="caption">閲嶉噺淇℃伅锛堝崟浣嶏細KG锛�</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,50,*,50,*,50</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelWidth">100</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">fullWeight</Property>
+                <Property name="property">fullWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">emptyWeight</Property>
+                <Property name="property">emptyWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">netWeight</Property>
+                <Property name="property">netWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">deOther</Property>
+                <Property name="property">deOther</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">settleWeight</Property>
+                <Property name="property">settleWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="padding:5">
+          <Property name="caption">缁撶畻淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <Property name="labelWidth">100</Property>
+              <AutoFormElement>
+                <ClientEvent name="onBlur">payMoney();</ClientEvent>
+                <Property name="name">price</Property>
+                <Property name="property">price</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">settleMoney</Property>
+                <Property name="property">settleMoney</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">settleTime</Property>
+                <Property name="property">settleTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:3">
+                <Property name="name">remarks</Property>
+                <Property name="property">remarks</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="uaSave">
+      <Property name="dataResolver">inoutSettlePR#saveSettle</Property>
+      <UpdateItem>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="validateData">false</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxPrint">
+      <Property name="service">inoutSettlePR#printPay</Property>
+      <Property name="executingMessage">姝e湪鎵ц鎵撳嵃鈥︹��</Property>
+      <Property name="async">false</Property>
+    </AjaxAction>
+    <CustomDropDown id="ddNotice">
+      <Property name="minHeight">400</Property>
+      <Property name="assignmentMap">noticeId=id,customerName=customerName</Property>
+      <Property name="minWidth">1000</Property>
+      <Property name="autoOpen">true</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsNotice">
+          <Property name="dataProvider">inoutNoticePR#queryNoticeByKey</Property>
+          <Property name="parameter">
+            <Entity>
+              <Property name="type">${request.getParameter('type')}</Property>
+            </Entity>
+          </Property>
+          <Property name="dataType">[dtNoticeDto]</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;
+              var type = &quot;${request.getParameter('type')}&quot;;&#xD;
+              view.get(&quot;#dsNotice&quot;).set(&quot;parameter&quot;,{key: key,type: type}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="exClassName">btn1</Property>
+            <Property name="iconClass">fa fa-search</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+              if(data){&#xD;
+              view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+              }</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+            }</ClientEvent>
+          <Property name="dataSet">dsNotice</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+            <Property name="align">center</Property>
+            <Property name="width">100</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">customerName</Property>
+            <Property name="align">center</Property>
+            <Property name="name">customerName</Property>
+            <Property name="width">240</Property>
+          </DataColumn>
+          <DataColumn name="foodVariety">
+            <Property name="property">foodVariety</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="year">
+            <Property name="property">year</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="contract">
+            <Property name="property">contract</Property>
+            <Property name="align">center</Property>
+            <Property name="width">300</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="ddDicArea">
+      <Property name="minHeight">500</Property>
+      <Property name="minWidth">500</Property>
+      <Property name="assignmentMap">foodLocation=name,foodLocationId=code</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsDicArea">
+          <Property name="dataProvider">dicAreaPR#pageList</Property>
+          <Property name="parameter"></Property>
+          <Property name="dataType">[dtArea]</Property>
+          <Property name="pageSize">1000</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key2">
+            <Property name="blankText"> -鍚嶇О鎴栫畝鎷硷紝鍖椾含甯�  bjs -</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
+              view.get(&quot;#dsDicArea&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="exClassName">btn1</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+              if(data){&#xD;
+              view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+              }</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+            }</ClientEvent>
+          <Property name="dataSet">dsDicArea</Property>
+          <Property name="readOnly">true</Property>
+          <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="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="simple">
+            <Property name="property">simple</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </DataGrid>
+        <DataPilot layoutConstraint="bottom">
+          <Property name="dataSet">dsDicArea</Property>
+        </DataPilot>
+      </Container>
+    </CustomDropDown>
+    <YearDropDown id="yearDropDown"/>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java
new file mode 100644
index 0000000..250178e
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java
@@ -0,0 +1,83 @@
+package com.fzzy.igds;
+
+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.igds.constant.Constant;
+import com.fzzy.igds.data.InoutParam;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.service.InoutRecordService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撶粨绠�
+ * @Author CZT
+ * @Date 2025/12/8 10:24
+ */
+@Component
+public class InoutSettlePR {
+
+    @Resource
+    private InoutRecordService inoutRecordService;
+
+    /**
+     * 鏌ヨ寰呯粨绠楃殑鏁版嵁
+     * inoutSettlePR#pageInoutSettleData
+     *
+     * @param page
+     * @param param
+     */
+    @DataProvider
+    public void pageInoutSettleData(Page<InoutRecord> page, InoutParam param) {
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutRecord> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
+
+        if(null == param) {
+            param = new InoutParam();
+        }
+        inoutRecordService.listPageInout(corePage, param);
+
+        // 閲嶆柊灏佽
+        page.setEntities(corePage.getRecords());
+        page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
+    }
+
+    /**
+     * 淇敼鏁版嵁 inoutSettlePR#saveSettle
+     */
+    @DataResolver
+    public String saveSettle(InoutRecord data) {
+        if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
+            return "绯荤粺锛氬凡缁忓垹闄ょ殑鏁版嵁涓嶆敮鎸佷慨鏀癸紒";
+        }
+        if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
+            return "绯荤粺锛氭湭缁撴潫娴佺▼鐨勬暟鎹笉鏀寔淇敼锛�";
+        }
+        if(data.getSettleMoney() > 0){
+            data.setSettleTag(Constant.YN_Y);
+            data.setSettleTime(new Date());
+        }
+        int i = inoutRecordService.updateInoutRecord(data);
+        if (i > 0) {
+            return null;
+        } else {
+            return "淇濆瓨澶辫触锛�";
+        }
+    }
+
+    /**
+     * inoutDataPR#printPay 鑾峰彇缁撶畻鎵撳嵃鍗曚俊鎭�
+     *
+     * @param data
+     * @return
+     */
+    @Expose
+    public String printPay(InoutRecord data) {
+
+        return inoutRecordService.printPay(data);
+
+    }
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
new file mode 100644
index 0000000..3e8a2e8
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
@@ -0,0 +1,1203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtSecCameraParam">
+      <Property name="creationType">com.fzzy.igds.domain.Camera</Property>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鐩戞帶鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="brand">
+        <Property></Property>
+        <Property name="label">鐩戞帶鍝佺墝</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;CAMERA_BRAND&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="spjklx">
+        <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="key">1</Property>
+                <Property name="value">1-浠撳唴</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">2</Property>
+                <Property name="value">2-涓氬姟绫�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">3</Property>
+                <Property name="value">3-瀹夐槻绫�</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="spdwlx">
+        <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="key">1</Property>
+                <Property name="value">1-鍑哄叆鍙�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">2</Property>
+                <Property name="value">2-鎵︽牱鏈�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">3</Property>
+                <Property name="value">3-鍖栭獙瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">4</Property>
+                <Property name="value">4-缁撶畻瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">5</Property>
+                <Property name="value">5-鍦扮瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">6</Property>
+                <Property name="value">6-搴撳尯涓诲共閬�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">7</Property>
+                <Property name="value">7-浠撻棿鐩戞帶</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">8</Property>
+                <Property name="value">8-浠撳唴</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">9</Property>
+                <Property name="value">9-鑽搧鎴垮唴澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">10</Property>
+                <Property name="value">10-鍣ㄦ潗瀹ゅ唴澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">11</Property>
+                <Property name="value">11-鍒堕珮鐐�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">12</Property>
+                <Property name="value">12-娌瑰簱缃愬尯</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">13</Property>
+                <Property name="value">13-鏀跺彂娌硅澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">14</Property>
+                <Property name="value">14-娉垫埧</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">15</Property>
+                <Property name="value">15-娌瑰簱涓昏杈撻�佺閬�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">16</Property>
+                <Property name="value">16-鍛ㄧ晫</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtSecCamera">
+      <Property name="creationType">com.fzzy.igds.domain.Camera</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <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#getAllData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鐩戞帶鍚嶇О</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property></Property>
+        <Property name="label">璁惧绫诲瀷</Property>
+        <Property name="required">true</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="code">01</Property>
+                <Property name="name">01-鏋満</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">02</Property>
+                <Property name="name">02-鐞冩満</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">03</Property>
+                <Property name="name">03-鍗婄悆</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">09</Property>
+                <Property name="name">09-鍏朵粬</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="brand">
+        <Property></Property>
+        <Property name="label">璁惧鍝佺墝</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;CAMERA_BRAND&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="sn">
+        <Property></Property>
+        <Property name="label">搴忓垪鍙�</Property>
+      </PropertyDef>
+      <PropertyDef name="sort">
+        <Property name="label">閰嶅搴忓彿</Property>
+        <Property name="required">true</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="code">1</Property>
+                <Property name="name">閰嶅搴忓彿#1</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">2</Property>
+                <Property name="name">閰嶅搴忓彿#2</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="playType">
+        <Property></Property>
+        <Property name="label">鎾斁鏂瑰紡</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerPlayType&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="loginId">
+        <Property></Property>
+        <Property name="label">甯愬彿</Property>
+      </PropertyDef>
+      <PropertyDef name="pwd">
+        <Property></Property>
+        <Property name="label">瀵嗙爜</Property>
+      </PropertyDef>
+      <PropertyDef name="ip">
+        <Property></Property>
+        <Property name="label">IP鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="controlPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">鎺у埗绔彛</Property>
+        <Property name="defaultValue">554</Property>
+      </PropertyDef>
+      <PropertyDef name="webPort">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">WEB绔彛</Property>
+        <Property name="defaultValue">80</Property>
+      </PropertyDef>
+      <PropertyDef name="chanNum">
+        <Property name="dataType">Integer</Property>
+        <Property name="label">閫氶亾鍙�</Property>
+        <Property name="defaultValue">1</Property>
+      </PropertyDef>
+      <PropertyDef name="urlIn">
+        <Property></Property>
+        <Property name="label">鍐呯綉鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="urlOut">
+        <Property></Property>
+        <Property name="label">澶栫綉鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="mediaAddr">
+        <Property></Property>
+        <Property name="label">RTSP鍦板潃</Property>
+      </PropertyDef>
+      <PropertyDef name="snapType">
+        <Property></Property>
+        <Property name="label">鎶撴媿鏂瑰紡</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerSnapType&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="spjklx">
+        <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="key">1</Property>
+                <Property name="value">1-浠撳唴</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">2</Property>
+                <Property name="value">2-涓氬姟绫�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">3</Property>
+                <Property name="value">3-瀹夐槻绫�</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="spdwlx">
+        <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="key">1</Property>
+                <Property name="value">1-鍑哄叆鍙�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">2</Property>
+                <Property name="value">2-鎵︽牱鏈�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">3</Property>
+                <Property name="value">3-鍖栭獙瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">4</Property>
+                <Property name="value">4-缁撶畻瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">5</Property>
+                <Property name="value">5-鍦扮瀹�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">6</Property>
+                <Property name="value">6-搴撳尯涓诲共閬�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">7</Property>
+                <Property name="value">7-浠撻棿鐩戞帶</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">8</Property>
+                <Property name="value">8-浠撳唴</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">9</Property>
+                <Property name="value">9-鑽搧鎴垮唴澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">10</Property>
+                <Property name="value">10-鍣ㄦ潗瀹ゅ唴澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">11</Property>
+                <Property name="value">11-鍒堕珮鐐�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">12</Property>
+                <Property name="value">12-娌瑰簱缃愬尯</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">13</Property>
+                <Property name="value">13-鏀跺彂娌硅澶�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">14</Property>
+                <Property name="value">14-娉垫埧</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">15</Property>
+                <Property name="value">15-娌瑰簱涓昏杈撻�佺閬�</Property>
+              </Entity>
+              <Entity>
+                <Property name="key">16</Property>
+                <Property name="value">16-鍛ㄧ晫</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="posX">
+        <Property></Property>
+        <Property name="label">鍧愭爣X</Property>
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="posY">
+        <Property></Property>
+        <Property name="label">鍧愭爣Y</Property>
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="screenShow">
+        <Property></Property>
+        <Property name="label">澶у睆鏄剧ず</Property>
+        <Property name="required">false</Property>
+        <Property name="defaultValue">N</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="code">Y</Property>
+                <Property name="name">灞曠ず</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">N</Property>
+                <Property name="name">涓嶅睍绀�</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="phoneShowTag">
+        <Property></Property>
+        <Property name="label">APP鏄剧ず</Property>
+        <Property name="defaultValue">N</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="code">Y</Property>
+                <Property name="name">灞曠ず</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">N</Property>
+                <Property name="name">涓嶅睍绀�</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="orderNum">
+        <Property></Property>
+        <Property name="label">鏄剧ず椤哄簭</Property>
+        <Property name="dataType">Integer</Property>
+      </PropertyDef>
+      <PropertyDef name="vld">
+        <Property></Property>
+        <Property name="label">鏄惁浣跨敤</Property>
+        <Property name="defaultValue">Y</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="code">Y</Property>
+                <Property name="name">鍚敤</Property>
+              </Entity>
+              <Entity>
+                <Property name="code">N</Property>
+                <Property name="name">绂佺敤</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onClick">&#xD;
+/**&#xD;
+ * 鏌ヨ&#xD;
+ */&#xD;
+query = function(){&#xD;
+    view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+}&#xD;
+/**&#xD;
+ * 璁块棶&#xD;
+ */&#xD;
+showWeb = function(){&#xD;
+	var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+	if(!cur.get(&quot;ip&quot;)){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆璁块棶IP锛屾棤娉曡闂��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if(!cur.get(&quot;webPort&quot;)){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆璁块棶绔彛锛屾棤娉曡闂��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	var url = &quot;http://&quot;+cur.get(&quot;ip&quot;)+&quot;:&quot;+cur.get(&quot;webPort&quot;);&#xD;
+	window.open(url);&#xD;
+};&#xD;
+&#xD;
+/**&#xD;
+ * 棰勮&#xD;
+ */&#xD;
+showVideo = function(){&#xD;
+	var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+	var playType = cur.get(&quot;playType&quot;);&#xD;
+	&#xD;
+	if(!playType){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆鎾斁鏂瑰紡锛屾棤娉曢瑙堛��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if(!cur.get(&quot;ip&quot;)){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆鍐呴儴璁块棶IP锛屾棤娉曡闂��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if(!cur.get(&quot;controlPort&quot;)){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆鍐呴儴鎺у埗绔彛锛屾棤娉曡闂��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if(!cur.get(&quot;loginId&quot;)){&#xD;
+		$alert(&quot;娌℃湁閰嶇疆鐢ㄦ埛鍚嶏紝鏃犳硶璁块棶銆�&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if (!cur.get(&quot;pwd&quot;)) {&#xD;
+		$alert(&quot;娌℃湁閰嶇疆瀵嗙爜锛屾棤娉曡闂��&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	&#xD;
+	var url = &quot;./basic/security/video-play?cameraId=&quot;+cur.get(&quot;id&quot;)+&quot;&amp;playType=&quot;+playType+&quot;&amp;time=&quot;+ new Date().getTime();&#xD;
+	&#xD;
+	view.get(&quot;#iFrameVideo&quot;).set(&quot;path&quot;,url);&#xD;
+	view.get(&quot;#dialogVideo&quot;).show();&#xD;
+};&#xD;
+</ClientEvent>
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="loadMode">lazy</Property>
+      <Property name="dataProvider">secCameraPR#listPageCamera</Property>
+      <Property name="pageSize">20</Property>
+      <Property name="dataType">[dtSecCamera]</Property>
+    </DataSet>
+    <DataSet id="dsParam">
+      <ClientEvent name="onReady">self.insert({});</ClientEvent>
+      <Property name="dataType">dtSecCameraParam</Property>
+    </DataSet>
+    <Container>
+      <Property name="className">c-param</Property>
+      <AutoForm>
+        <Property name="cols">*,*,*,*,90,90</Property>
+        <Property name="dataSet">dsParam</Property>
+        <Property name="labelAlign">right</Property>
+        <Property name="labelWidth">100</Property>
+        <AutoFormElement>
+          <Property name="name">name</Property>
+          <Property name="property">name</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">brand</Property>
+          <Property name="property">brand</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">spjklx</Property>
+          <Property name="property">spjklx</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">spdwlx</Property>
+          <Property name="property">spdwlx</Property>
+          <Editor/>
+        </AutoFormElement>
+        <Button>
+          <ClientEvent name="onClick">var param = view.get(&quot;#dsParam.data&quot;);&#xD;
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,param).flushAsync();</ClientEvent>
+          <Property name="caption">鎼滅储</Property>
+          <Property name="iconClass">fa fa-search</Property>
+          <Property name="exClassName">btn-q1</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">view.get(&quot;#dsParam&quot;).setData({});</ClientEvent>
+          <Property name="caption">閲嶇疆</Property>
+          <Property name="exClassName">btn-q2</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+        </Button>
+      </AutoForm>
+    </Container>
+    <Container>
+      <Property name="className">c-data</Property>
+      <ToolBar>
+        <ToolBarButton>
+          <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+            view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+          <Property name="caption">鏂板</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-plus</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridCamera&quot;).get(&quot;selection&quot;);&#xD;
+if(data){&#xD;
+    view.get(&quot;#dialogMain&quot;).show();&#xD;
+}else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑鐩戞帶淇℃伅鈥︹��&quot;);&#xD;
+}</ClientEvent>
+          <Property name="caption">淇敼</Property>
+          <Property name="exClassName">btn2</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-pencil-square-o</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var select = view.get(&quot;#dataGridCamera&quot;).get(&quot;selection&quot;);&#xD;
+if(select){&#xD;
+    view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+        if(result){&#xD;
+            $alert(result);&#xD;
+        }else{&#xD;
+            query();&#xD;
+        }&#xD;
+    });
+ }else{&#xD;
+    $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑鐩戞帶淇℃伅鈥︹��&quot;);&#xD;
+}</ClientEvent>
+          <Property name="caption">鍒犻櫎</Property>
+          <Property name="exClassName">btn3</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-times</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <Property name="caption">鍒锋柊缂撳瓨</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+          <Property name="width">100</Property>
+          <Property name="action">refreshCache</Property>
+        </ToolBarButton>
+      </ToolBar>
+      <DataGrid id="dataGridCamera" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridCamera&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="selectionMode">singleRow</Property>
+        <Property name="readOnly">true</Property>
+        <RowSelectorColumn/>
+        <RowNumColumn>
+          <Property name="width">50</Property>
+        </RowNumColumn>
+        <DataColumn name="name">
+          <Property name="property">name</Property>
+        </DataColumn>
+        <DataColumn name="type">
+          <Property name="property">type</Property>
+          <Property name="align">center</Property>
+          <Property name="width">90</Property>
+        </DataColumn>
+        <DataColumn name="spjklx">
+          <Property name="property">spjklx</Property>
+          <Property name="align">center</Property>
+          <Property name="width">90</Property>
+        </DataColumn>
+        <DataColumn name="spdwlx">
+          <Property name="property">spdwlx</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">playType</Property>
+          <Property name="align">center</Property>
+          <Property name="name">playType</Property>
+          <Property name="width">160</Property>
+        </DataColumn>
+        <DataColumn>
+          <Property name="property">snapType</Property>
+          <Property name="align">center</Property>
+          <Property name="name">snapType</Property>
+          <Property name="width">160</Property>
+        </DataColumn>
+        <DataColumn name="ip">
+          <Property name="property">ip</Property>
+          <Property name="align">center</Property>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="controlPort">
+          <Property name="property">controlPort</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="chanNum">
+          <Property name="property">chanNum</Property>
+          <Property name="align">center</Property>
+          <Property name="width">80</Property>
+        </DataColumn>
+        <DataColumn name="brand">
+          <Property name="property">brand</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="updateTime">
+          <Property name="property">updateTime</Property>
+          <Property name="align">center</Property>
+          <Property name="width">160</Property>
+        </DataColumn>
+        <DataColumn>
+          <ClientEvent name="onRenderCell">arg.dom.innerHTML = &quot;&lt;a href='javascript:;' onClick='showVideo()' class='a-btn1'>棰勮&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a href='javascript:;' onClick='showWeb()' class='a-btn3'>璁块棶&lt;/a>&quot;;</ClientEvent>
+          <Property name="width">160</Property>
+          <Property name="caption">鎿嶄綔</Property>
+          <Property name="align">center</Property>
+          <Editor/>
+        </DataColumn>
+      </DataGrid>
+      <ToolBar layoutConstraint="bottom">
+        <Fill/>
+        <DataPilot layoutConstraint="right">
+          <Property name="itemCodes">pageSize,pages</Property>
+          <Property name="dataSet">dsMain</Property>
+        </DataPilot>
+      </ToolBar>
+    </Container>
+    <Dialog id="dialogMain" layout="regionPadding:8">
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Property name="width">1200</Property>
+      <Property name="caption">鐩戞帶淇℃伅</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(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+    query();&#xD;
+});</ClientEvent>
+          <Property name="caption">淇濆瓨</Property>
+          <Property name="iconClass">fa fa-check-circle</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">120</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+            if(cur) cur.cancel();&#xD;
+            self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="exClassName">btn3</Property>
+          <Property name="iconClass">fa fa-times-circle</Property>
+          <Property name="width">120</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <FieldSet layout="padding:5">
+          <Property name="caption">鍩烘湰淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*,*</Property>
+              <Property name="labelWidth">100</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <AutoFormElement>
+                <Property name="name">name</Property>
+                <Property name="property">name</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">type</Property>
+                <Property name="property">type</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">brand</Property>
+                <Property name="property">brand</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">deptId</Property>
+                <Property name="property">deptId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">loginId</Property>
+                <Property name="property">loginId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">pwd</Property>
+                <Property name="property">pwd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">chanNum</Property>
+                <Property name="property">chanNum</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">spjklx</Property>
+                <Property name="property">spjklx</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ip</Property>
+                <Property name="property">ip</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">controlPort</Property>
+                <Property name="property">controlPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">webPort</Property>
+                <Property name="property">webPort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">spdwlx</Property>
+                <Property name="property">spdwlx</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sort</Property>
+                <Property name="property">sort</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">screenShow</Property>
+                <Property name="property">screenShow</Property>
+                <Editor>
+                  <RadioGroup>
+                    <RadioButton>
+                      <Property name="text">灞曠ず</Property>
+                      <Property name="value">Y</Property>
+                    </RadioButton>
+                    <RadioButton>
+                      <Property name="text">涓嶅睍绀�</Property>
+                      <Property name="value">N</Property>
+                    </RadioButton>
+                  </RadioGroup>
+                </Editor>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">phoneShowTag</Property>
+                <Property name="property">phoneShowTag</Property>
+                <Editor>
+                  <RadioGroup>
+                    <RadioButton>
+                      <Property name="text">灞曠ず</Property>
+                      <Property name="value">Y</Property>
+                    </RadioButton>
+                    <RadioButton>
+                      <Property name="text">涓嶅睍绀�</Property>
+                      <Property name="value">N</Property>
+                    </RadioButton>
+                  </RadioGroup>
+                </Editor>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="padding:5">
+          <Property name="caption">鎾斁閰嶇疆</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*,*,*</Property>
+              <Property name="labelWidth">100</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">playType</Property>
+                <Property name="property">playType</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:3">
+                <Property name="name">urlIn</Property>
+                <Property name="property">urlIn</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">snapType</Property>
+                <Property name="property">snapType</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:3">
+                <Property name="name">urlOut</Property>
+                <Property name="property">urlOut</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">sn</Property>
+                <Property name="property">sn</Property>
+                <Editor>
+                  <TextEditor id="sn">
+                    <Property name="blankText"> -- 娴佸獟浣撳钩鍙颁腑璁惧SN --</Property>
+                  </TextEditor>
+                </Editor>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:3">
+                <Property name="name">mediaAddr</Property>
+                <Property name="property">mediaAddr</Property>
+                <Property name="trigger">triggerMedia</Property>
+                <Editor>
+                  <TextEditor id="mediaAddr">
+                    <Property name="blankText"> -- 鐐瑰嚮鍙充晶閫夋嫨锛屾垨鑰呮墜鍔ㄥ~鍐� --</Property>
+                  </TextEditor>
+                </Editor>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="padding:5">
+          <Property name="caption">鍏朵粬淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*</Property>
+              <Property name="labelWidth">100</Property>
+              <Property name="labelAlign">right</Property>
+              <Property name="labelSeparator">锛�</Property>
+              <AutoFormElement>
+                <Property name="name">vld</Property>
+                <Property name="property">vld</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">orderNum</Property>
+                <Property name="property">orderNum</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">remark</Property>
+                <Property name="property">remark</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">createBy</Property>
+                <Property name="property">createBy</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">createTime</Property>
+                <Property name="property">createTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateBy</Property>
+                <Property name="property">updateBy</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">updateTime</Property>
+                <Property name="property">updateTime</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="uaAction">
+      <Property name="dataResolver">secCameraPR#saveCamera</Property>
+      <UpdateItem>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="dataPath">[#current]</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="confirmMessage">纭畾瑕佸垹闄ゅ悧锛�</Property>
+      <Property name="service">secCameraPR#delCamera</Property>
+    </AjaxAction>
+    <Dialog id="dialogVideo">
+      <Property name="width">1320</Property>
+      <Property name="caption">瑙嗛棰勮</Property>
+      <Property name="contentOverflow">hidden</Property>
+      <Property name="height">620</Property>
+      <Buttons/>
+      <Children>
+        <IFrame id="iFrameVideo" layoutConstraint="center"/>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <AjaxAction id="refreshCache">
+      <Property name="service">secCameraPR#refreshCache</Property>
+      <Property name="successMessage">缂撳瓨鏇存柊鎴愬姛锛�</Property>
+    </AjaxAction>
+    <Trigger id="triggerMedia">
+      <ClientEvent name="onExecute">view.get(&quot;#dialogMeidaSelect&quot;).show();&#xD;
+</ClientEvent>
+    </Trigger>
+    <Dialog id="dialogMeidaSelect" layout="vbox padding:10">
+      <Property name="width">650</Property>
+      <Property name="caption">娴佸獟浣撳湴鍧�閫夋嫨</Property>
+      <Buttons/>
+      <Children>
+        <Container>
+          <Label>
+            <Property name="text">娴峰悍RTSP锛堟棫鐗�-涓荤爜娴侊級</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text1">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/h264/ch{4}/main/av_stream</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text1.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">娴峰悍RTSP锛堟棫鐗�-瀛愮爜娴侊級</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text2">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/mpeg4/ch{4}/sub/av_stream</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text2.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">娴峰悍RTSP锛堟柊鐗�-涓荤爜娴侊級</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text3">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/Streaming/Channels/{4}01</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text3.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">娴峰悍RTSP锛堟柊鐗�-瀛愮爜娴侊級</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text4">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/Streaming/Channels/{4}02</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text4.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">澶у崕RTSP锛堜富鐮佹祦锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text5">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/cam/realmonitor?channel={4}&amp;subtype=0</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text5.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">澶у崕RTSP锛堣緟鐮佹祦锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text6">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/cam/realmonitor?channel={4}&amp;subtype=1</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text6.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">闆勮繄RTSP锛堜富鐮佹祦锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text7">
+            <Property name="text">rtsp://{2}:{3}/user={0}&amp;password={1}&amp;channel={4}&amp;stream=0.sdp?real_stream</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text7.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">闆勮繄RTSP锛堟鐮佹祦锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text8">
+            <Property name="text">rtsp://{2}:{3}/user={0}&amp;password={1}&amp;channel={4}&amp;stream=1.sdp?real_stream</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text8.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">涓夋槦RTSP锛堥珮鐮佺巼锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text9">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/onvif/profile2/media.smp</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text9.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">涓夋槦RTSP锛堜綆鐮佺巼锛�</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text10">
+            <Property name="text">rtsp://{0}:{1}@{2}:{3}/onvif/profile3/media.smp</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text10.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <Container>
+          <Label>
+            <Property name="text">瀹囪RTSP</Property>
+            <Property name="style">
+              <Property name="font-weight">bold</Property>
+            </Property>
+          </Label>
+          <Label id="text11">
+            <Property name="text">rtsp://{0}:{1}@{2}/media/video1/multicast</Property>
+          </Label>
+          <Button layoutConstraint="right">
+            <ClientEvent name="onClick">view.get(&quot;#mediaAddr&quot;).set(&quot;text&quot;,view.get(&quot;#text11.text&quot;));&#xD;
+view.get(&quot;#dialogMeidaSelect&quot;).hide();&#xD;
+</ClientEvent>
+            <Property name="caption">閫夋嫨</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-web/src/main/resources/templates/print/pay.html b/fzzy-igdss-web/src/main/resources/templates/print/pay.html
new file mode 100644
index 0000000..57a38a5
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/print/pay.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='zh-cn'>
+
+<head>
+    <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
+    <title>缁撶畻鍗�</title>
+    <style>
+        body {text-align: center;padding: 10px;font-family: '瀹嬩綋';}  .tit {font-size: 24px;flex-grow: 1;text-align: center;}  .div-tit {padding-top: 6px;}  table {width: 100%;border-right: 1px solid;border-bottom: 1px solid;font-size: 14px;border-collapse: collapse;}  table td {border-left: 1px solid;border-top: 1px solid;height: 32px;}  .sp1 {width: 33%;float: left;padding-bottom: 5px;}  .sp2 {width: 25%;float: left;text-align: center;}  .sp3 {width: 16.6%;float: left;text-align: center;}  .txt-left {text-align: left;}  .txt-center {text-align: center;}  .txt-right {text-align: right;}
+    </style>
+</head>
+
+<body>
+<h1 class='tit'><u>[billTitle]</u></h1>
+<div class='div-tit'><span class='sp1 txt-left'>搴撳尯鍚嶇О锛歔deptId]</span><span class='sp1 txt-center'>鍗曟嵁鍙�:[id]</span><span class='sp1 txt-right'>鎵撳嵃鏃堕棿锛歔payTime]</span></div>
+<table cellspacing='0' cellpadding='0'>
+    <tr>
+        <td>瀹㈡埛鍚嶇О</td>
+        <td colspan='7'>[customerName]</td>
+    </tr>
+    <tr>
+        <td width='12.5%'>鎵胯繍浜�</td>
+        <td width='37.5%' colspan='3'>[userName]</td>
+        <td width='12.5%'>鑱旂郴鐢佃瘽</td>
+        <td width='37.5%' colspan='3'>[userContact]</td>
+    </tr>
+    <tr>
+        <td>韬唤璇佸彿鐮�</td>
+        <td colspan='3'>[userId]</td>
+        <td>杞︾墝鍙�</td>
+        <td colspan='3'>[plateNum]</td>
+    </tr>
+    <tr>
+        <td>浠撳簱</td>
+        <td colspan='3'>[depotId]</td>
+        <td>绮鍚嶇О</td>
+        <td colspan='3'>[foodVariety]</td>
+    </tr>
+    <tr>
+        <td>澶囨敞</td>
+        <td colspan="7">[remark]</td>
+    </tr>
+    <tr>
+        <td colspan="8">璁¢噺淇℃伅</td>
+    </tr>
+    <tr>
+        <td>姣涢噸</td>
+        <td colspan='2'>[fullWeight]鍏枻</td>
+        <td>鐨噸</td>
+        <td colspan='2'>[emptyWeight]鍏枻</td>
+        <td>鎵i噸</td>
+        <td colspan='2'>[deOther]鍏枻</td>
+    </tr>
+    <tr>
+        <td colspan="8">缁撶畻淇℃伅</td>
+    </tr>
+    <tr>
+        <td>鍗曚环</td>
+        <td colspan='2'>[payPrice]鍏�/鍏枻</td>
+        <td>缁撶畻閲嶉噺</td>
+        <td colspan='2'>[settleWeight]鍏枻</td>
+        <td>缁撶畻閲戦</td>
+        <td colspan='2'>[payMoney]鍏�</td>
+    </tr>
+    <tr>
+        <td>澶у啓閲戦</td>
+        <td colspan="7">[payMoneyName]</td>
+    </tr>
+</table>
+<div class='div-tit'><span class='sp2 txt-left '>缁撶畻鍛橈細_______</span><span class='sp2 txt-left '>淇濈鍛橈細_______</span><span class='sp2 txt-left '>瀹℃牳浜猴細_______</span><span class='sp2 txt-left '>鎵胯繍浜猴細_______</span></div>
+</body>
+
+</html>
\ No newline at end of file

--
Gitblit v1.9.3