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("dicPR#sysDictData").getResult("PROCESS_STATUS_")}</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("dicPR#sysDictData").getResult("RECORD_STATUS")}</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("dicPR#sysDictData").getResult("CHECK_STATUS")}</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("deptPR#getAllData").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("dicPR#sysDictData").getResult("FOOD_VARIETY_")}</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("depotPR#getAllCache").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("dicPR#triggerFoodLevel").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;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�
+//榛樿鏌ヨ鏌ヨ鎻愭潯浠�
+view.get("#dsQuery").insert({
+ deptId:deptId
+});
+/**
+ * 鏌ヨ
+ */
+query = function(){
+ var data = view.get("#dsQuery.data");
+ view.get("#dsMain").set("parameter",data).flushAsync();
+}
+query();
+
+/**
+* 鑷姩璁$畻
+* @param name
+*/
+payMoney = function () {
+ 
+ var curData = view.get("#dsMain.data:#");
+ var price = curData.get("price");
+ var settleWeight = curData.get("settleWeight");
+
+ var settleMoney = Number(price)*Number(settleWeight);
+ 
+ curData.set("settleMoney", settleMoney);
+};
+//鎵撳嵃缁撶畻鍗�
+printPay = function () {
+ var data = view.get("#dataGridSettle").get("selection");
+ if (!data) return;
+ if ("DEL" == data.get("recordStatus")) {
+ $alert("寮傚父澶勭悊鐨勪俊鎭笉鏀寔鎵撳嵃锛�");
+ return;
+ }
+ if ("RECORD" != data.get("progress")) {
+ $alert("娴佺▼鏈畬鎴愪笉鏀寔鎵撳嵃锛�");
+ return;
+ }
+ if ("N" == data.get("settleTag")) {
+ $alert("鏈粨绠楃殑鏁版嵁涓嶆敮鎸佹墦鍗帮紒");
+ return;
+ }
+ view.get("#ajaxPrint").set("parameter", data).execute(function (result) {
+ printBill(result);
+ });
+};
+/**
+* 鎵撳嵃
+*/
+printBill = function (htmlStr) {
+ var LODOP = CLODOP;
+ LODOP.PRINT_INIT("绉伴噸鍗�");
+ LODOP.SET_PRINT_PAGESIZE(1, 2100, 1400, "A4");
+ LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
+ LODOP.PREVIEW();
+};
+</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();
</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;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�
+view.get("#dsQuery").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("#dataGridSettle").get("selection");
+ if(data){
+ view.get("#dialogMain").show();
+ }else{
+ $notify("璇烽�夋嫨闇�瑕佺粨绠楃殑淇℃伅鈥︹��");
+ }</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("#dataGridSettle").get("selection");
+if(data){
+ view.get("#dialogMain").show();
+}else{
+ $notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑淇℃伅鈥︹��");
+}</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("#dataGridSettle").get("selection");
+ if (!data) {
+ $alert("璇峰厛閫夋嫨鏁版嵁锛�");
+ return;
+ }
+ 
+ printPay();
+ </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("#dataGridSettle").set("selection",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 = "bold";
+ arg.dom.style.color = "#f67d06";
+ 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 = "bold";
+ 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 = "bold";
+ 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 = "bold";
+ 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 = "bold";
+ 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("#dsMain.data:#");
+ if(data.validate() != 'ok'){
+ $notify("鏁版嵁鏍¢獙澶辫触锛侊紒");
+ return;
+ }
+ view.get("#uaSave").execute(function(result){
+ if(result){
+ $alert(result);
+ return;
+ }
+ $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
+ self.get("parent").hide();
+ });</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("parent").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("#key3.value");
+ var type = "${request.getParameter('type')}";
+ view.get("#dsNotice").set("parameter",{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("#dsNotice.data:#");
+ if(data){
+ view.get("#ddNotice").close(data.toJSON());
+ }</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("#dsNotice.data:#");
+ if(data){
+ view.get("#ddNotice").close(data.toJSON());
+ }</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("#key2.value");
+ view.get("#dsDicArea").set("parameter",{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("#dsDicArea.data:#");
+ if(data){
+ view.get("#ddDicArea").close(data.toJSON());
+ }</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("#dsDicArea.data:#");
+ if(data){
+ view.get("#ddDicArea").close(data.toJSON());
+ }</ClientEvent>
+ <Property name="dataSet">dsDicArea</Property>
+ <Property name="readOnly">true</Property>
+ <DataColumn name="name">
+ <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = "bold";
+ 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("dicPR#sysDictData").getResult("CAMERA_BRAND")}</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("deptPR#getAllData").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("dicPR#sysDictData").getResult("CAMERA_BRAND")}</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("dicPR#triggerPlayType").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("dicPR#triggerSnapType").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">
+/**
+ * 鏌ヨ
+ */
+query = function(){
+ view.get("#dsMain").flushAsync();
+}
+/**
+ * 璁块棶
+ */
+showWeb = function(){
+ var cur = view.get("#dsMain.data:#");
+ if(!cur.get("ip")){
+ $alert("娌℃湁閰嶇疆璁块棶IP锛屾棤娉曡闂��");
+ return;
+ }
+ if(!cur.get("webPort")){
+ $alert("娌℃湁閰嶇疆璁块棶绔彛锛屾棤娉曡闂��");
+ return;
+ }
+ var url = "http://"+cur.get("ip")+":"+cur.get("webPort");
+ window.open(url);
+};
+
+/**
+ * 棰勮
+ */
+showVideo = function(){
+ var cur = view.get("#dsMain.data:#");
+ var playType = cur.get("playType");
+ 
+ if(!playType){
+ $alert("娌℃湁閰嶇疆鎾斁鏂瑰紡锛屾棤娉曢瑙堛��");
+ return;
+ }
+ if(!cur.get("ip")){
+ $alert("娌℃湁閰嶇疆鍐呴儴璁块棶IP锛屾棤娉曡闂��");
+ return;
+ }
+ if(!cur.get("controlPort")){
+ $alert("娌℃湁閰嶇疆鍐呴儴鎺у埗绔彛锛屾棤娉曡闂��");
+ return;
+ }
+ if(!cur.get("loginId")){
+ $alert("娌℃湁閰嶇疆鐢ㄦ埛鍚嶏紝鏃犳硶璁块棶銆�");
+ return;
+ }
+ if (!cur.get("pwd")) {
+ $alert("娌℃湁閰嶇疆瀵嗙爜锛屾棤娉曡闂��");
+ return;
+ }
+ 
+ var url = "./basic/security/video-play?cameraId="+cur.get("id")+"&playType="+playType+"&time="+ new Date().getTime();
+ 
+ view.get("#iFrameVideo").set("path",url);
+ view.get("#dialogVideo").show();
+};
+</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("#dsParam.data");
+view.get("#dsMain").set("parameter",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("#dsParam").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("#dsMain").insert();
+ view.get("#dialogMain").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("#dataGridCamera").get("selection");
+if(data){
+ view.get("#dialogMain").show();
+}else{
+ $notify("璇烽�夋嫨闇�瑕佷慨鏀圭殑鐩戞帶淇℃伅鈥︹��");
+}</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("#dataGridCamera").get("selection");
+if(select){
+ view.get("#ajaxDel").set("parameter",select).execute(function(result){
+ if(result){
+ $alert(result);
+ }else{
+ query();
+ }
+ });
+ }else{
+ $notify("璇烽�夋嫨闇�瑕佸垹闄ょ殑鐩戞帶淇℃伅鈥︹��");
+}</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("#dataGridCamera").set("selection",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 = "<a href='javascript:;' onClick='showVideo()' class='a-btn1'>棰勮</a>&nbsp;|&nbsp;<a href='javascript:;' onClick='showWeb()' class='a-btn3'>璁块棶</a>";</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("#dsMain.data:#");
+if(data.validate() != 'ok'){
+ $notify("鏁版嵁鏍¢獙澶辫触锛侊紒");
+ return;
+}
+view.get("#uaAction").set("parameter",data).execute(function(){
+ self.get("parent").hide();
+ query();
+});</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("#dsMain.data:#");
+ if(cur) cur.cancel();
+ self.get("parent").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("#dialogMeidaSelect").show();
+</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("#mediaAddr").set("text",view.get("#text1.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text2.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text3.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text4.text"));
+view.get("#dialogMeidaSelect").hide();
+</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}&subtype=0</Property>
+ </Label>
+ <Button layoutConstraint="right">
+ <ClientEvent name="onClick">view.get("#mediaAddr").set("text",view.get("#text5.text"));
+view.get("#dialogMeidaSelect").hide();
+</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}&subtype=1</Property>
+ </Label>
+ <Button layoutConstraint="right">
+ <ClientEvent name="onClick">view.get("#mediaAddr").set("text",view.get("#text6.text"));
+view.get("#dialogMeidaSelect").hide();
+</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}&password={1}&channel={4}&stream=0.sdp?real_stream</Property>
+ </Label>
+ <Button layoutConstraint="right">
+ <ClientEvent name="onClick">view.get("#mediaAddr").set("text",view.get("#text7.text"));
+view.get("#dialogMeidaSelect").hide();
+</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}&password={1}&channel={4}&stream=1.sdp?real_stream</Property>
+ </Label>
+ <Button layoutConstraint="right">
+ <ClientEvent name="onClick">view.get("#mediaAddr").set("text",view.get("#text8.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text9.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text10.text"));
+view.get("#dialogMeidaSelect").hide();
+</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("#mediaAddr").set("text",view.get("#text11.text"));
+view.get("#dialogMeidaSelect").hide();
+</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