czt
5 天以前 36aea6acd5ec532f5e6fcb530debd174a28cd450
出入库结算及单据打印
已修改4个文件
已添加5个文件
2489 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/MoneyUtil.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml 920 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettlePR.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml 1203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/print/pay.html 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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'>结算时间:payTime</span><span class='sp1'>入库单号:serId</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>扣重</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>";
}
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); //正常状态的单子
        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å¹´MM月dd日"));
        //客户名称
        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()));
        //扣重
        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;
    }
}
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;
            }
            // è®©number每次都去掉最后一个数
            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()
                + "]");
    }
}
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) {
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>
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">扣重</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">产地名称代码</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">正在执行打印……</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>
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);
    }
}
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>
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>扣重</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>