From c7ecb0f33189aff5f8234666c26b75c6621bb83b Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期一, 08 十二月 2025 18:43:18 +0800
Subject: [PATCH] 单仓移库页面

---
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChangePR.java              |   77 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutStockChangeMapper.java   |   15 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml                   |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java         |    9 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml                 |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutStockChangeService.java |  109 ++++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml            | 1333 +++++++++++++-------------------------------------
 7 files changed, 567 insertions(+), 980 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
index 3de5c99..bdb8a49 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutStockChange.java
@@ -29,7 +29,6 @@
      */
     private static final long serialVersionUID = 1L;
 
-    public static String SORT_PROP = "updateTime";
     /**
      * 鍊掍粨鍗曞彿
      */
@@ -77,4 +76,12 @@
     @TableField("number")
     private Double number = 0.0;
 
+    @Column(name = "stock_user", columnDefinition = "varchar(40) COMMENT '鍊掍粨浜�'")
+    @TableField("stock_user")
+    private String stockUser;
+
+    @Column(name = "remarks", columnDefinition = "varchar(200) COMMENT '澶囨敞淇℃伅'")
+    @TableField("remarks")
+    private String remarks;
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutStockChangeMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutStockChangeMapper.java
new file mode 100644
index 0000000..6afbfc4
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutStockChangeMapper.java
@@ -0,0 +1,15 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.InoutStockChange;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/08 17:48
+ */
+@Mapper
+public interface InoutStockChangeMapper extends BaseMapper<InoutStockChange> {
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutStockChangeService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutStockChangeService.java
new file mode 100644
index 0000000..c0aadcf
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutStockChangeService.java
@@ -0,0 +1,109 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.domain.InoutStockChange;
+import com.fzzy.igds.mapper.InoutStockChangeMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/08 17:48
+ */
+@Slf4j
+@Service
+public class InoutStockChangeService {
+
+    @Resource
+    private InoutStockChangeMapper inoutStockChangeMapper;
+
+    public void listPageData(Page<InoutStockChange> page, InoutStockChange param) {
+        QueryWrapper<InoutStockChange> queryWrapper = new QueryWrapper<>();
+
+        param.setCompanyId(ContextUtil.getCompanyId());
+        param.setDeptId(ContextUtil.subDeptId(null));
+        queryWrapper.eq("company_id", param.getCompanyId());
+        queryWrapper.eq("dept_id", param.getDeptId());
+
+        if(StringUtils.isNotBlank(param.getDepotIdIn())){
+            queryWrapper.eq("depot_id_in", param.getDepotIdIn());
+        }
+        if(StringUtils.isNotBlank(param.getDepotIdOut())){
+            queryWrapper.eq("depot_id_out", param.getDepotIdOut());
+        }
+
+        if (null != param.getChangeStartDate()) {
+            queryWrapper.ge("change_date", DateUtil.getCurZero(param.getChangeStartDate()));
+        }
+        if (null != param.getChangeEndDate()) {
+            queryWrapper.le("change_date", DateUtil.getNextZero(param.getChangeEndDate()));
+        }
+        inoutStockChangeMapper.selectPage(page, queryWrapper);
+    }
+
+    /**
+     * 淇濆瓨鏁版嵁
+     * @param data
+     */
+    public void saveData(InoutStockChange data) {
+        if (StringUtils.isEmpty(data.getCompanyId())) {
+            data.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(data.getDeptId())) {
+            data.setDeptId(ContextUtil.subDeptId(null));
+        }
+        if(StringUtils.isEmpty(data.getId())){
+            data.setId(getStrId(data.getDeptId(), data.getChangeDate()));
+            data.setCreateBy(ContextUtil.getLoginUserName());
+            data.setCreateTime(new Date());
+        }
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        inoutStockChangeMapper.insert(data);
+    }
+
+    /**
+     * 鍒犻櫎鏁版嵁
+     * @param data
+     * @return
+     */
+    public String delData(InoutStockChange data) {
+        inoutStockChangeMapper.deleteById(data);
+        return null;
+    }
+
+
+    /**
+     * 鑾峰彇涓婚敭ID
+     *
+     * @param deptId
+     * @param deptId
+     */
+    public String getStrId(String deptId, Date time) {
+
+        QueryWrapper<InoutStockChange> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("dept_id", deptId);
+        queryWrapper.ge("change_date", DateUtil.getCurZero(time));
+        queryWrapper.le("change_date", DateUtil.getNextZero(time));
+        //ID鍊掑簭
+        queryWrapper.orderByDesc("id");
+
+
+        List<InoutStockChange> list = inoutStockChangeMapper.selectList(queryWrapper);
+        String oldOrderId = null;
+        if (null != list && list.size() > 0) {
+            oldOrderId = list.get(0).getId().substring(8);
+        }
+        return DateFormatUtils.format(time, "yyyyMMdd") + ContextUtil.getOrderId(oldOrderId, 4);
+    }
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
index 31715db..dbbd46e 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -712,7 +712,7 @@
       <Property name="iconClass">fa fa-tasks</Property>
       <Property name="caption">鍗曟嵁淇℃伅</Property>
       <Property name="width">1200</Property>
-      <Property name="showCaptionBar">false</Property>
+      <Property name="closeable">false</Property>
       <Buttons>
         <Button id="btnOK">
           <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
index a6249d6..0246dd6 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutSettle.view.xml
@@ -593,7 +593,7 @@
       <Property name="iconClass">fa fa-tasks</Property>
       <Property name="caption">缁撶畻淇℃伅</Property>
       <Property name="width">1200</Property>
-      <Property name="showCaptionBar">false</Property>
+      <Property name="closeable">false</Property>
       <Buttons>
         <Button id="btnOK">
           <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
index 3e8a2e8..d862d75 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChange.view.xml
@@ -3,127 +3,39 @@
   <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>
+    <DataType name="dtQuery">
+      <Property name="creationType">com.fzzy.igds.domain.InoutStockChange</Property>
+      <PropertyDef name="depotIdIn">
+        <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 name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
         </Property>
       </PropertyDef>
-      <PropertyDef name="spjklx">
-        <Property></Property>
-        <Property name="label">涓氬姟绫诲瀷</Property>
+      <PropertyDef name="depotIdOut">
+        <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 name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</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 name="changeStartDate">
+        <Property name="label">寮�濮嬫椂闂�</Property>
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+      <PropertyDef name="changeEndDate">
+        <Property name="label">鎴鏃堕棿</Property>
+        <Property name="dataType">Date</Property>
       </PropertyDef>
     </DataType>
-    <DataType name="dtSecCamera">
-      <Property name="creationType">com.fzzy.igds.domain.Camera</Property>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.InoutStockChange</Property>
       <PropertyDef name="id">
         <Property></Property>
-        <Property name="label">鐩戞帶缂栫爜</Property>
+        <Property name="label">鍊掍粨鍗曞彿</Property>
+        <Property name="readOnly">true</Property>
       </PropertyDef>
       <PropertyDef name="companyId">
         <Property></Property>
@@ -131,324 +43,87 @@
       </PropertyDef>
       <PropertyDef name="deptId">
         <Property></Property>
-        <Property name="label">鎵�灞炲簱鍖�</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="label">鍊掍粨绫诲瀷</Property>
         <Property name="mapping">
           <Property name="mapValues">
             <Collection>
               <Entity>
-                <Property name="code">01</Property>
-                <Property name="name">01-鏋満</Property>
+                <Property name="name">鍊掍粨</Property>
+                <Property name="value">0</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>
+                <Property name="name">绉诲簱</Property>
+                <Property name="value">1</Property>
               </Entity>
             </Collection>
           </Property>
-          <Property name="keyProperty">code</Property>
+          <Property name="keyProperty">value</Property>
           <Property name="valueProperty">name</Property>
         </Property>
       </PropertyDef>
-      <PropertyDef name="brand">
+      <PropertyDef name="foodVariety">
         <Property></Property>
-        <Property name="label">璁惧鍝佺墝</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="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&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>
+      </PropertyDef>
+      <PropertyDef name="depotIdIn">
+        <Property></Property>
+        <Property name="label">鍊掑叆浠撳簱</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="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="playType">
+      <PropertyDef name="depotIdOut">
         <Property></Property>
-        <Property name="label">鎾斁鏂瑰紡</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 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="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>
+      <PropertyDef name="changeDate">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊掍粨鏃ユ湡</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 name="changeStartDate">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊掍粨寮�濮嬫棩鏈�</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 name="changeEndDate">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊掍粨缁撴潫鏃ユ湡</Property>
       </PropertyDef>
-      <PropertyDef name="posX">
-        <Property></Property>
-        <Property name="label">鍧愭爣X</Property>
+      <PropertyDef name="number">
         <Property name="dataType">Double</Property>
+        <Property name="label">鍊掍粨鏁伴噺</Property>
+        <Property name="displayFormat">0.0 KG</Property>
       </PropertyDef>
-      <PropertyDef name="posY">
+      <PropertyDef name="stockUser">
         <Property></Property>
-        <Property name="label">鍧愭爣Y</Property>
-        <Property name="dataType">Double</Property>
+        <Property name="label">鍊掍粨浜�</Property>
       </PropertyDef>
-      <PropertyDef name="screenShow">
+      <PropertyDef name="remarks">
         <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>
+        <Property name="label">澶囨敞淇℃伅</Property>
       </PropertyDef>
       <PropertyDef name="createTime">
         <Property name="dataType">DateTime</Property>
@@ -473,111 +148,68 @@
     </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>
+    <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;
+    </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="dataProvider">inoutStockChangePR#pageData</Property>
       <Property name="pageSize">20</Property>
-      <Property name="dataType">[dtSecCamera]</Property>
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="loadMode">manual</Property>
     </DataSet>
-    <DataSet id="dsParam">
-      <ClientEvent name="onReady">self.insert({});</ClientEvent>
-      <Property name="dataType">dtSecCameraParam</Property>
+    <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">dsParam</Property>
+        <Property name="dataSet">dsQuery</Property>
         <Property name="labelAlign">right</Property>
         <Property name="labelWidth">100</Property>
         <AutoFormElement>
-          <Property name="name">name</Property>
-          <Property name="property">name</Property>
+          <Property name="name">depotIdIn</Property>
+          <Property name="property">depotIdIn</Property>
           <Editor/>
         </AutoFormElement>
         <AutoFormElement>
-          <Property name="name">brand</Property>
-          <Property name="property">brand</Property>
+          <Property name="name">depotIdOut</Property>
+          <Property name="property">depotIdOut</Property>
           <Editor/>
         </AutoFormElement>
         <AutoFormElement>
-          <Property name="name">spjklx</Property>
-          <Property name="property">spjklx</Property>
+          <Property name="name">changeStartDate</Property>
+          <Property name="property">changeStartDate</Property>
+          <Property name="trigger">defaultDateDropDown</Property>
           <Editor/>
         </AutoFormElement>
         <AutoFormElement>
-          <Property name="name">spdwlx</Property>
-          <Property name="property">spdwlx</Property>
+          <Property name="name">changeEndDate</Property>
+          <Property name="property">changeEndDate</Property>
+          <Property name="trigger">defaultDateDropDown</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>
+          <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">view.get(&quot;#dsParam&quot;).setData({});</ClientEvent>
+          <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>
@@ -596,45 +228,38 @@
           <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>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridData&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;
+          <ClientEvent name="onClick">var select = view.get(&quot;#dataGridData&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;
+            }else{&#xD;
             query();&#xD;
-        }&#xD;
-    });
- }else{&#xD;
-    $notify(&quot;璇烽�夋嫨闇�瑕佸垹闄ょ殑鐩戞帶淇℃伅鈥︹��&quot;);&#xD;
-}</ClientEvent>
+            }&#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>
+      <DataGrid id="dataGridData" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridData&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
         <Property name="dataSet">dsMain</Property>
         <Property name="selectionMode">singleRow</Property>
         <Property name="readOnly">true</Property>
@@ -642,67 +267,48 @@
         <RowNumColumn>
           <Property name="width">50</Property>
         </RowNumColumn>
-        <DataColumn name="name">
-          <Property name="property">name</Property>
+        <DataColumn name="id">
+          <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="spjklx">
-          <Property name="property">spjklx</Property>
+        <DataColumn name="depotIdIn">
+          <Property name="property">depotIdIn</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="property">depotIdOut</Property>
+          <Property name="name">depotIdOut</Property>
           <Property name="align">center</Property>
-          <Property name="name">playType</Property>
-          <Property name="width">160</Property>
         </DataColumn>
-        <DataColumn>
-          <Property name="property">snapType</Property>
+        <DataColumn name="foodVariety">
+          <Property name="property">foodVariety</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>
+        <DataColumn name="changeDate">
+          <Property name="property">changeDate</Property>
           <Property name="align">center</Property>
-          <Property name="width">120</Property>
         </DataColumn>
-        <DataColumn name="controlPort">
-          <Property name="property">controlPort</Property>
+        <DataColumn name="number">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+            arg.processDefault = true;</ClientEvent>
+          <Property name="property">number</Property>
           <Property name="align">center</Property>
           <Property name="width">100</Property>
         </DataColumn>
-        <DataColumn name="chanNum">
-          <Property name="property">chanNum</Property>
+        <DataColumn name="stockUser">
+          <Property name="property">stockUser</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">
@@ -715,489 +321,262 @@
     </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="caption">鍊掍粨淇℃伅</Property>
+      <Property name="width">1000</Property>
       <Property name="closeable">false</Property>
       <Buttons>
-        <Button>
+        <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;#uaAction&quot;).set(&quot;parameter&quot;,data).execute(function(){&#xD;
-	self.get(&quot;parent&quot;).hide();&#xD;
-    query();&#xD;
-});</ClientEvent>
-          <Property name="caption">淇濆瓨</Property>
+            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;
+            query();&#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">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>
+          <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="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>
+        <AutoForm>
+          <Property name="dataSet">dsMain</Property>
+          <Property name="cols">*,*</Property>
+          <Property name="labelAlign">right</Property>
+          <Property name="labelSeparator">锛�</Property>
+          <Property name="labelWidth">120</Property>
+          <AutoFormElement>
+            <Property name="name">id</Property>
+            <Property name="property">id</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">type</Property>
+            <Property name="property">type</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">changeDate</Property>
+            <Property name="property">changeDate</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">deptId</Property>
+            <Property name="property">deptId</Property>
+            <Property name="readOnly">true</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">depotIdOut</Property>
+            <Property name="property">depotIdOut</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">depotIdIn</Property>
+            <Property name="property">depotIdIn</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">foodVariety</Property>
+            <Property name="property">foodVariety</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">number</Property>
+            <Property name="property">number</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">changeStartDate</Property>
+            <Property name="property">changeStartDate</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">changeEndDate</Property>
+            <Property name="property">changeEndDate</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">stockUser</Property>
+            <Property name="property">stockUser</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement>
+            <Property name="name">updateTime</Property>
+            <Property name="property">updateTime</Property>
+            <Editor/>
+          </AutoFormElement>
+          <AutoFormElement layoutConstraint="colSpan:2">
+            <Property name="name">remarks</Property>
+            <Property name="property">remarks</Property>
+            <Editor/>
+          </AutoFormElement>
+        </AutoForm>
       </Children>
       <Tools/>
     </Dialog>
-    <UpdateAction id="uaAction">
-      <Property name="dataResolver">secCameraPR#saveCamera</Property>
+    <UpdateAction id="uaSave">
+      <Property name="dataResolver">inoutStockChangePR#saveData</Property>
       <UpdateItem>
         <Property name="dataSet">dsMain</Property>
         <Property name="dataPath">[#current]</Property>
+        <Property name="validateData">false</Property>
       </UpdateItem>
     </UpdateAction>
     <AjaxAction id="ajaxDel">
       <Property name="confirmMessage">纭畾瑕佸垹闄ゅ悧锛�</Property>
-      <Property name="service">secCameraPR#delCamera</Property>
+      <Property name="service">inoutStockChangePR#delData</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>
+    <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>
-        <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>
+        <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>
-        <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>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+            }</ClientEvent>
+          <Property name="dataSet">dsDicArea</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+              arg.processDefault = true;</ClientEvent>
+            <Property name="property">name</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="simple">
+            <Property name="property">simple</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </DataGrid>
+        <DataPilot layoutConstraint="bottom">
+          <Property name="dataSet">dsDicArea</Property>
+        </DataPilot>
+      </Container>
+    </CustomDropDown>
+    <YearDropDown id="yearDropDown"/>
   </View>
 </ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChangePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChangePR.java
new file mode 100644
index 0000000..3c8fcc3
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutStockChangePR.java
@@ -0,0 +1,77 @@
+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.domain.Camera;
+import com.fzzy.igds.domain.InoutStockChange;
+import com.fzzy.igds.service.InoutStockChangeService;
+import com.fzzy.igds.service.SecCameraService;
+import jdk.nashorn.internal.ir.annotations.Reference;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/08 17:48
+ */
+@Slf4j
+@Component
+public class InoutStockChangePR {
+
+	@Resource
+	private InoutStockChangeService inoutStockChangeService;
+
+	/**
+	 * inoutStockChangePR#pageData 鏍规嵁鏉′欢鑾峰彇鎵�鏈夌殑鎽勫儚鏈洪厤缃俊鎭�
+	 * 
+	 * @param param
+	 */
+	@DataProvider
+	public void pageData(Page<InoutStockChange> page, InoutStockChange param) {
+		com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutStockChange> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
+
+		if(null == param) {
+			param = new InoutStockChange();
+		}
+		InoutStockChange data = new InoutStockChange();
+		BeanUtils.copyProperties(param, data);
+		inoutStockChangeService.listPageData(corePage, data);
+
+		// 閲嶆柊灏佽
+		page.setEntities(corePage.getRecords());
+		page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
+	}
+
+	/**
+	 * inoutStockChangePR#saveData
+	 * 
+	 * @param data
+	 */
+	@DataResolver
+	public void saveData(InoutStockChange data) {
+		InoutStockChange item = new InoutStockChange();
+		BeanUtils.copyProperties(data, item);
+		inoutStockChangeService.saveData(item);
+	}
+
+	/**
+	 * inoutStockChangePR#delData
+	 * 
+	 * @param data
+	 * @return
+	 */
+	@Expose
+	public String delData(InoutStockChange data) {
+		InoutStockChange item = new InoutStockChange();
+		BeanUtils.copyProperties(data, item);
+		return inoutStockChangeService.delData(item);
+	}
+
+}

--
Gitblit v1.9.3