From e34442d2f1fee9bebc3490cafdc0f01280eb8b1e Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 05 十二月 2025 17:10:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java                 |    8 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java               |   26 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/FileMapper.java                 |   14 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java    |   83 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java                    |   22 
 fzzy-igdss-view/src/main/java/models/core.model.xml                                |  116 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java          |  166 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java                       |  161 +
 fzzy-igdss-web/src/main/resources/templates/inout/register.html                    |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java                    |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java                |    4 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java          |   40 
 fzzy-igdss-web/src/main/resources/static/inout/inout-register.js                   |    5 
 fzzy-igdss-web/src/main/resources/templates/inout/weight2.html                     |  197 +
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java |   85 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java    |   64 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java                   |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java                     |   27 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java           |   10 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java                  |   49 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutHand.view.xml                     |  944 +++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java                  |    2 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/FilePR.java                            |   78 
 fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js                     |  386 +++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java               |   16 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java        |  413 +++
 fzzy-igdss-web/src/main/resources/templates/inout/weight.html                      |  145 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java                    |   23 
 fzzy-igdss-web/src/main/resources/templates/inout/handle.html                      |  632 +++++
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java      |   69 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java                |   63 
 fzzy-igdss-web/src/main/resources/templates/inout/check.html                       |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java                 |   20 
 fzzy-igdss-view/pom.xml                                                            |   28 
 fzzy-igdss-web/src/main/resources/static/inout/inout-check.js                      |    0 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java               |  204 +
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java                     |   54 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/FileUploadManage.java                  |   94 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java                   |   55 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java        |   71 
 fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js                    |  605 ++--
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java               |  104 
 fzzy-igdss-web/src/main/resources/static/inout/weight.js                           |    9 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java                 |  126 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java                   |   48 
 fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js                     |  526 ++-
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java                |   96 
 fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml                     | 1165 +++++++++
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java            |  133 +
 49 files changed, 6,303 insertions(+), 891 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
new file mode 100644
index 0000000..05d4221
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
@@ -0,0 +1,23 @@
+package com.fzzy.igds.bill;
+
+/**
+ * @Description 鍑哄叆搴撶殑琛ㄥ崟妯$増
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+public class InoutBill {
+
+    /**
+     * 榛樿鍏ュ簱杩囩鍗�
+     */
+    public static String IN_WEIGHT_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: 25%;float: left;text-align: center}</style></head><body><h1 class='tit'>billTitle</h1><div id=\"print_main\" class='div-tit'><span class='sp1'>瀹屾垚鏃堕棿锛�<a>completeTime</a></span><span class='sp1'>鍗曞彿锛歴erId</span></div><table cellspacing='0' cellpadding='0'><tr><td width='12.5%'>鍙戣揣鍗曚綅</td><td colspan='3' width='37.5%'>customerName</td><td width='12.5%'>鏀惰揣鍗曚綅</td><td colspan='3' `width`='37.5%'>deptName</td></tr><tr><td width='12.5%'>鎵胯繍浜�</td><td width='12.5%'>driverName</td><td width='12.5%'>绮鍝佺</td><td width='12.5%'>foodVariety</td><td width='12.5%'>瑁呭嵏浠撳簱</td><td width='12.5%'>depotName</td><td width='12.5%'>绮浜у湴</td><td width='12.5%'>foodLocation</td></tr><tr><td>鎵胯繍杞︾墝</td><td>plateNum</td><td>姣涢噸(KG)</td><td>fullWeight</td><td>鐨噸(KG)</td><td>emptyWeight</td><td>鍑�閲�(KG)</td><td>netWeight</td></tr><tr><td>璐ㄦ鎵i噸(KG)</td><td>deCheck</td><td>璐ㄦ澧為噸(KG)</td><td>addCheck</td><td>鍊间粨鎵i噸(KG)</td><td>deHandle</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td></tr><tr><td>璐ㄦ缁撴灉</td><td colspan='3'>checkStatus</td><td>鍏ュ簱閲嶉噺(KG)</td><td>recordWeight</td><td>缁撶畻閲嶉噺(KG)</td><td>settleWeight</td></tr><tr><td>澶囨敞</td><td colspan='7'>remark</td></tr></table><div class='div-tit'><span class='sp2'>鍙哥鍛橈細</span><span class='sp2'>鐩戠鍛橈細</span><span class='sp2'>淇濈鍛橈細handleUser</span><span class='sp2'>鎵胯繍浜猴細driverName</span></div></br><div style=\"padding-top: 10px\"><span></span></div><div style=\"text-align: left;font-size: 12px\"><span>娉細</span></div><div style=\"text-align: left;font-size: 12px\"><span>1.鍑�閲�=姣涢噸-鐨噸锛涜川妫�澧炴墸閲嶆牴鎹川妫�璇︾粏濉啓锛�</span></div><div style=\"text-align: left;font-size: 12px\"><span>2.鍏ュ簱閲嶉噺=鍑�閲�-鎵i噸锛涚粨绠楅噸閲�=鍏ュ簱閲嶉噺+璐ㄦ澧為噸锛�</span></div><div style=\"text-align: left;font-size: 12px\"><span>3.鐧借仈锛堝瓨鏍癸級锛岀孩鑱旓紙璁拌处锛夛紝榛勮仈锛堝鎴蜂繚鐣欙級</span></div></body></html>";
+    /**
+     * 榛樿鍑哄簱杩囩鍗�
+     */
+    public static String OUT_WEIGHT_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}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:25%;float:left;text-align:center}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}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>瀹屾垚鏃堕棿锛歝ompleteTime</span><span class='sp1'>鍑哄簱鍗曞彿锛歴erId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>鍙戣揣鍗曚綅</td><td colspan='3'width='37.5%'>deptName</td><td width='12.5%'>鏀惰揣鍗曚綅</td><td colspan='3'width='37.5%'>customerName</td></tr><tr><td width='12.5%'>鎵胯繍浜�</td><td width='12.5%'>driverName</td><td width='12.5%'>绮鍝佺</td><td width='12.5%'>foodVariety</td><td width='12.5%'>鍑哄簱浠撳簱</td><td width='12.5%'>depotName</td><td width='12.5%'>绮浜у湴</td><td width='12.5%'>foodLocation</td></tr><tr><td>鎵胯繍杞︾墝</td><td>plateNum</td><td>姣涢噸(KG)</td><td>fullWeight</td><td>鐨噸(KG)</td><td>emptyWeight</td><td>鍑�閲�(KG)</td><td>netWeight</td></tr><tr><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>鍊间粨鎵i噸(KG)</td><td>deHandle</td><td>鍑哄簱閲嶉噺(KG)</td><td>recordWeight</td><td>缁撶畻閲嶉噺(KG)</td><td>settleWeight</td></tr><tr><td>澶囨敞</td><td colspan='7'>remark</td></tr></table><div class='div-tit'><span class='sp2'>鍙哥鍛橈細</span><span class='sp2'>鐩戠鍛橈細</span><span class='sp2'>淇濈鍛橈細handleUser</span><span class='sp2'>鎵胯繍浜猴細driverName</span></div><br></body><div style=\"padding-top: 10px\"><span></span></div><div style=\"text-align: left;font-size: 12px\"><span>娉細</span></div><div style=\"text-align: left;font-size: 12px\"><span>1.鍑�閲�=姣涢噸-鐨噸锛�</span></div><div style=\"text-align: left;font-size: 12px\"><span>2.鍑哄簱閲嶉噺=鍑�閲�-鎬绘墸閲嶏紱缁撶畻閲嶉噺=鍑�閲�-鎬绘墸閲嶏紱</span></div><div style=\"text-align: left;font-size: 12px\"><span>3.鐧借仈锛堝瓨鏍癸級锛岀孩鑱旓紙璁拌处锛夛紝榛勮仈锛堝鎴蜂繚鐣欙級</span></div></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}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:15px}.div-tit{padding-top:10px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:50%;float:left;text-align:center}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>缁撶畻鏃堕棿锛歱ayTime</span><span class='sp1'>鍏ュ簱鍗曞彿锛歴erId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>鍙戣揣鍗曚綅</td><td colspan='3'width='37.5%'>customerName</td><td width='12.5%'>鏀惰揣鍗曚綅</td><td colspan='3'width='37.5%'>deptName</td></tr><tr><td width='12.5%'>寮�鎴烽摱琛�</td><td colspan='3'width='37.5%'>bank</td><td>姣涢噸(KG)</td><td>fullWeight</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td width='12.5%'>閾惰鍗″彿</td><td colspan='3'width='37.5%'>banNum</td><td>鍑�閲�(KG)</td><td>netWeight</td><td>鎬绘墸閲�(KG)</td><td>deSum</td></tr><tr><td>鍏ュ簱浠撳簱</td><td>depotName</td><td>绮鍝佺</td><td>foodVariety</td><td>绮鍗曚环</td><td>payPrice</td><td>缁撶畻閲嶉噺</td><td>settleWeight</td></tr><tr><td>淇濈鍛�</td><td>keeperName</td><td>鎵胯繍浜�</td><td>driverName</td><td>鍏朵粬璐圭敤</td><td>otherSum</td><td>缁撶畻璐圭敤</td><td>paySum</td></tr><tr><td>澶囨敞</td><td colspan='3'>remark</td><td>澶у啓閲戦</td><td colspan='3'>moneyName</td></tr></table><div class='div-tit'><span class=\"sp2\">鏀惰揣鍗曚綅绛惧瓧锛�</span><span class=\"sp2\">瀹㈡埛绛惧瓧锛�</span></div></body></html>";
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
index 4f3be93..608a66d 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java
@@ -119,6 +119,14 @@
     // 娴佺▼-澶囨锛堣〃绀烘祦绋嬫暣浣撳畬鎴愬悗澶囨锛�
     public static final String PROGRESS_RECORD = "RECORD";
 
+    // 鏁版嵁鐘舵��-姝e父
+    public static final String RECORD_STATUS_NORMAL = "NORMAL";
+
+    // 鏁版嵁鐘舵��-琛ュ綍
+    public static final String RECORD_STATUS_ADD = "ADD";
+    // 鏁版嵁鐘舵��-宸插垹闄�
+    public static final String RECORD_STATUS_DEL = "DEL";
+
     /**
      * 鍑哄叆搴撻厤缃殑绫诲瀷 10 = 杞︾墝璇嗗埆
      */
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java
new file mode 100644
index 0000000..7ce863f
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java
@@ -0,0 +1,96 @@
+package com.fzzy.igds.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 鑾峰彇鐩戞帶鎾斁淇℃伅灏佽绫�
+ * @Author CZT
+ * @Date 2024/12/11 10:10
+ */
+@Data
+public class ApiCameraData implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+    /**
+     * 缁勭粐缂栫爜
+     */
+    private String companyId;
+    /**
+     * 鍒嗗簱缂栫爜
+     */
+    private String deptId;
+    /**
+     * 鐩戞帶ID
+     */
+    private String cameraId;
+    /**
+     * 鐩戞帶鍚嶇О
+     */
+    private String cameraName;
+    /**
+     * IP
+     */
+    private String ip;
+    /**
+     * 鎺у埗绔彛
+     */
+    private Integer controlPort;
+    /**
+     * 鎾斁鏂瑰紡
+     */
+    private String playType;
+    /**
+     * 鎶撴媿鏂瑰紡
+     **/
+    private String snapType;
+    /**
+     * 鐩戞帶SN
+     */
+    private String sn;
+    /**
+     * 閫氶亾鍙�
+     */
+    private Integer channel;
+    /**
+     * 鐧诲綍鍚�
+     */
+    private String loginId;
+    /**
+     * 瀵嗙爜
+     */
+    private String pwd;
+    /**
+     * 浜戝彴閫熷害
+     */
+    private int speed = 129;//閫熷害锛�0-255 榛樿129锛�
+    /**
+     * 浜戝彴鎺у埗鍛戒护 1=涓婏紝2=涓嬶紝3=宸︼紝4=鍙筹紝5=宸︿笂锛�6=宸︿笅锛�7=鍙充笂锛�8=鍙充笅锛�0=鍋滄锛�9=鍙樺�嶅皬锛�10 = 鍙樺�嶅姞
+     * 棰勭疆浣嶅懡浠� 1=璁剧疆锛�2=鎵ц锛�3=鍒犻櫎
+     */
+    private String command;
+    /**
+     * 棰勭疆浣嶇紪鍙�1~255
+     */
+    private String preset;
+    /**
+     * RTSP鍦板潃
+     */
+    private String mediaAddr;
+    /**
+     * 鍐呯綉鎾斁鍦板潃
+     */
+    private String urlIn;
+    /**
+     * 澶栫綉鎾斁鍦板潃
+     */
+    private String urlOut;
+    /**
+     * 璇锋眰鏂笽P锛岀敤浜庡垽鏂槸鍐呯綉鎾斁锛岃繕鏄缃戞挱鏀�
+     */
+    private String requireIp;
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java
new file mode 100644
index 0000000..c89e186
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java
@@ -0,0 +1,63 @@
+package com.fzzy.igds.data;
+
+import lombok.Data;
+
+/**
+ * @Description 瑙嗛鎾斁灏佽淇℃伅
+ * @Author CZT
+ * @Date 2024/12/11 09:59
+ */
+@Data
+public class ApiCameraResp {
+
+
+    public static String CODE_SUCCESS = "SUCCESS";
+    public static String CODE_ERROR = "ERROR";
+
+    private String code = CODE_SUCCESS;
+
+    private String msg;
+
+    /**
+     * 鎾斁淇℃伅
+     */
+    private String cameraId;  //鐩戞帶ID
+    private String cameraName;  //瑙嗛鍚嶇О
+    private String playUrl;  //鎾斁鍦板潃
+    private String playType; //鎾斁鏂瑰紡
+    private String snapType; //鎾斁鏂瑰紡
+    private String appkey; //瀹夐槻骞冲彴appKey
+    private String secret; //瀹夐槻骞冲彴绉橀挜
+    private String ip;     //璁惧IP
+    private Integer port;   //璁惧绔彛
+    private String sn;     //璁惧搴忓垪鍙�
+
+    /**
+     * 鎶撴媿闄勪欢鍚嶇О
+     */
+    private String fileName;
+
+    public ApiCameraResp() {
+    }
+
+    public ApiCameraResp(String playUrl) {
+        this.code = CODE_SUCCESS;
+        this.msg = "鎴愬姛";
+        this.playUrl = playUrl;
+    }
+
+    public ApiCameraResp(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public ApiCameraResp(String appkey, String secret, String ip, Integer port, String sn) {
+        this.code = CODE_SUCCESS;
+        this.msg = "鎴愬姛";
+        this.appkey = appkey;
+        this.secret = secret;
+        this.ip = ip;
+        this.port = port;
+        this.sn = sn;
+    }
+}
\ No newline at end of file
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java
new file mode 100644
index 0000000..ffbb0b9
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java
@@ -0,0 +1,126 @@
+package com.fzzy.igds.data;
+
+import com.fzzy.igds.domain.InoutConf;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 鍑哄叆搴撴祦绋嬭繃绋嬩腑锛岃溅鐗屽け璐ワ紝璇诲崱鍣ㄧ瓑璁惧鐨勫叕鍏卞弬鏁板拰浼犻�掑璞�
+ */
+@Data
+public class ApiInoutData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    private String id;
+
+    private String companyId;
+
+    private String deptId;
+
+    /**
+     * 鍑哄叆搴撻厤濂楀簭鍙�
+     */
+    private String sort = "1";
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String name;
+
+    /**
+     * 璁惧搴忓垪鍙�/璁惧缂栫爜
+     */
+    private String sn;
+
+    private String ip;
+
+    private Integer port;
+
+
+    private String loginId;
+
+    private String pwd;
+
+    private int chanNum = 1;
+
+    private Integer portCtrl;
+
+    private String type;
+
+    private String status;
+
+    private String protocol;
+
+    private String playType;
+
+    private String snapType;
+
+    /**
+     * 杞︾墝璇嗗埆鎶撴媿-閫傜敤浜庨姝h嚧杩淎PI-HTTP鍗忚
+     */
+    private String plateSnapType;
+
+    private String mediaAddr;
+
+    private String videoPath;
+
+    private String videoName;
+
+    private String errorMsg = "ERROR";
+
+    // 杞︾墝鍙�
+    private String plateNum;
+
+    // 鐢ㄦ埛Id
+    private String userId;
+
+    private Date time = new Date();
+
+    //淇℃伅
+    private String msg;
+
+    //淇℃伅鎾斁娆℃暟
+    private int repeat = 1;
+
+    //鏅烘収鍗″彿
+    private String icCardNo;
+
+    //绉伴噸淇℃伅
+    private double weight = 0.0;
+
+    //鍔ㄤ綔缂栫爜锛�0=鍏抽棴/绾㈢伅锛�1=鎵撳紑/璺伅
+    private String actionCode;
+
+    //璁惧缂栧彿
+    private int deviceCode;
+
+
+    public ApiInoutData() {
+        super();
+    }
+
+    public ApiInoutData(InoutConf conf) {
+        this.id = conf.getId();
+        this.companyId = conf.getCompanyId();
+        this.deptId = conf.getDeptId();
+        this.sort = conf.getSort();
+        this.name = conf.getName();
+        this.sn = conf.getSn();
+        this.ip = conf.getIp();
+        this.port = conf.getPort();
+        this.loginId = conf.getLoginId();
+        this.pwd = conf.getPwd();
+        this.chanNum = conf.getChanNum();
+        this.portCtrl = conf.getPortCtrl();
+        this.type = conf.getType();
+        this.status = conf.getStatus();
+        this.protocol = conf.getProtocol();
+        this.playType = conf.getPlayType();
+        this.snapType = conf.getSnapType();
+        this.mediaAddr = conf.getMediaAddr();
+        this.deviceCode = conf.getInOrder();
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java
new file mode 100644
index 0000000..3c0ae62
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java
@@ -0,0 +1,26 @@
+package com.fzzy.igds.data;
+
+import com.fzzy.igds.domain.InoutConf;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * 鍑哄叆搴撹棰�
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+public class InoutCameraDto extends InoutConf implements Serializable {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 瑙嗛鎾斁鍦板潃锛屾牴鎹笉鍚岀殑鎾斁鏂瑰紡鐢熸垚涓嶅悓鐨勬挱鏀惧湴鍧�
+	 */
+	private String playAddr;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java
new file mode 100644
index 0000000..fb2e647
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java
@@ -0,0 +1,22 @@
+package com.fzzy.igds.data;
+
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.domain.InoutRecord;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/4 14:04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class InoutData extends InoutRecord implements Serializable {
+
+    //鎻愪氦鐨勭浉鍏抽檮浠朵俊鎭紝渚嬪鐓х墖銆�
+    private List<FileInfo> files;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java
index f8e65d0..146950f 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java
@@ -19,6 +19,8 @@
 
     private String progress;
 
+    private String progressTag; //琛ㄧず鏈畬鎴愮殑鍗曟嵁
+
     private String weightTag;
 
     private String type;
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java
new file mode 100644
index 0000000..43c9f4e
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java
@@ -0,0 +1,104 @@
+package com.fzzy.igds.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 绉伴噸鍗曚俊鎭皝瑁�
+ *
+ * @author chen
+ */
+@Data
+public class InoutPrintBill implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    private String billTitle = "绉伴噸鍗�";
+
+    private String companyId = "";
+
+    //鐧昏鏃堕棿
+    private String registerTime = "";
+    //瀹屾垚鏃堕棿
+    private String completeTime = "";
+    //瀹屾垚鏃堕棿
+    private String fullTime = "";
+    //瀹屾垚鏃堕棿
+    private String emptyTime = "";
+    //娴佹按鍗曞彿
+    private String serId = "";
+
+    //寰�鏉ュ崟浣�(鍏ュ簱涓哄彂璐у崟浣嶏紝鍑哄簱涓烘敹璐у崟浣�)
+    private String customerName = "";
+    //寰�鏉ュ崟浣�(鍑哄簱涓哄彂璐у崟浣嶏紝鍏ュ簱涓烘敹璐у崟浣�)
+    private String unitName = "";
+    private String noticeId = "";
+
+    private String deptId = "";
+    private String deptName = "";
+    private String weightUser = "";//绉伴噸浜�
+
+    private String keeperUser = "";//淇濈鍛�
+    //鎵胯繍浜�
+    private String driverName = "";
+    private String userId = "";
+    private String userContact = "";
+    private String userAddress = "";
+    //绮鍝佺
+    private String foodVariety = "";
+    //浠撳簱鍚嶇О
+    private String depotName = "";
+    //绮浜у湴
+    private String foodLocation = "";
+    private String foodLevel = "";
+    //鎵胯繍杞︾墝
+    private String plateNum = "";
+    //姣涢噸
+    private double fullWeight = 0.0;
+    //鐨噸
+    private double emptyWeight = 0.0;
+    //鍑�閲�
+    private double netWeight = 0.0;
+    //璐ㄦ鎵i噸
+    private double deCheck = 0.0;
+    //璐ㄦ澧為噸
+    private double addCheck = 0.0;
+    //鍖呰鎵i噸
+    private double dePackage = 0.0;
+    //璐ㄦ缁撴灉
+    private String checkStatus;
+    //鍏ュ簱閲嶉噺
+    private double recordWeight = 0.0;
+    //姘村垎澧炴墸閲�
+    private double deWet = 0.0;
+    //鏉傝川澧炴墸閲�
+    private double deImpurity = 0.0;
+    //姘村垎
+    private String wet = "";
+    //鏉傝川
+    private String impurity = "";
+    //鍊间粨鎵i噸
+    private double deHandle = 0.0;
+    //鍏朵粬鎵i噸
+    private double deOther = 0.0;
+    //鎬绘墸閲�
+    private double deSum = 0.0;
+    //缁撶畻閲戦
+    private String settleMoney = "";
+    //缁撶畻閲嶉噺
+    private double settleWeight = 0.0;
+    //鍗曚环
+    private String price = "";
+    //澶у啓閲戦
+    private String moneyName = "";
+    //澶囨敞
+    private String remark = "";
+    //淇濈鍛�
+    private String handleUser = "";
+
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java
index e73f223..d2ae99a 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeDto.java
@@ -86,6 +86,6 @@
     /**
      * 鎵�灞炲悎鍚�
      */
-    private String contractName;
+    private String contract;
 
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java
index 823a220..a6b3a65 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/NoticeParam.java
@@ -19,6 +19,8 @@
 
 	private String depotId;
 
+	private String key;
+
 	private String deptId;// 鎵�灞炲垎搴�
 
 	private String customerName;// 瀹㈡埛鍚嶇О
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java
new file mode 100644
index 0000000..df6b33b
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java
@@ -0,0 +1,48 @@
+package com.fzzy.igds.data;
+
+import com.fzzy.igds.constant.Constant;
+import lombok.Data;
+
+/**
+ * @Description 鎶撴媿瀵硅薄灏佽锛屾敮鎸佸嚭鍏ュ簱鍜岀郴缁熼厤缃�
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@Data
+public class SnapImgDto {
+
+    private String companyId;
+
+    private String deptId;
+
+    //澶栭敭ID--鐢ㄤ簬淇濆瓨鏂囦欢鏁版嵁搴撲娇鐢�
+    private String bizId;
+
+    // 涓氬姟绗簩涓爣绛�
+    private String progress;
+
+    //涓氬姟绫诲瀷
+    private String bizType = Constant.TYPE_IN;
+
+    //鍑哄叆搴撹溅鐗屽彿
+    private String plateNum;
+
+    //閰嶇疆淇℃伅ID1
+    private String id1;
+
+    //閰嶇疆淇℃伅ID2
+    private String id2;
+
+    //閰嶇疆淇℃伅ID2
+    private String id3;
+
+    private String fileName1;
+
+    private String fileName2;
+
+    private String fileName3;
+
+    private String sort;
+
+    private double weight;
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java
new file mode 100644
index 0000000..5996988
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java
@@ -0,0 +1,55 @@
+package com.fzzy.igds.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * @Description 闄勪欢淇℃伅
+ * @Author CZT
+ * @Date 2025/12/4 13:56
+ */
+@Data
+@Entity
+@Table(name = "d_file")
+@TableName("d_file")
+@EqualsAndHashCode(callSuper = false)
+public class FileInfo extends BizBaseEntity implements Serializable {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+
+	@Id
+	@Column(name = "id", columnDefinition = "varchar(40) COMMENT '闄勪欢ID'")
+	@TableField("id")
+	private String id;
+
+	@Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
+	@TableField("dept_id")
+	private String deptId;
+
+	@Column(name = "biz_id", columnDefinition = "varchar(40) COMMENT '涓氬姟ID'")
+	@TableField("biz_id")
+	private String bizId;
+
+	@Column(name = "biz_tag", columnDefinition = "varchar(40) COMMENT '涓氬姟鏍囩'")
+	@TableField("biz_tag")
+	private String bizTag;
+
+	@Column(name = "file_name", columnDefinition = "varchar(200) COMMENT '鏂囦欢璺緞鍙婂悕绉�'")
+	@TableField("file_name")
+	private String fileName;
+
+	@Column(name = "file_path", columnDefinition = "varchar(200) COMMENT '鏂囦欢鍏ㄨ矾寰�'")
+	@TableField("file_path")
+	private String filePath;
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java
index 87918b3..7cdff1f 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutRecord.java
@@ -196,10 +196,6 @@
     @TableField("settle_money")
     private Double settleMoney = 0.00;
 
-    @Column(name = "settle_id", columnDefinition = "varchar(40) COMMENT '缁撶畻鍗曞彿'")
-    @TableField("settle_id")
-    private String settleId;
-
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @Column(name = "settle_time", columnDefinition = "datetime COMMENT '缁撶畻鏃堕棿'")
     @TableField("settle_time")
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
index b6e96eb..81da056 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
@@ -11,12 +11,6 @@
 import javax.persistence.Table;
 import java.io.Serializable;
 
-
-/**
- * @Description 鐢靛瓙宸¢�昏褰曚富琛�
- * @Author sgj
- * @Date 2025/12/04 11:38
- */
 @Data
 @Entity
 @Table(name = "d_patrol")
@@ -29,29 +23,20 @@
      */
     private static final long serialVersionUID = 1L;
 
-    //鐢熸垚瑙勫垯 骞存湀鏃�
     @Id
     @Column(name = "id", columnDefinition = "varchar(40) COMMENT '涓婚敭'")
     @TableField("id")
     private String id;
 
-    @Id
-    @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '鐝缂栧彿'")
-    @TableField("batch_id")
-    private String batchId;
-
-    @Id
-    @Column(name = "user_id", columnDefinition = "varchar(40) COMMENT '宸¢�讳汉璐﹀彿'")
-    @TableField("user_id")
-    private String userId;
-
-    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '宸¢�讳汉'")
-    @TableField("user_name")
-    private String userName;
-
     @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '鎵�灞炲簱鍖�'")
     @TableField("dept_id")
     private String deptId;
 
+    @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '鐝缂栧彿'")
+    @TableField("batch_id")
+    private String batchId;
 
+    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '宸¢�讳汉'")
+    @TableField("user_name")
+    private String userName;
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java
index 2344a0b..19aa3fd 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -11,13 +10,7 @@
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
-import java.util.Date;
 
-/**
- * @Description 鐢靛瓙宸¢�婚厤缃�
- * @Author sgj
- * @Date 2025/12/04 11:38
- */
 @Data
 @Entity
 @Table(name = "d_patrol_conf")
@@ -39,15 +32,8 @@
     @TableField("batch_name")
     private String batchName;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @Column(name = "start_time", columnDefinition = "datetime COMMENT '宸¢�诲紑濮嬫椂闂�'")
-    @TableField("start_time")
-    private Date startTime;
-
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @Column(name = "end_time", columnDefinition = "datetime COMMENT '宸¢�荤粨鏉熸椂闂�'")
-    @TableField("end_time")
-    private Date endTime;
-
+    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '宸¢�讳汉'")
+    @TableField("user_name")
+    private String userName;
 
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
index 3451ff1..d2a61c2 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
@@ -2,14 +2,16 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
- * @Description 鐢靛瓙宸¢�昏褰曞瓙琛�
+ * @Description 鐢靛瓙宸¢��
  * @Author CZT
  * @Date 2025/11/25 19:38
  */
@@ -40,6 +42,11 @@
     @TableField("point_name")
     private String pointName;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Column(name = "create_time", columnDefinition = "datetime COMMENT '宸¢�绘椂闂�'")
+    @TableField("create_time")
+    private Date createTime;
+
     @Column(name = "longitude", columnDefinition = "decimal(20,6) COMMENT '缁忓害'")
     @TableField("longitude")
     private String longitude;
@@ -51,11 +58,16 @@
     /**
      * --------楦熺灠鍥句俊鎭�--------
      **/
-
+    @Column(name = "img_id", columnDefinition = "varchar(50) COMMENT '宸℃洿鐓х墖'")
+    @TableField("img_id")
+    private String imgId;
 
     @Column(name = "file_name", columnDefinition = "varchar(50) COMMENT '宸℃洿鐓х墖'")
     @TableField("file_name")
     private String imgName;
 
+    //宸℃洿鐓х墖鍏ㄨ矾寰�
+    @Transient
+    private String imgPath;
 
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/FileMapper.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/FileMapper.java
new file mode 100644
index 0000000..5e39538
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/FileMapper.java
@@ -0,0 +1,14 @@
+package com.fzzy.igds.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fzzy.igds.domain.FileInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/05 15:48
+ */
+@Mapper
+public interface FileMapper extends BaseMapper<FileInfo> {
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
index eefcd8d..d95b23a 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
@@ -68,6 +68,16 @@
     }
 
     /**
+     * 鏍规嵁ID鏌ヨ搴撳尯淇℃伅
+     * @param id
+     * @return
+     */
+    public Dept getDeptById(String id) {
+
+        return coreDeptMapper.selectById(id);
+    }
+
+    /**
      * 鏂板鎴栨洿鏂板簱鍖轰俊鎭�
      * @param sysDept
      * @param isAdd
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
new file mode 100644
index 0000000..cdbe480
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
@@ -0,0 +1,204 @@
+package com.fzzy.igds.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.mapper.FileMapper;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.utils.StringUtils;
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/12/4 17:36
+ */
+@Service
+public class FileService {
+
+    @Resource
+    private FileMapper fileMapper;
+
+    /**
+     * 寮傛鎵ц闄勪欢淇濆瓨
+     * @param files     闄勪欢淇℃伅
+     * @param bizId     涓氬姟id
+     * @param bizTag    鏍囩
+     * @param pathTag   鏂囦欢璺緞鏍囪瘑
+     */
+    @Async
+    public void saveInoutFiles(List<FileInfo> files, String bizId, String bizTag, String pathTag) {
+
+        if (null == files || files.isEmpty()) {
+            return;
+        }
+
+        for (FileInfo data : files) {
+            // 濡傛灉娌℃湁闄勪欢鍚嶇О锛屽垯涓嶄繚瀛橀檮浠朵俊鎭�
+            if (StringUtils.isBlank(data.getFileName())) {
+                continue;
+            }
+
+            data.setId(ContextUtil.generateId());
+            data.setCompanyId(ContextUtil.getCompanyId());
+
+            //鏂囦欢鍏ㄨ矾寰�
+            String filePath = getFileSavePath(pathTag) + data.getFileName();
+            filePath = filePath.replace(FrameworkConfig.getProfile(), "/profile/");
+            data.setFilePath(filePath);
+
+            if (StringUtils.isNotEmpty(bizId)) {
+                data.setBizId(bizId);
+            }
+            if (StringUtils.isNotEmpty(bizTag)) {
+                data.setBizTag(bizTag);
+            }
+
+            data.setCreateTime(new Date());
+            data.setCreateBy(ContextUtil.getLoginUserName());
+
+            data.setUpdateTime(new Date());
+            data.setUpdateBy(ContextUtil.getLoginUserName());
+            fileMapper.insert(data);
+        }
+    }
+
+    /**
+     * 鏍规嵁鏉′欢鏌ヨ鏁版嵁
+     * @param companyId
+     * @param deptId
+     * @param bizId
+     * @return
+     */
+    public List<FileInfo> listFile(String companyId, String deptId, String bizId, String bizTag) {
+        QueryWrapper<FileInfo> queryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(companyId)) {
+            queryWrapper.eq("company_id", companyId);
+        }
+        if (StringUtils.isNotBlank(deptId)) {
+            queryWrapper.eq("dept_id", deptId);
+        }
+        if (StringUtils.isNotBlank(bizId)) {
+            queryWrapper.eq("biz_id", bizId);
+        }
+        if (StringUtils.isNotBlank(bizTag)) {
+            queryWrapper.eq("biz_tag", bizTag);
+        }
+        return fileMapper.selectList(queryWrapper);
+    }
+
+    /**
+     *
+     * @param id
+     */
+    public void delFile(String id) {
+        fileMapper.deleteById(id);
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+     * @param pathTag
+     * @return
+     */
+    public String getFileSavePath(String pathTag) {
+        if(StringUtils.isBlank(pathTag)){
+            pathTag = "COMMON";
+        }
+        if("INOUT".equals(pathTag)) return getInoutFilePath();
+        if("PATROL".equals(pathTag)) return getPatrolFilePath();
+        if("DEPT".equals(pathTag)) return getDeptFilePath();
+
+        return getCommonFilePath();
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+     * @return
+     */
+    public String getPatrolFilePath() {
+        String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撴枃浠惰矾寰�
+     * @return
+     */
+    public String getInoutFilePath() {
+        String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
+
+    /**
+     * 鑾峰彇搴撳尯璺緞涓嬫枃浠�
+     * @return
+     */
+    public String getDeptFilePath() {
+
+        String basePath = FrameworkConfig.getProfile() + "IMG/"+ FrameworkConfig.getCompanyId() + "/SECURITY/";
+
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
+
+    /**
+     * 鑾峰彇鍏叡璺緞
+     * @return
+     */
+    public String getCommonFilePath() {
+
+        String basePath = FrameworkConfig.getProfile() + "COMMON/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
+
+    /**
+     * 鍘嬬缉鍥剧墖
+     *
+     * @param filePath   鍘嬬缉鍓嶈矾寰�
+     * @param scale      鍘嬬缉姣斾緥
+     * @param outputPath 鍘嬬缉鍚庤矾寰�
+     * @throws IOException
+     */
+    public void compressedImage(String filePath, double scale, String outputPath) throws IOException {
+        BufferedImage bufferedImage = ImageIO.read(new File(filePath));
+        int newWidth = (int) (bufferedImage.getWidth() * scale);
+        int newHeight = (int) (bufferedImage.getHeight() * scale);
+
+        //鍒涘缓鍘嬬缉鍚庣殑鍥剧墖
+        BufferedImage compressedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
+        Graphics2D graphics2D = compressedImage.createGraphics();
+
+        //缁樺埗鍘熷鍥剧墖鍒板帇缂╁悗鐨勫浘鐗囦笂
+        graphics2D.drawImage(bufferedImage, 0, 0, newWidth, newHeight, null);
+        graphics2D.dispose();
+
+        ImageIO.write(compressedImage, "jpg", new File(outputPath));
+    }
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
index 7aba052..b2f2136 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -62,22 +62,22 @@
 
     /**
      * 鏍规嵁鏉′欢鏌ヨ
-     * @param companyId
-     * @param deptId
-     * @param completeStatus
      * @return
      */
-    public List<InoutNoticeIn> getNoticeIn(String companyId, String deptId, String completeStatus) {
+    public List<InoutNoticeIn> getNoticeIn(NoticeParam param) {
 
         QueryWrapper<InoutNoticeIn> queryWrapper = new QueryWrapper<>();
-        if(StringUtils.isNotBlank(companyId)){
-            queryWrapper.eq("company_id", companyId);
+        if(StringUtils.isNotBlank(param.getCompanyId())){
+            queryWrapper.eq("company_id", param.getCompanyId());
         }
-        if(StringUtils.isNotBlank(deptId)){
-            queryWrapper.eq("dept_id", deptId);
+        if(StringUtils.isNotBlank(param.getDeptId())){
+            queryWrapper.eq("dept_id", param.getDeptId());
         }
-        if(StringUtils.isNotBlank(completeStatus)){
-            queryWrapper.eq("complete_status", completeStatus);
+        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+            queryWrapper.eq("complete_status", param.getCompleteStatus());
+        }
+        if(StringUtils.isNotBlank(param.getKey())){
+            queryWrapper.like("name", param.getKey());
         }
         queryWrapper.orderByDesc("create_time");
         
@@ -97,16 +97,6 @@
     }
 
     /**
-     * 鏌ヨ鏁版嵁
-     * @param companyId
-     * @param deptId
-     * @return
-     */
-    public List<InoutNoticeIn> listNoticeIn(String companyId, String deptId) {
-        return this.getNoticeIn(companyId, deptId, Constant.COMPLETE_STATUS_NONE);
-    }
-
-    /**
      *  鏌ヨ鏁版嵁
      * @param companyId
      * @return
@@ -115,7 +105,10 @@
         if (StringUtils.isEmpty(companyId)) {
             companyId = ContextUtil.getCompanyId();
         }
-        return this.getNoticeIn(companyId, null, Constant.COMPLETE_STATUS_NONE);
+        NoticeParam param = new NoticeParam();
+        param.setCompanyId(companyId);
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        return this.getNoticeIn(param);
     }
 
     /**
@@ -183,22 +176,21 @@
 
     /**
      * 鏍规嵁鏉′欢鏌ヨ
-     * @param companyId
-     * @param deptId
-     * @param completeStatus
      * @return
      */
-    public List<InoutNoticeOut> getNoticeOut(String companyId, String deptId, String completeStatus) {
-
+    public List<InoutNoticeOut> getNoticeOut(NoticeParam param) {
         QueryWrapper<InoutNoticeOut> queryWrapper = new QueryWrapper<>();
-        if(StringUtils.isNotBlank(companyId)){
-            queryWrapper.eq("company_id", companyId);
+        if(StringUtils.isNotBlank(param.getCompanyId())){
+            queryWrapper.eq("company_id", param.getCompanyId());
         }
-        if(StringUtils.isNotBlank(deptId)){
-            queryWrapper.eq("dept_id", deptId);
+        if(StringUtils.isNotBlank(param.getDeptId())){
+            queryWrapper.eq("dept_id", param.getDeptId());
         }
-        if(StringUtils.isNotBlank(completeStatus)){
-            queryWrapper.eq("complete_status", completeStatus);
+        if(StringUtils.isNotBlank(param.getCompleteStatus())){
+            queryWrapper.eq("complete_status", param.getCompleteStatus());
+        }
+        if(StringUtils.isNotBlank(param.getKey())){
+            queryWrapper.like("name", param.getKey());
         }
         queryWrapper.orderByDesc("create_time");
 
@@ -218,16 +210,6 @@
     }
 
     /**
-     * 鏌ヨ鏁版嵁
-     * @param companyId
-     * @param deptId
-     * @return
-     */
-    public List<InoutNoticeOut> listNoticeOut(String companyId, String deptId) {
-        return this.getNoticeOut(companyId, deptId, Constant.COMPLETE_STATUS_NONE);
-    }
-
-    /**
      * Mybatis-plus 鑾峰彇淇℃伅
      * @param companyId
      * @return
@@ -236,7 +218,10 @@
         if (StringUtils.isEmpty(companyId)) {
             companyId = ContextUtil.getCompanyId();
         }
-        return this.getNoticeOut(companyId, null,Constant.COMPLETE_STATUS_NONE);
+        NoticeParam param = new NoticeParam();
+        param.setCompanyId(companyId);
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        return this.getNoticeOut(param);
     }
 
     /**
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
index 80327b4..21012e6 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -2,19 +2,28 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.bill.InoutBill;
 import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.FoodVariety;
 import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.data.InoutData;
 import com.fzzy.igds.data.InoutParam;
+import com.fzzy.igds.data.InoutPrintBill;
+import com.fzzy.igds.domain.Depot;
 import com.fzzy.igds.domain.InoutRecord;
 import com.fzzy.igds.mapper.InoutRecordMapper;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.DateUtil;
+import com.fzzy.igds.utils.NumberUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
+import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -30,6 +39,12 @@
     @Resource
     private InoutRecordMapper inoutRecordMapper;
     @Resource
+    private FileService fileService;
+    @Resource
+    private SysDeptService sysDeptService;
+    @Resource
+    private DepotService depotService;
+    @Resource
     private RedisCache redisCache;
 
     /**
@@ -38,6 +53,12 @@
      * @param param
      */
     public void listPageInout(Page<InoutRecord> page, InoutParam param) {
+        if(StringUtils.isBlank(param.getCompanyId())){
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if(StringUtils.isBlank(param.getDeptId())){
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
         QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
         inoutRecordMapper.selectPage(page, queryWrapper);
     }
@@ -47,7 +68,14 @@
      * @param param
      */
     public List<InoutRecord> listInout(InoutParam param) {
+        if(StringUtils.isBlank(param.getCompanyId())){
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if(StringUtils.isBlank(param.getDeptId())){
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
         QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
+
         return inoutRecordMapper.selectList(queryWrapper);
     }
 
@@ -57,16 +85,32 @@
      */
     public QueryWrapper<InoutRecord> getQueryWrapper(InoutParam param) {
         QueryWrapper<InoutRecord> 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.getCompanyId())) {
+            queryWrapper.eq("company_id", param.getCompanyId());
+        }
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            queryWrapper.eq("dept_id", param.getDeptId());
+        }
         if (StringUtils.isNotBlank(param.getCustomerName())) {
             queryWrapper.like("customer_name", param.getCustomerName());
         }
+
+        if (StringUtils.isNotBlank(param.getId())) {
+            queryWrapper.eq("id", param.getId());
+        }
+        if (StringUtils.isNotBlank(param.getPlateNum())) {
+            queryWrapper.like("plate_num", param.getPlateNum());
+        }
         if (StringUtils.isNotBlank(param.getWeightTag())) {
+            //鏌ヨ寰呯О閲嶇殑
             queryWrapper.likeRight("progress", param.getWeightTag());
+        }
+        if (StringUtils.isNotBlank(param.getProgressTag())) {
+            //鏈畬鎴愮殑
+            queryWrapper.ne("progress", param.getProgressTag());
+        }
+        if (StringUtils.isNotBlank(param.getProgress())) {
+            queryWrapper.eq("progress", param.getProgress());
         }
         if (StringUtils.isNotBlank(param.getFoodVariety())) {
             queryWrapper.eq("food_variety", param.getFoodVariety());
@@ -86,7 +130,9 @@
         if (null != param.getEnd()) {
             queryWrapper.le("create_time", DateUtil.getNextZero(param.getEnd()));
         }
-        queryWrapper.eq("record_status", "NORMAL"); //姝e父鐘舵�佺殑鍗曞瓙
+        queryWrapper.eq("record_status", Constant.RECORD_STATUS_NORMAL); //姝e父鐘舵�佺殑鍗曞瓙
+        queryWrapper.or();
+        queryWrapper.eq("record_status", Constant.RECORD_STATUS_ADD); //琛ュ綍鍗曞瓙鐨勫崟瀛�
         queryWrapper.orderByDesc("create_time");
 
         return queryWrapper;
@@ -94,16 +140,17 @@
 
 
     /**
-     * 鏍规嵁id鏌ヨ鏁版嵁
-     * @param id
+     * 鏌ヨ鏁版嵁
+     * @param param
      * @return
      */
-    public InoutRecord selectById(String id) {
-        if(StringUtils.isBlank(id)){
-            return null;
-
+    public InoutRecord selectOne(InoutParam param) {
+        if(StringUtils.isBlank(param.getCompanyId())){
+            param.setCompanyId(ContextUtil.getCompanyId());
         }
-        return inoutRecordMapper.selectById(id);
+        QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
+
+        return inoutRecordMapper.selectOne(queryWrapper);
     }
 
     /**
@@ -122,8 +169,59 @@
         queryWrapper.eq("plate_num", plateNum);
         queryWrapper.ne("progress", Constant.PROGRESS_RECORD);
         queryWrapper.eq("record_status", "NORMAL");
+        queryWrapper.or();
+        queryWrapper.eq("record_status", Constant.RECORD_STATUS_ADD); //琛ュ綍鍗曞瓙鐨勫崟瀛�
 
         return inoutRecordMapper.selectCount(queryWrapper);
+    }
+
+    /**
+     * 鎵嬪姩琛ュ崟
+     * @param data
+     * @return
+     */
+    public String handAddInoutRecord(InoutData data) {
+
+        //琛ュ崟鏁版嵁鐩存帴鍒扮粨鏋滅姸鎬�
+        data.setRecordStatus(Constant.RECORD_STATUS_ADD);
+        data.setProgress(Constant.PROGRESS_RECORD);
+        if(null != data.getPerWet() && data.getPerWet() > 0){
+            data.setCheckStatus(Constant.STATUS_CHECK);
+        }
+        String loginUser = ContextUtil.getLoginUserName();
+        if (StringUtils.isEmpty(data.getRegisterUser())) {
+            data.setRegisterUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getFullWeightUser())) {
+            data.setFullWeightUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getEmptyWeightUser())) {
+            data.setEmptyWeightUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getHandleUser())) {
+            data.setHandleUser(loginUser);
+        }
+        if (StringUtils.isEmpty(data.getCompleteUser())) {
+            data.setCompleteUser(loginUser);
+        }
+
+        if (null == data.getCompleteTime()) {
+            data.setCompleteTime(new Date());
+        }
+
+        InoutRecord record = new InoutRecord();
+        BeanUtils.copyProperties(data, record);
+        //淇濆瓨
+        int num = this.addInoutRecord(record);
+
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), record.getId(), null, "INOUT");
+
+        if (num > 0) {
+            return null;
+        } else {
+            return "淇濆瓨澶辫触锛�";
+        }
     }
 
     /**
@@ -172,6 +270,38 @@
         //updateInoutCache(data);
         return num;
 
+    }
+
+    /**
+     * 寮傚父缁堟
+     * @param data
+     * @return
+     */
+    public String errorInoutData(InoutRecord data) {
+
+        InoutParam param = new InoutParam();
+        param.setId(data.getId());
+        data = this.selectOne(param);
+        if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
+            return "褰撳墠淇℃伅宸插仛寮傚父澶勭悊锛屼笉鏀寔閲嶅鎵ц锛�";
+        }
+
+        String msg = " 浜�" + DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm") + " 琚� " + ContextUtil.getLoginUserName() + " 鎵ц缁堟锛屽師鍥狅細" + data.getRemarks();
+
+        data.setRemarks(msg);
+        data.setProgress(Constant.PROGRESS_RECORD);
+        data.setRecordStatus(Constant.RECORD_STATUS_DEL);
+        data.setCompleteTime(new Date());
+
+        int i = this.updateInoutRecord(data);
+
+        //TODO 鍒犻櫎缂撳瓨
+
+        if(i > 0){
+            return null;
+        }else {
+            return "鎿嶄綔澶辫触锛�";
+        }
     }
 
     /**
@@ -262,4 +392,261 @@
         }
     }
 
+    /**
+     * 鑾峰彇鍏ュ簱杩囩鍗曟暟鎹俊鎭�
+     *
+     * @param data
+     * @return
+     */
+    public String inWeightBill(InoutRecord data) {
+
+        // 鑾峰彇琛ㄥ崟鏁版嵁
+        InoutPrintBill bill = this.createBillData(data, "鍏ュ簱鍒掔爜鍗�");
+
+        // 璋冩暣妯$増鏁版嵁骞惰繑鍥�
+        String htmlStr = InoutBill.IN_WEIGHT_DEFAULT;
+
+        htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
+
+        htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
+        htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
+        htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
+        htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
+        htmlStr = htmlStr.replace("serId", bill.getSerId());
+
+        htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
+        htmlStr = htmlStr.replace("deptName", bill.getUnitName());
+
+        htmlStr = htmlStr.replace("driverName", bill.getDriverName());
+        htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
+        htmlStr = htmlStr.replace("userContact", bill.getUserContact());
+        htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
+        htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
+        htmlStr = htmlStr.replace("depotName", bill.getDepotName());
+        htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
+
+        htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
+        htmlStr = htmlStr.replace("fullWeight",
+                new DecimalFormat("0.00").format(bill.getFullWeight()));
+        htmlStr = htmlStr.replace("emptyWeight",
+                new DecimalFormat("0.00").format(bill.getEmptyWeight()));
+        htmlStr = htmlStr.replace("netWeight",
+                new DecimalFormat("0.00").format(bill.getNetWeight()));
+
+        htmlStr = htmlStr.replace("deImpurity", bill.getDeImpurity() + "");
+        htmlStr = htmlStr.replace("deWet", bill.getDeWet() + "");
+
+        htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
+        htmlStr = htmlStr.replace("deCheck", bill.getDeCheck() + "");
+        htmlStr = htmlStr.replace("addCheck", bill.getAddCheck() + "");
+
+        htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
+        htmlStr = htmlStr.replace("settleWeight",
+                new DecimalFormat("0.00").format(bill.getSettleWeight()));
+
+        htmlStr = htmlStr.replace("dePackage", bill.getDePackage() + "");
+        htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
+        htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
+        htmlStr = htmlStr.replace("price", bill.getPrice());
+        htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
+        htmlStr = htmlStr.replace("wet", bill.getWet() + "");
+        htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
+
+        htmlStr = htmlStr.replace("checkStatus", bill.getCheckStatus());
+        htmlStr = htmlStr.replace("remark", bill.getRemark());
+        htmlStr = htmlStr.replace("moneyName", bill.getMoneyName());
+
+        htmlStr = htmlStr.replace("unitName", bill.getUnitName());
+        htmlStr = htmlStr.replace("time", bill.getRegisterTime());
+        htmlStr = htmlStr.replace("handleStart", "");
+        htmlStr = htmlStr.replace("handleEnd", "");
+        htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
+        htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
+        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
+
+        htmlStr = htmlStr.replaceAll("weightUser",
+                bill.getWeightUser() == null ? "" : bill.getWeightUser());
+        htmlStr = htmlStr.replaceAll("handleUser",
+                bill.getHandleUser() == null ? "" : bill.getHandleUser());
+        htmlStr = htmlStr.replaceAll("keeperName",
+                bill.getKeeperUser() == null ? "" : bill.getKeeperUser());
+
+
+        return htmlStr;
+    }
+
+    /**
+     * 鑾峰彇鍑哄簱杩囩鍗�
+     *
+     * @param data
+     * @return
+     */
+    public String outWeightBill(InoutRecord data) {
+        // 鑾峰彇琛ㄥ崟鏁版嵁
+        InoutPrintBill bill = this.createBillData(data, "鍑哄簱鍒掔爜鍗�");
+
+        //榛樿妯$増
+        String htmlStr = InoutBill.OUT_WEIGHT_DEFAULT;
+
+        htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
+
+        htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
+        htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
+        htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
+        htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
+        htmlStr = htmlStr.replace("serId", bill.getSerId());
+
+        htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
+        htmlStr = htmlStr.replace("deptName", bill.getUnitName());
+
+        htmlStr = htmlStr.replace("driverName", bill.getDriverName());
+        htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
+        htmlStr = htmlStr.replace("userContact", bill.getUserContact());
+        htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
+        htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
+        htmlStr = htmlStr.replace("depotName", bill.getDepotName());
+        htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
+
+        htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
+        htmlStr = htmlStr.replace("fullWeight",
+                new DecimalFormat("0.00").format(bill.getFullWeight()));
+        htmlStr = htmlStr.replace("emptyWeight",
+                new DecimalFormat("0.00").format(bill.getEmptyWeight()));
+        htmlStr = htmlStr.replace("netWeight",
+                new DecimalFormat("0.00").format(bill.getNetWeight()));
+        htmlStr = htmlStr.replace("dePackage",
+                new DecimalFormat("0.00").format(bill.getDePackage()));
+        htmlStr = htmlStr.replace("remark", bill.getRemark());
+
+        htmlStr = htmlStr.replace("settleWeight",
+                new DecimalFormat("0.00").format(bill.getSettleWeight()));
+        htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
+        htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
+        htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
+        htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
+        htmlStr = htmlStr.replace("price", bill.getPrice());
+        htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
+        htmlStr = htmlStr.replace("wet", bill.getWet() + "");
+        htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
+
+        htmlStr = htmlStr.replace("unitName", getValue(bill.getUnitName()));
+        htmlStr = htmlStr.replace("time", bill.getRegisterTime());
+        htmlStr = htmlStr.replace("handleStart", "");
+        htmlStr = htmlStr.replace("handleEnd", "");
+        htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
+        htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
+        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
+
+        htmlStr = htmlStr.replaceAll("weightUser", getValue(bill.getWeightUser()));
+        htmlStr = htmlStr.replace("handleUser", getValue(bill.getHandleUser()));
+        htmlStr = htmlStr.replaceAll("keeperName", getValue(bill.getKeeperUser()));
+        return htmlStr;
+    }
+
+
+    public String getValue(String value) {
+        if (null == value) return "";
+        return value;
+    }
+
+    /**
+     * 灏佽杩囩鍗曟暟鎹�
+     *
+     * @param data
+     * @param billTitle
+     * @return
+     */
+    private InoutPrintBill createBillData(InoutRecord data, String billTitle) {
+        InoutPrintBill bill = new InoutPrintBill();
+
+        bill.setBillTitle(billTitle);
+
+        SysDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getDeptId());
+        if (null != dept && StringUtils.isNotEmpty(dept.getDeptName())) {
+            bill.setBillTitle(dept.getDeptName() + billTitle);
+            bill.setDeptId(dept.getDeptId() + "");
+            bill.setDeptName(dept.getDeptName() + "");
+            bill.setUnitName(dept.getDeptName());
+        }
+
+        bill.setCompanyId(data.getCompanyId() == null ? "" : data
+                .getCompanyId());
+        if (null == data.getRegisterTime()) {
+            data.setRegisterTime(new Date());
+        }
+        bill.setRegisterTime(DateFormatUtils.format(data.getRegisterTime(),
+                "yyyy-MM-dd HH:mm"));
+
+        if (null == data.getCompleteTime()) {
+            data.setCompleteTime(new Date());
+        }
+        bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(),
+                "yyyy-MM-dd HH:mm"));
+
+        bill.setEmptyTime(DateFormatUtils.format(data.getEmptyWeightTime(),
+                "yyyy-MM-dd HH:mm:ss"));
+        bill.setFullTime(DateFormatUtils.format(data.getFullWeightTime(),
+                "yyyy-MM-dd HH:mm:ss"));
+        bill.setSerId(data.getId());
+        if ("5016".equals(data.getCompanyId()) || "5347".equals(data.getCompanyId()) || "5352".equals(data.getCompanyId())) {
+            bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(), "yyyy-MM-dd"));
+            bill.setSerId(data.getId().substring(2));
+
+        }
+
+        //瀹㈡埛淇℃伅
+        bill.setCustomerName(data.getCustomerName() == null ? "" : data.getCustomerName());
+        bill.setUserId(data.getUserId() == null ? "" : data.getUserId());
+        bill.setUserAddress(data.getUserAddress() == null ? "" : data.getUserAddress());
+        bill.setUserContact(data.getUserContact() == null ? "" : data.getUserContact());
+
+
+        bill.setNoticeId(data.getNoticeId());
+
+
+        bill.setDriverName(data.getUserName() == null ? "" : data.getUserName());
+
+        // 鑾峰彇浠撳簱淇℃伅
+        Depot depot = depotService.getCacheDepot(data.getCompanyId(),
+                data.getDepotId());
+        if (depot != null) {
+            bill.setDepotName(depot.getName() == null ? "" : depot.getName());
+            bill.setHandleUser(depot.getStoreKeeperName() == null ? "" : depot
+                    .getStoreKeeperName());
+        }
+
+        bill.setFoodVariety(FoodVariety.getMsg(data.getFoodVariety()));
+        bill.setFoodLocation(data.getFoodLocation() == null ? "" : data
+                .getFoodLocation());
+        bill.setPlateNum(data.getPlateNum());
+
+        bill.setFullWeight(data.getFullWeight());
+        bill.setEmptyWeight(data.getEmptyWeight());
+        bill.setNetWeight(data.getNetWeight());
+        bill.setRecordWeight(data.getRecordWeight());
+        bill.setCheckStatus(data.getCheckStatus().equals(Constant.STATUS_CHECK) ? "鍚堟牸" : "涓嶅悎鏍�");
+
+        bill.setDeOther(data.getDeOther());
+        bill.setSettleWeight(data.getSettleWeight());
+
+        bill.setPrice(data.getPrice() == null ? "" : data.getPrice() + "");
+        if (data.getSettleMoney() <= 0) {
+            if (null != data.getPrice() && null != data.getRecordWeight()) {
+                data.setSettleMoney(NumberUtil.keepPrecision(data.getPrice() * data.getRecordWeight(), 2));
+            }
+        }
+        bill.setSettleMoney(data.getSettleMoney() == null ? "" : data.getSettleMoney() + "");
+        bill.setRemark(data.getRemarks() == null ? "" : data.getRemarks());
+
+        if (Constant.TYPE_IN.equals(data.getType())) {
+            bill.setWeightUser(data.getFullWeightUser());
+        }
+        if (Constant.TYPE_OUT.equals(data.getType())) {
+            bill.setWeightUser(data.getEmptyWeightUser());
+        }
+        bill.setHandleUser(data.getHandleUser());
+        bill.setKeeperUser(depot.getStoreKeeperName());
+        return bill;
+    }
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java
new file mode 100644
index 0000000..97cd9a1
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java
@@ -0,0 +1,49 @@
+package com.fzzy.igds.utils;
+ 
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+
+/**
+ * 鏁板瓧鏍煎紡鍖栧伐鍏风被
+ */
+public class NumberUtil {
+
+	/**
+	 * 瀵筪ouble绫诲瀷鐨勬暟鍊间繚鐣欐寚瀹氫綅鏁扮殑灏忔暟銆�<br>
+	 * 璇ユ柟娉曡垗鍏ユā寮忥細鍚戔�滄渶鎺ヨ繎鐨勨�濇暟瀛楄垗鍏ワ紝濡傛灉涓庝袱涓浉閭绘暟瀛楃殑璺濈鐩哥瓑锛屽垯涓哄悜涓婅垗鍏ョ殑鑸嶅叆妯″紡銆�<br>
+	 * <b>娉ㄦ剰锛�</b>濡傛灉绮惧害瑕佹眰姣旇緝绮剧‘璇蜂娇鐢� keepPrecision(String number, int precision)鏂规硶
+	 * @param number  瑕佷繚鐣欏皬鏁扮殑鏁板瓧
+	 * @param precision 灏忔暟浣嶆暟
+	 * @return double 濡傛灉鏁板�艰緝澶э紝鍒欎娇鐢ㄧ瀛﹁鏁版硶琛ㄧず
+	 */
+	public static double keepPrecision(Double number, int precision) {
+		if(null == number || 0.0 == number ) return 0.0;
+		BigDecimal bg = new BigDecimal(number);
+		return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).doubleValue();
+	}
+ 
+	/**
+	 * 瀵筬loat绫诲瀷鐨勬暟鍊间繚鐣欐寚瀹氫綅鏁扮殑灏忔暟銆�<br>
+	 * 璇ユ柟娉曡垗鍏ユā寮忥細鍚戔�滄渶鎺ヨ繎鐨勨�濇暟瀛楄垗鍏ワ紝濡傛灉涓庝袱涓浉閭绘暟瀛楃殑璺濈鐩哥瓑锛屽垯涓哄悜涓婅垗鍏ョ殑鑸嶅叆妯″紡銆�<br>
+	 * <b>娉ㄦ剰锛�</b>濡傛灉绮惧害瑕佹眰姣旇緝绮剧‘璇蜂娇鐢� keepPrecision(String number, int precision)鏂规硶
+	 * @param number  瑕佷繚鐣欏皬鏁扮殑鏁板瓧
+	 * @param precision 灏忔暟浣嶆暟
+	 * @return float 濡傛灉鏁板�艰緝澶э紝鍒欎娇鐢ㄧ瀛﹁鏁版硶琛ㄧず
+	 */
+	public static float keepPrecision(Float number, int precision) {
+		if(null == number) return 0f;
+		BigDecimal bg = new BigDecimal(number);
+		return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).floatValue();
+	}
+	/**
+	 * double杞瓧绗︿覆锛岄伩鍏嶅嚭鐜扮瀛﹁鏁版硶
+	 * @param d
+	 * @return
+	 */
+	public static String doubleToStr(Double d) {
+		if(null == d) return "";
+		DecimalFormat df = new DecimalFormat("0.0");
+		return df.format(d);
+	}
+ 
+}
diff --git a/fzzy-igdss-view/pom.xml b/fzzy-igdss-view/pom.xml
index 8bd8fd0..38c1a6e 100644
--- a/fzzy-igdss-view/pom.xml
+++ b/fzzy-igdss-view/pom.xml
@@ -96,11 +96,29 @@
             </exclusions>
         </dependency>
 
-<!--        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.6</version>
-        </dependency>-->
+        <dependency>
+            <groupId>com.bstek.dorado</groupId>
+            <artifactId>dorado-uploader</artifactId>
+            <version>1.0.20</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-jcl</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>slf4j-log4j12</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>log4j</artifactId>
+                    <groupId>log4j</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>slf4j-jdk14</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.commons</groupId>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/FilePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/FilePR.java
new file mode 100644
index 0000000..01613a6
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/FilePR.java
@@ -0,0 +1,78 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.Expose;
+import com.fzzy.common.utils.Base64Util;
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.utils.ContextUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description 鏂囦欢涓婁紶
+ * @Author CZT
+ * @Date 2025/11/29 11:02
+ */
+@Slf4j
+@Component
+public class FilePR {
+
+	@Resource
+	private FileService fileService;
+
+	/**
+	 * filePR#parseExcel
+	 *
+	 * @param fileName
+	 * @return
+	 */
+	@Expose
+	public String parseExcel(String fileName) {
+		return fileName;
+	}
+
+	/**
+	 * filePR#listFile 鏍规嵁鏉′欢鑾峰彇鍒楄〃鏁版嵁
+	 *
+	 * @param bizId
+	 * @param bizId
+	 * @return
+	 */
+	@DataProvider
+	public List<FileInfo> listFile(String bizId) {
+		if (null == bizId){
+			return null;
+		}
+
+		return fileService.listFile(ContextUtil.getCompanyId(),ContextUtil.subDeptId(null), bizId, null);
+	}
+
+	/**
+	 *
+	 * filePR#getImg
+	 * 鑾峰彇鍥剧墖淇℃伅
+	 *
+	 * @param file
+	 * @return
+	 */
+	@Expose
+	public Map<String, String> getImg(FileInfo file) {
+		Map<String, String> result = new HashMap<String, String>();
+		result.put("code", "SUCCESS");
+		String basePath = fileService.getFileSavePath("COMMON");
+
+		String imgData = Base64Util.getImageStr(basePath + file.getFileName());
+
+		if (null == imgData) {
+			result.put("code", "ERROR");
+		}
+		result.put("data", imgData);
+		return result;
+	}
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/FileUploadManage.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/FileUploadManage.java
new file mode 100644
index 0000000..8066365
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/FileUploadManage.java
@@ -0,0 +1,94 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.uploader.UploadFile;
+import com.bstek.dorado.uploader.annotation.FileResolver;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.utils.ContextUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.Map;
+
+
+/**
+ * @Description Dorado7 闄勪欢涓婁紶鍏叡绠$悊灞�
+ * @Author CZT
+ * @Date 2025/12/05 10:05
+ */
+@Slf4j
+@Component
+public class FileUploadManage {
+
+	@Resource
+	private FileService fileService;
+
+	/**
+	 * 涓婁紶搴撳尯楦熺灠鍥�
+	 * fileUploadManage#imgFile
+	 *
+	 * @param file
+	 * @param parameter
+	 * @return
+	 */
+	@FileResolver
+	public String imgFile(UploadFile file, Map<String, Object> parameter) {
+
+		String fileId = null;
+		try {
+
+			String basePath = fileService.getFileSavePath("DEPT");
+
+			fileId = "aerial-" + ContextUtil.subDeptId(null)
+					+ file.getFileName().substring(
+					file.getFileName().lastIndexOf("."));
+
+			file.transferTo(new File(basePath + fileId));
+
+		} catch (IllegalStateException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+
+		return fileId;
+	}
+
+	/**
+	 * 涓婁紶鍑哄叆搴撻檮浠�
+	 * fileUploadManage#inoutFile
+	 *
+	 * @param file
+	 * @param parameter
+	 * @return
+	 */
+	@FileResolver
+	public String inoutFile(UploadFile file, Map<String, Object> parameter) {
+		//娴佺▼
+		String bizTag = (String) parameter.get("bizTag");
+		String newFileName = null;
+		try {
+			String basePath = fileService.getFileSavePath("INOUT");
+			// 鑾峰彇鏂扮殑ID
+			newFileName = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
+			if(StringUtils.isNotEmpty(bizTag)){
+				newFileName = bizTag + "_" + newFileName;
+			}
+			// 鏂囦欢鍚庣紑鍚�
+			String suffixName = file.getFileName().substring(file.getFileName().lastIndexOf("."));
+			// 鍚堟垚鏂扮殑鏂囦欢鍚�
+
+			newFileName = newFileName + suffixName;
+			file.transferTo(new File(basePath + newFileName));
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return newFileName;
+	}
+
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
new file mode 100644
index 0000000..46f4786
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
@@ -0,0 +1,161 @@
+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.InoutData;
+import com.fzzy.igds.data.InoutParam;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撹鍗曢〉闈㈢鐞�
+ * @Author CZT
+ * @Date 2025/12/05 10:40
+ */
+@Component
+public class InoutDataPR {
+
+    @Resource
+    private InoutRecordService inoutRecordService;
+
+    /**
+     * inoutDataPR#pageInoutData
+     *
+     * @param page
+     * @param param
+     * @throws Exception
+     */
+    @DataProvider
+    public void pageInoutData(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())));
+    }
+
+    /**
+     * 淇濆瓨鍑哄叆搴撴暟鎹� inoutDataPR#saveInoutData
+     */
+    @DataResolver
+    public String saveInoutData(InoutRecord data) {
+        if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
+            return "绯荤粺锛氬凡缁忓垹闄ょ殑鏁版嵁涓嶆敮鎸佷慨鏀癸紒";
+        }
+        if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
+            return "绯荤粺锛氭湭缁撴潫娴佺▼鐨勬暟鎹笉鏀寔淇敼锛�";
+        }
+        int i = inoutRecordService.updateInoutRecord(data);
+        if (i > 0) {
+            return null;
+        } else {
+            return "淇濆瓨澶辫触锛�";
+        }
+    }
+
+    /**
+     * inoutDataPR#errorInoutData 鍑哄叆搴撴暟鎹墽琛� 寮傚父缁堟
+     *
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    @DataResolver
+    @Transactional
+    public String errorInoutData(InoutRecord data) {
+        return inoutRecordService.errorInoutData(data);
+    }
+
+    /**
+     * inoutDataPR#printWeightBill 鑾峰彇鎵撳嵃鍗曚俊鎭�
+     *
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    @Expose
+    public String printWeightBill(InoutRecord data) {
+        if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
+            return "鍒犻櫎鐨勬暟鎹笉鏀寔鎵撳嵃锛�";
+        }
+        if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
+            return "鏈畬鎴愮殑鏁版嵁涓嶆敮鎸佹墦鍗帮紒";
+        }
+
+        if (Constant.TYPE_IN.equals(data.getType())) {
+            return inoutRecordService.inWeightBill(data);
+        } else {
+            return inoutRecordService.outWeightBill(data);
+        }
+    }
+
+
+    /**
+     * inoutDataPR#initDataByHand 鏂板
+     *
+     * @return
+     */
+    @DataProvider
+    public InoutData initDataByHand(String type) {
+        SysUser user = ContextUtil.getLoginUser();
+        InoutData data = new InoutData();
+        data.setCompanyId(user.getCompanyId());
+        data.setRegisterTime(new Date());
+        data.setType(type);
+        data.setRegisterUser(user.getUserName());
+        data.setDeptId(ContextUtil.subDeptId(user));
+        data.setCheckUser(user.getUserName());
+        data.setProgress(Constant.PROGRESS_RECORD);
+        data.setRecordStatus(Constant.RECORD_STATUS_ADD);
+        return data;
+    }
+
+    /**
+     * 琛ュ崟 inoutDataPR#addData
+     */
+    @DataResolver
+    public String addData(InoutData data) {
+        if (data.getSettleWeight() <= 0.0) {
+            return "绯荤粺锛氱粨绠楅噸閲忓繀椤诲ぇ浜�0";
+        }
+
+        return inoutRecordService.handAddInoutRecord(data);
+    }
+
+    /**
+     * inoutDataPR#printWeightBill 鑾峰彇鎵撳嵃鍗曚俊鎭�
+     *
+     * @param data
+     * @return
+     * @throws Exception
+     */
+    @Expose
+    public String printWeightBillHand(InoutData data) {
+        if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
+            return "鍒犻櫎鐨勬暟鎹笉鏀寔鎵撳嵃锛�";
+        }
+        if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
+            return "鏈畬鎴愮殑鏁版嵁涓嶆敮鎸佹墦鍗帮紒";
+        }
+
+        if (Constant.TYPE_IN.equals(data.getType())) {
+            return inoutRecordService.inWeightBill(data);
+        } else {
+            return inoutRecordService.outWeightBill(data);
+        }
+    }
+}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutHand.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutHand.view.xml
new file mode 100644
index 0000000..ff21b6a
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutHand.view.xml
@@ -0,0 +1,944 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.data.InoutData</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>
+      </PropertyDef>
+      <PropertyDef name="customerName">
+        <Property></Property>
+        <Property name="label">寰�鏉ュ崟浣�</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocation">
+        <Property></Property>
+        <Property name="label">绮浜у湴</Property>
+      </PropertyDef>
+      <PropertyDef name="foodYear">
+        <Property></Property>
+        <Property name="label">绮骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="deOther">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎵i噸</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">婊¤溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">婊¤溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightUser">
+        <Property></Property>
+        <Property name="label">婊¤溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">绌鸿溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">绌鸿溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightUser">
+        <Property></Property>
+        <Property name="label">绌鸿溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="netWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍑�閲�</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="settleWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻鍑�閲�</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="recordWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍏ュ簱閲嶉噺</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="handleStart">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="handleEnd">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨缁撴潫鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="handleUser">
+        <Property></Property>
+        <Property name="label">鍊间粨鎿嶄綔浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="completeTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="completeUser">
+        <Property></Property>
+        <Property name="label">瀹屾垚纭浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="remarks">
+        <Property></Property>
+        <Property name="label">澶囨敞淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="depotId">
+        <Property></Property>
+        <Property name="label">瑁呭嵏浠撳簱</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property name="label">鍑哄叆搴撶被鍨�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鍑哄簱</Property>
+                <Property name="value">OUT</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍏ュ簱</Property>
+                <Property name="value">IN</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodLevel">
+        <Property></Property>
+        <Property name="label">绮绛夌骇</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerFoodLevel&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="checkUser">
+        <Property></Property>
+        <Property name="label">璐ㄦ浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="price">
+        <Property name="dataType">double</Property>
+        <Property name="label">绮瀹氫环</Property>
+        <Property name="displayFormat">0.00 鍏�/鍏枻</Property>
+      </PropertyDef>
+      <PropertyDef name="noticeId">
+        <Property></Property>
+        <Property name="label">閫氱煡鍗曠紪鐮�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocationId">
+        <Property></Property>
+        <Property name="label">浜у湴鍚嶇О浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="checkTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">璐ㄦ鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="perWet">
+        <Property name="dataType">Double</Property>
+        <Property name="label">姘村垎</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="perImpurity">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鏉傝川</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="settleMoney">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻閲戦</Property>
+        <Property name="displayFormat">0.00 鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="settleTag">
+        <Property></Property>
+        <Property name="label">鏄惁缁撶畻</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鏈粨绠�</Property>
+                <Property name="value">N</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">宸茬粨绠�</Property>
+                <Property name="value">Y</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="settleTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">缁撶畻鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <Reference name="files">
+        <Property name="dataProvider">filePR#listFile</Property>
+        <Property name="dataType">[dtFileData]</Property>
+        <Property name="parameter">$${this.id}</Property>
+      </Reference>
+    </DataType>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">var TYPE = &quot;${request.getParameter('type')}&quot;;&#xD;
+var PROGRESS = &quot;WEIGHT_TAG&quot;;&#xD;
+      &#xD;
+      /**&#xD;
+      * 鍒锋柊椤甸潰&#xD;
+      */&#xD;
+      flush = function(){&#xD;
+      view.get(&quot;#btnSave&quot;).set(&quot;disabled&quot;,false);&#xD;
+      view.get(&quot;#btnPrintWeigh&quot;).set(&quot;disabled&quot;,true);&#xD;
+      view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,TYPE).flushAsync();&#xD;
+      };&#xD;
+      flush();&#xD;
+      &#xD;
+      /**&#xD;
+      * 鏁版嵁淇濆瓨鎻愪氦&#xD;
+      */&#xD;
+      save = function(){&#xD;
+      var data = view.get(&quot;#dsMain.data&quot;);&#xD;
+      if(data.validate() != 'ok'){&#xD;
+      $alert(&quot;鏁版嵁楠岃瘉澶辫触锛岃鏌ョ湅銆愬熀纭�淇℃伅銆戙�愭墻鏍峰寲楠屼俊鎭�戜腑绾㈣壊鎻愰啋锛�&quot;);&#xD;
+      return;&#xD;
+      }&#xD;
+      var netWeight = data.get(&quot;netWeight&quot;);&#xD;
+      if(netWeight &lt;= 0){&#xD;
+      $alert(&quot;鏁版嵁楠岃瘉澶辫触锛屻�愬熀纭�淇℃伅銆�-缁撶畻閲嶉噺蹇呴』澶т簬0锛�&quot;);&#xD;
+      return;&#xD;
+    }&#xD;
+    view.get(&quot;#uaSave&quot;).execute(function(result){&#xD;
+      if(result){&#xD;
+      $alert(&quot;淇濆瓨澶辫触锛�&quot;+result);&#xD;
+      }else{&#xD;
+      view.get(&quot;#btnSave&quot;).set(&quot;disabled&quot;,true);&#xD;
+      view.get(&quot;#btnPrintWeigh&quot;).set(&quot;disabled&quot;,false);&#xD;
+      $alert(&quot;淇濆瓨鎴愬姛锛屽彲浠ヨ繘琛屾墦鍗板拰閲嶆柊鎻愭柊琛ㄥ崟锛�&quot;);&#xD;
+      flush();&#xD;
+      &#xD;
+      }&#xD;
+      });&#xD;
+      }&#xD;
+      &#xD;
+      /**&#xD;
+      * 鑷姩璁$畻&#xD;
+      * @param name&#xD;
+      */&#xD;
+      deAutoByWeight = function () {&#xD;
+      &#xD;
+      var curData = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+      var fullWeight = curData.get(&quot;fullWeight&quot;);&#xD;
+      var emptyWeight = curData.get(&quot;emptyWeight&quot;);&#xD;
+      //鎵i噸淇℃伅&#xD;
+      var deOther = curData.get(&quot;deOther&quot;);&#xD;
+      &#xD;
+      if (fullWeight == 0 || emptyWeight == 0) {&#xD;
+      return;&#xD;
+      }&#xD;
+      // 鍑�閲�&#xD;
+      var netWeight = Number(fullWeight) - Number(emptyWeight);&#xD;
+      &#xD;
+      if (netWeight &lt;= 0) {&#xD;
+      $notify(&quot;鍑�閲嶅皬浜�0锛屽綋鍓嶇О閲嶅瓨鍦ㄩ�昏緫闂&quot;);&#xD;
+      return;&#xD;
+      }&#xD;
+      &#xD;
+      /** 鍏ュ簱閲嶉噺 = 鍑�閲� - 鎬绘墸閲�  */&#xD;
+      recordWeight = Number(netWeight) - Number(deOther);&#xD;
+      &#xD;
+      /** 缁撶畻閲嶉噺 = 鍑�閲� - 鎬绘墸閲� + 澧為噸 */&#xD;
+      settleWeight = Number(recordWeight);&#xD;
+      &#xD;
+      curData.set(&quot;netWeight&quot;, netWeight);&#xD;
+      curData.set(&quot;settleWeight&quot;, settleWeight);&#xD;
+      curData.set(&quot;recordWeight&quot;, recordWeight);&#xD;
+      };&#xD;
+      //鍒犻櫎闄勪欢&#xD;
+      delFile = function(){&#xD;
+      var entity = view.get(&quot;#dgFiles&quot;).getCurrentItem();&#xD;
+      view.get(&quot;#ajaxDelFile&quot;).set(&quot;parameter&quot;,{&#xD;
+      fileName:entity.get(&quot;fileName&quot;),&#xD;
+      createTime:entity.get(&quot;createTime&quot;)&#xD;
+      }).execute(function(result){&#xD;
+      if(result){&#xD;
+      $alert(result);&#xD;
+      }else{&#xD;
+      entity.remove();&#xD;
+      $alert(&quot;鍒犻櫎鎴愬姛锛�&quot;);&#xD;
+      }&#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="dataType">dtMain</Property>
+      <Property name="dataProvider">inoutDataPR#initDataByHand</Property>
+      <Property name="loadMode">manual</Property>
+    </DataSet>
+    <Container>
+      <Property name="className">c-data</Property>
+      <ToolBar>
+        <ToolBarButton id="btnSave">
+          <ClientEvent name="onClick">save();</ClientEvent>
+          <Property name="caption">鎻愪氦淇濆瓨</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-plus</Property>
+        </ToolBarButton>
+        <ToolBarButton id="btnPrintWeigh">
+          <ClientEvent name="onClick">printWeight();</ClientEvent>
+          <Property name="caption">鎵撳嵃杩囩鍗�</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-print</Property>
+          <Property name="disabled">true</Property>
+          <Property name="width">120</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">flush();</ClientEvent>
+          <Property name="caption">鍒锋柊椤甸潰</Property>
+          <Property name="exClassName">btn2</Property>
+          <Property name="iconClass">fa fa-refresh</Property>
+        </ToolBarButton>
+      </ToolBar>
+    </Container>
+    <Container>
+      <Property name="className">c-data</Property>
+      <TabControl id="tabControlMain" layoutConstraint="left">
+        <Property name="width">1300</Property>
+        <ControlTab>
+          <Property name="caption">鍩虹淇℃伅</Property>
+          <Property name="iconClass">fa fa-download</Property>
+          <Property name="width">150</Property>
+          <Property name="name">tabCommon</Property>
+          <Container>
+            <FieldSet layoutConstraint="padding:2" 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>
+                      <TextEditor>
+                        <Property name="blankText">-- 绯荤粺鑷姩鐢熸垚 --</Property>
+                      </TextEditor>
+                    </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="label">瑁呭嵏浠撳簱</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">userName</Property>
+                    <Property name="property">userName</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">userId</Property>
+                    <Property name="property">userId</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodVariety</Property>
+                    <Property name="property">foodVariety</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">perWet</Property>
+                    <Property name="property">perWet</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">userContact</Property>
+                    <Property name="property">userContact</Property>
+                    <Property name="label">鑱旂郴鐢佃瘽</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodLevel</Property>
+                    <Property name="property">foodLevel</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">perImpurity</Property>
+                    <Property name="property">perImpurity</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodYear</Property>
+                    <Property name="property">foodYear</Property>
+                    <Property name="trigger">yearDropDown</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">foodLocation</Property>
+                    <Property name="property">foodLocation</Property>
+                    <Property name="trigger">ddDicArea</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="label">瀹㈡埛鍚嶇О</Property>
+                    <Property name="property">customerName</Property>
+                    <Property name="editable">false</Property>
+                    <Property name="trigger">ddNotice</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">noticeId</Property>
+                    <Property name="property">noticeId</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                </AutoForm>
+              </Children>
+            </FieldSet>
+            <FieldSet layoutConstraint="padding:2" 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">
+                    <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                    <Property name="name">fullWeight</Property>
+                    <Property name="property">fullWeight</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">fullWeightTime</Property>
+                    <Property name="property">fullWeightTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">fullWeightUser</Property>
+                    <Property name="property">fullWeightUser</Property>
+                    <Property name="label">婊¤溅绉伴噸浜�</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                    <Property name="name">emptyWeight</Property>
+                    <Property name="property">emptyWeight</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">emptyWeightTime</Property>
+                    <Property name="property">emptyWeightTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">emptyWeightUser</Property>
+                    <Property name="property">emptyWeightUser</Property>
+                    <Property name="label">绌鸿溅绉伴噸浜�</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">
+                    <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                    <Property name="name">deOther</Property>
+                    <Property name="property">deOther</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">registerTime</Property>
+                    <Property name="property">registerTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">settleWeight</Property>
+                    <Property name="property">settleWeight</Property>
+                    <Property name="readOnly">true</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">recordWeight</Property>
+                    <Property name="property">recordWeight</Property>
+                    <Property name="readOnly">true</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement layoutConstraint="colSpan:2">
+                    <Property name="name">completeTime</Property>
+                    <Property name="property">completeTime</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                </AutoForm>
+              </Children>
+            </FieldSet>
+            <FieldSet layoutConstraint="padding:2" 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">price</Property>
+                    <Property name="property">price</Property>
+                    <Editor/>
+                  </AutoFormElement>
+                  <AutoFormElement>
+                    <Property name="name">settleMoney</Property>
+                    <Property name="property">settleMoney</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>
+          </Container>
+        </ControlTab>
+      </TabControl>
+      <TabControl id="tabControlImage" layoutConstraint="left">
+        <Property name="width">370</Property>
+        <ControlTab id="tabImage">
+          <Property name="name">tabImage</Property>
+          <Property name="caption">鍑哄叆搴撹繃绋嬭褰�</Property>
+          <FieldSet layoutConstraint="padding:10" layout="padding:5">
+            <Buttons>
+              <Button layoutConstraint="left">
+                <ClientEvent name="onClick">view.PROGRESS = &quot;WEIGHT_EMPTY&quot;;&#xD;
+                </ClientEvent>
+                <Property name="exClassName">btn1</Property>
+                <Property name="iconClass">fa fa-cloud-upload</Property>
+                <Property name="action">uploadImg</Property>
+                <Property name="caption">绌鸿溅绉扮収鐗�</Property>
+                <Property name="width">110</Property>
+              </Button>
+              <Button layoutConstraint="left">
+                <ClientEvent name="onClick">view.PROGRESS = &quot;WEIGHT_FULL&quot;;&#xD;
+                </ClientEvent>
+                <Property name="exClassName">btn2</Property>
+                <Property name="iconClass">fa fa-cloud-upload</Property>
+                <Property name="action">uploadImg1</Property>
+                <Property name="caption">婊¤溅绉扮収鐗�</Property>
+                <Property name="width">110</Property>
+              </Button>
+              <Button layoutConstraint="left">
+                <ClientEvent name="onClick">view.PROGRESS = &quot;HANDLE&quot;;</ClientEvent>
+                <Property name="caption">鍊间粨鐓х墖</Property>
+                <Property name="exClassName">btn4</Property>
+                <Property name="iconClass">fa fa-cloud-upload</Property>
+                <Property name="action">uploadImg2</Property>
+                <Property name="width">110</Property>
+              </Button>
+            </Buttons>
+            <Children>
+              <DataGrid id="dgFiles">
+                <Property name="dataSet">dsMain</Property>
+                <Property name="readOnly">true</Property>
+                <Property name="selectionMode">singleRow</Property>
+                <Property name="dataPath">#.files</Property>
+                <RowNumColumn/>
+                <DataColumn name="bizTag">
+                  <Property name="property">bizTag</Property>
+                  <Property name="visible">false</Property>
+                </DataColumn>
+                <DataColumn name="fileName">
+                  <Property name="property">fileName</Property>
+                </DataColumn>
+                <DataColumn>
+                  <ClientEvent name="onRenderCell">arg.dom.innerHTML = &quot;&lt;a href='javascript:;' onClick='delFile()'>鍒犻櫎&lt;/a>&quot;;&#xD;
+                  </ClientEvent>
+                  <Property name="property">fileId</Property>
+                  <Property name="name">fileId</Property>
+                  <Property name="align">center</Property>
+                  <Property name="caption">鎿嶄綔</Property>
+                  <Property name="readOnly">true</Property>
+                  <Property name="width">80</Property>
+                </DataColumn>
+              </DataGrid>
+            </Children>
+          </FieldSet>
+        </ControlTab>
+      </TabControl>
+    </Container>
+    <YearDropDown id="yearDropDown"/>
+    <UpdateAction id="uaSave">
+      <Property name="dataResolver">inoutDataPR#addData</Property>
+      <Property name="confirmMessage">纭畾瑕佹彁浜や箞锛�</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">inoutDataPR#printWeightBillHand</Property>
+      <Property name="executingMessage">姝e湪鎵ц鎵撳嵃鈥︹��</Property>
+      <Property name="async">false</Property>
+    </AjaxAction>
+    <CustomDropDown id="ddNotice">
+      <Property name="minHeight">400</Property>
+      <Property name="assignmentMap">noticeId=id,customerName=customerName</Property>
+      <Property name="minWidth">1000</Property>
+      <Property name="autoOpen">true</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsNotice">
+          <Property name="dataProvider">inoutNoticePR#queryNoticeByKey</Property>
+          <Property name="parameter">
+            <Entity>
+              <Property name="type">${request.getParameter('type')}</Property>
+            </Entity>
+          </Property>
+          <Property name="dataType">[dtNoticeDto]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key3">
+            <Property name="blankText"> -- 瀹㈡埛鍚嶇О鎴栫紪鐮� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key3.value&quot;);&#xD;
+              var type = &quot;${request.getParameter('type')}&quot;;&#xD;
+              view.get(&quot;#dsNotice&quot;).set(&quot;parameter&quot;,{key: key,type: type}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="exClassName">btn1</Property>
+            <Property name="iconClass">fa fa-search</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+              if(data){&#xD;
+              view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+              }</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+            }</ClientEvent>
+          <Property name="dataSet">dsNotice</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+            <Property name="align">center</Property>
+            <Property name="width">100</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">customerName</Property>
+            <Property name="align">center</Property>
+            <Property name="name">customerName</Property>
+            <Property name="width">240</Property>
+          </DataColumn>
+          <DataColumn name="foodVariety">
+            <Property name="property">foodVariety</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="year">
+            <Property name="property">year</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="contract">
+            <Property name="property">contract</Property>
+            <Property name="align">center</Property>
+            <Property name="width">300</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="ddDicArea">
+      <Property name="minHeight">500</Property>
+      <Property name="minWidth">500</Property>
+      <Property name="assignmentMap">foodLocation=name,foodLocationId=code</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsDicArea">
+          <Property name="dataProvider">dicAreaPR#pageList</Property>
+          <Property name="parameter"></Property>
+          <Property name="dataType">[dtArea]</Property>
+          <Property name="pageSize">1000</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key2">
+            <Property name="blankText"> -鍚嶇О鎴栫畝鎷硷紝鍖椾含甯�  bjs -</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
+              view.get(&quot;#dsDicArea&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="exClassName">btn1</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+              if(data){&#xD;
+              view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+              }</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+            if(data){&#xD;
+            view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+            }</ClientEvent>
+          <Property name="dataSet">dsDicArea</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+              arg.processDefault = true;</ClientEvent>
+            <Property name="property">name</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="simple">
+            <Property name="property">simple</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </DataGrid>
+        <DataPilot layoutConstraint="bottom">
+          <Property name="dataSet">dsDicArea</Property>
+        </DataPilot>
+      </Container>
+    </CustomDropDown>
+    <UploadAction id="uploadImg">
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;;
+        var bizTag = &quot;EMPTY&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag: bizTag&#xD;
+        })</ClientEvent>
+      <ClientEvent name="onFileUploaded">//闄勪欢涓婁紶瀹屾垚鍚庢坊鍔犱笟鍔℃暟鎹�&#xD;
+        var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
+        var fileName = arg.returnValue;&#xD;
+        var files = mainData.get(&quot;files&quot;);&#xD;
+        files.insert({bizTag:view.PROGRESS,fileName:fileName,createTime:new Date()});</ClientEvent>
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
+        if(data){&#xD;
+        var plateNum = data.get(&quot;plateNum&quot;);&#xD;
+        var bizTag = &quot;EMPTY&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag:bizTag&#xD;
+        })&#xD;
+        }</ClientEvent>
+      <Property name="maxFileSize">20MB</Property>
+      <Property name="successMessage">涓婁紶鎴愬姛</Property>
+      <Property name="parameter"></Property>
+      <Property name="fileResolver">fileUploadManage#inoutFile</Property>
+      <Filters/>
+    </UploadAction>
+    <UploadAction id="uploadImg1">
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
+        &#xD;
+        var bizTag = &quot;FULL&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag: bizTag&#xD;
+        })</ClientEvent>
+      <ClientEvent name="onFileUploaded">//闄勪欢涓婁紶瀹屾垚鍚庢坊鍔犱笟鍔℃暟鎹�&#xD;
+        var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
+        var fileName = arg.returnValue;&#xD;
+        var files = mainData.get(&quot;files&quot;);&#xD;
+        files.insert({bizTag:view.PROGRESS,fileName:fileName});</ClientEvent>
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
+        if(data){&#xD;
+        var bizTag = &quot;FULL&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag:bizTag&#xD;
+        })&#xD;
+        }</ClientEvent>
+      <Property name="maxFileSize">20MB</Property>
+      <Property name="successMessage">涓婁紶鎴愬姛</Property>
+      <Property name="parameter"></Property>
+      <Property name="fileResolver">fileUploadManage#inoutFile</Property>
+      <Filters/>
+    </UploadAction>
+    <UploadAction id="uploadImg2">
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
+        &#xD;
+        var plateNum = data.get(&quot;plateNum&quot;);&#xD;
+        var bizTag = &quot;HANDLE&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag: bizTag&#xD;
+        })</ClientEvent>
+      <ClientEvent name="onFileUploaded">//闄勪欢涓婁紶瀹屾垚鍚庢坊鍔犱笟鍔℃暟鎹�&#xD;
+        var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
+        var fileName = arg.returnValue;&#xD;
+        var files = mainData.get(&quot;files&quot;);&#xD;
+        files.insert({bizTag:view.PROGRESS,fileName:fileName});</ClientEvent>
+      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
+        if(data){&#xD;
+        var plateNum = data.get(&quot;plateNum&quot;);&#xD;
+        var bizTag = &quot;HANDLE&quot;;&#xD;
+        self.set(&quot;parameter&quot;,{&#xD;
+        bizTag:bizTag&#xD;
+        })&#xD;
+        }</ClientEvent>
+      <Property name="maxFileSize">20MB</Property>
+      <Property name="successMessage">涓婁紶鎴愬姛</Property>
+      <Property name="parameter"></Property>
+      <Property name="fileResolver">fileUploadManage#inoutFile</Property>
+      <Filters/>
+    </UploadAction>
+    <AjaxAction id="ajaxDelFile">
+      <Property name="service">fileUploadManage#delInoutFile</Property>
+      <Property name="async">true</Property>
+      <Property name="confirmMessage">纭畾瑕佸垹闄や箞锛�</Property>
+    </AjaxAction>
+  </View>
+</ViewConfig>
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
new file mode 100644
index 0000000..6afd1cd
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -0,0 +1,1165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.igds.domain.InoutRecord</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+        <Property name="label">鍗曟嵁鍙�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="companyId">
+        <Property></Property>
+        <Property name="label">缁勭粐缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="progress">
+        <Property></Property>
+        <Property name="label">娴佺▼杩涘害</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;PROCESS_STATUS_&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="recordStatus">
+        <Property></Property>
+        <Property name="label">鏁版嵁鐘舵��</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;RECORD_STATUS&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="checkStatus">
+        <Property></Property>
+        <Property name="label">鎵︽牱缁撴灉</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;CHECK_STATUS&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="registerTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鐧昏鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="registerUser">
+        <Property></Property>
+        <Property name="label">鐧昏浜哄憳</Property>
+      </PropertyDef>
+      <PropertyDef name="userName">
+        <Property></Property>
+        <Property name="label">鎵胯繍浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="userId">
+        <Property></Property>
+        <Property name="label">韬唤璇佸彿</Property>
+      </PropertyDef>
+      <PropertyDef name="userContact">
+        <Property></Property>
+        <Property name="label">鑱旂郴鏂瑰紡</Property>
+      </PropertyDef>
+      <PropertyDef name="userAddress">
+        <Property></Property>
+        <Property name="label">鎵胯繍浜哄湴鍧�</Property>
+      </PropertyDef>
+      <PropertyDef name="plateNum">
+        <Property></Property>
+        <Property name="label">杞︾墝鍙�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="customerName">
+        <Property></Property>
+        <Property name="label">寰�鏉ュ崟浣�</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocation">
+        <Property></Property>
+        <Property name="label">绮浜у湴</Property>
+      </PropertyDef>
+      <PropertyDef name="foodYear">
+        <Property></Property>
+        <Property name="label">绮骞翠唤</Property>
+      </PropertyDef>
+      <PropertyDef name="deOther">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鎵i噸</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">婊¤溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">婊¤溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="fullWeightUser">
+        <Property></Property>
+        <Property name="label">婊¤溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">绌鸿溅绉伴噸</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">绌鸿溅绉版椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="emptyWeightUser">
+        <Property></Property>
+        <Property name="label">绌鸿溅绉伴噸浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="netWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍑�閲�</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="settleWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻鍑�閲�</Property>
+        <Property name="required">true</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="recordWeight">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鍏ュ簱閲嶉噺</Property>
+        <Property name="displayFormat">0.0 KG</Property>
+      </PropertyDef>
+      <PropertyDef name="handleStart">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="handleEnd">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍊间粨缁撴潫鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="handleUser">
+        <Property></Property>
+        <Property name="label">鍊间粨鎿嶄綔浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="completeTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">瀹屾垚鏃堕棿</Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="completeUser">
+        <Property></Property>
+        <Property name="label">瀹屾垚纭浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="remarks">
+        <Property></Property>
+        <Property name="label">澶囨敞淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">kqmc</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodVariety">
+        <Property></Property>
+        <Property name="label">绮鍝佺</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="depotId">
+        <Property></Property>
+        <Property name="label">瑁呭嵏浠撳簱</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
+          <Property name="keyProperty">id</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="type">
+        <Property name="label">鍑哄叆搴撶被鍨�</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鍑哄簱</Property>
+                <Property name="value">OUT</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">鍏ュ簱</Property>
+                <Property name="value">IN</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="foodLevel">
+        <Property></Property>
+        <Property name="label">绮绛夌骇</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerFoodLevel&quot;).getResult()}</Property>
+          <Property name="keyProperty">dictValue</Property>
+          <Property name="valueProperty">dictLabel</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="checkUser">
+        <Property></Property>
+        <Property name="label">璐ㄦ浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="price">
+        <Property name="dataType">double</Property>
+        <Property name="label">绮瀹氫环</Property>
+        <Property name="displayFormat">0.00 鍏�/鍏枻</Property>
+      </PropertyDef>
+      <PropertyDef name="noticeId">
+        <Property></Property>
+        <Property name="label">閫氱煡鍗曠紪鐮�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="foodLocationId">
+        <Property></Property>
+        <Property name="label">浜у湴鍚嶇О浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="checkTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">璐ㄦ鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="perWet">
+        <Property name="dataType">Double</Property>
+        <Property name="label">姘村垎</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="perImpurity">
+        <Property name="dataType">Double</Property>
+        <Property name="label">鏉傝川</Property>
+        <Property name="displayFormat">0.00 %</Property>
+      </PropertyDef>
+      <PropertyDef name="settleMoney">
+        <Property name="dataType">Double</Property>
+        <Property name="label">缁撶畻閲戦</Property>
+        <Property name="displayFormat">0.00 鍏�</Property>
+      </PropertyDef>
+      <PropertyDef name="settleTag">
+        <Property></Property>
+        <Property name="label">鏄惁缁撶畻</Property>
+        <Property name="mapping">
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">鏈粨绠�</Property>
+                <Property name="value">N</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">宸茬粨绠�</Property>
+                <Property name="value">Y</Property>
+              </Entity>
+            </Collection>
+          </Property>
+          <Property name="keyProperty">value</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+      <PropertyDef name="settleTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">缁撶畻鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鍒涘缓鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="createBy">
+        <Property></Property>
+        <Property name="label">鍒涘缓浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="updateBy">
+        <Property></Property>
+        <Property name="label">鏇存柊浜�</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtQuery">
+      <Property name="creationType">com.fzzy.igds.data.InoutParam</Property>
+      <PropertyDef name="type">
+        <Property name="label">鍑哄叆搴撶被鍨�</Property>
+      </PropertyDef>
+      <PropertyDef name="deptId">
+        <Property></Property>
+        <Property name="label">鎵�灞炲垎搴�</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>
+      </PropertyDef>
+      <PropertyDef name="plateNum">
+        <Property name="label">杞︾墝鍙峰彿</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>
+      </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="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>
+  </Model>
+  <View layout="padding:10">
+    <ClientEvent name="onReady">var TYPE = &quot;${request.getParameter('type')}&quot;;&#xD;
+var EDIT = &quot;${request.getParameter('edit')}&quot;;&#xD;
+var deptId = window.parent.DEPT_ID;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+&#xD;
+//濡傛灉edit鏈夊�艰〃绀洪殣钘廇DD鍜岀紪杈戞寜閽�&#xD;
+if(EDIT){&#xD;
+	view.get(&quot;#btnEdit&quot;).set(&quot;visible&quot;,false);&#xD;
+	view.get(&quot;#btnDel&quot;).set(&quot;visible&quot;,false);&#xD;
+}&#xD;
+&#xD;
+if(&quot;OUT&quot; == TYPE){&#xD;
+	view.get(&quot;#recordWeight&quot;).set(&quot;caption&quot;,&quot;鍑哄簱閲嶉噺&quot;);&#xD;
+}else{&#xD;
+	view.get(&quot;#recordWeight&quot;).set(&quot;caption&quot;,&quot;鍏ュ簱閲嶉噺&quot;);&#xD;
+}&#xD;
+&#xD;
+//榛樿鏌ヨ鏌ヨ鎻愭潯浠�&#xD;
+view.get(&quot;#dsQuery&quot;).insert({&#xD;
+	type:TYPE,&#xD;
+	deptId:deptId&#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;
+//缂栬緫锛屽彧鏈夋祦绋嬬粨鏉熺殑鎵嶅彲浠ヤ慨鏀�&#xD;
+edit = function(){&#xD;
+	&#xD;
+	var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+	if(select){&#xD;
+		console.log(select);&#xD;
+    	view.get(&quot;#dialogMain&quot;).show();;&#xD;
+	}else{&#xD;
+    	$notify(&quot;璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁鈥︹��&quot;);&#xD;
+	}		&#xD;
+};&#xD;
+&#xD;
+&#xD;
+//寮傚父鎿嶄綔&#xD;
+showAbnormal = function(){	&#xD;
+	var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+	if(select){&#xD;
+    	view.get(&quot;#dialogAbnormal&quot;).show();&#xD;
+		view.get(&quot;#textAbnormal&quot;).set(&quot;value&quot;,null);&#xD;
+	}else{&#xD;
+    	$notify(&quot;璇烽�夋嫨鏁版嵁鈥︹��&quot;);&#xD;
+	}	&#xD;
+};&#xD;
+&#xD;
+//杩借釜&#xD;
+showImg = function(){&#xD;
+	&#xD;
+	var select = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+	if(select){&#xD;
+    	var user = encodeURIComponent(select.get(&quot;userName&quot;));&#xD;
+    	var plateNum = encodeURIComponent(select.get(&quot;plateNum&quot;));&#xD;
+	&#xD;
+    	view.get(&quot;#iFrameImg&quot;).set(&quot;path&quot;, &quot;./basic/inout/inout-img?id=&quot; + select.get(&quot;id&quot;)+&quot;&amp;plateNum=&quot;+plateNum+&quot;&amp;user=&quot;+user);&#xD;
+    	view.get(&quot;#dialogImg&quot;).show();&#xD;
+	}else{&#xD;
+    	$notify(&quot;璇烽�夋嫨鏁版嵁鈥︹��&quot;);&#xD;
+	}&#xD;
+};&#xD;
+&#xD;
+//寮傚父鎵ц&#xD;
+todoError = function(){&#xD;
+	var data = view.get(&quot;#dataGridMain.currentEntity&quot;);&#xD;
+	if(!data) return;&#xD;
+	&#xD;
+	var textError = view.get(&quot;#textAbnormal.text&quot;);&#xD;
+	if(!textError){&#xD;
+		$alert(&quot;璇疯鏄庡紓甯哥粓姝㈠師鍥狅紒锛�&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	data.set(&quot;remarks&quot;,textError);&#xD;
+	view.get(&quot;#ajaxError&quot;).execute(function(result){&#xD;
+		if(result){&#xD;
+			$alert(result);&#xD;
+			return;&#xD;
+		}else{&#xD;
+			data.remove();&#xD;
+			view.get(&quot;#dialogAbnormal&quot;).close();&#xD;
+			$alert(&quot;鎵ц鎴愬姛锛岃嚜鍔ㄥ埛鏂版暟鎹紒&quot;);&#xD;
+		}&#xD;
+	});&#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.SET_PRINT_PAGESIZE(1, 0, '90mm', &quot;A4&quot;);&#xD;
+    LODOP.ADD_PRINT_HTM(0, 0, &quot;100%&quot;, &quot;100%&quot;, htmlStr);&#xD;
+    LODOP.PREVIEW();&#xD;
+};&#xD;
+&#xD;
+//鎵撳嵃杩囩鍗�&#xD;
+printWeight = function () {&#xD;
+    var data = view.get(&quot;#dataGridMain&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;
+    view.get(&quot;#ajaxPrint&quot;).set(&quot;parameter&quot;, data).execute(function (result) {&#xD;
+      printBill(result);&#xD;
+    });&#xD;
+};&#xD;
+&#xD;
+/**&#xD;
+ * 鑷姩璁$畻&#xD;
+ * @param name&#xD;
+ */&#xD;
+deAutoByWeight = function () {&#xD;
+&#xD;
+    var curData = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+    var fullWeight = curData.get(&quot;fullWeight&quot;);&#xD;
+    var emptyWeight = curData.get(&quot;emptyWeight&quot;);&#xD;
+    //鎵i噸淇℃伅&#xD;
+    var deOther = curData.get(&quot;deOther&quot;);&#xD;
+&#xD;
+    if (fullWeight == 0 || emptyWeight == 0) {&#xD;
+        return;&#xD;
+    }&#xD;
+    // 鍑�閲�&#xD;
+    var netWeight = Number(fullWeight) - Number(emptyWeight);&#xD;
+&#xD;
+    if (netWeight &lt;= 0) {&#xD;
+        $notify(&quot;鍑�閲嶅皬浜�0锛屽綋鍓嶇О閲嶅瓨鍦ㄩ�昏緫闂&quot;);&#xD;
+        return;&#xD;
+    }&#xD;
+&#xD;
+    /** 鍏ュ簱閲嶉噺 = 鍑�閲� - 鎬绘墸閲�  */&#xD;
+    recordWeight = Number(netWeight) - Number(deOther);&#xD;
+&#xD;
+    /** 缁撶畻閲嶉噺 = 鍑�閲� - 鎬绘墸閲� + 澧為噸 */&#xD;
+    settleWeight = Number(recordWeight);&#xD;
+&#xD;
+    curData.set(&quot;netWeight&quot;, netWeight);&#xD;
+    curData.set(&quot;settleWeight&quot;, settleWeight);&#xD;
+    curData.set(&quot;recordWeight&quot;, recordWeight);&#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="dataType">[dtMain]</Property>
+      <Property name="pageSize">20</Property>
+      <Property name="dataProvider">inoutDataPR#pageInoutData</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">depotId</Property>
+          <Property name="property">depotId</Property>
+          <Editor/>
+        </AutoFormElement>
+        <AutoFormElement>
+          <Property name="name">plateNum</Property>
+          <Property name="property">plateNum</Property>
+          <Editor>
+            <TextEditor>
+              <Property name="blankText">-- 鏀寔妯$硦 --</Property>
+            </TextEditor>
+          </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 layoutConstraint="left">
+          <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 layoutConstraint="left">
+          <ClientEvent name="onClick">var type =&quot;${request.getParameter('type')}&quot;;&#xD;
+              var deptId = window.parent.DEPT_ID;//鐖堕〉闈腑鐨勫垎搴撶紪鐮�&#xD;
+              view.get(&quot;#dsQuery&quot;).setData({type:type,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 id="btnEdit">
+          <ClientEvent name="onClick">edit();</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 id="btnDel">
+          <ClientEvent name="onClick">showAbnormal();</ClientEvent>
+          <Property name="caption">寮傚父鎿嶄綔</Property>
+          <Property name="exClassName">btn4</Property>
+          <Property name="iconClass">fa fa-minus</Property>
+          <Property name="width">100</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">showImg();</ClientEvent>
+          <Property name="caption">杩囩▼杩借釜</Property>
+          <Property name="exClassName">btn1</Property>
+          <Property name="width">100</Property>
+          <Property name="iconClass">fa fa-picture-o</Property>
+        </ToolBarButton>
+        <ToolBarButton>
+          <ClientEvent name="onClick">var data = view.get(&quot;#dataGridMain&quot;).get(&quot;selection&quot;);&#xD;
+              if (!data) {&#xD;
+              $alert(&quot;璇峰厛閫夋嫨鏁版嵁锛�&quot;);&#xD;
+              return;&#xD;
+              }&#xD;
+              &#xD;
+              printWeight();&#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="dataGridMain" layoutConstraint="padding:8">
+        <ClientEvent name="onDataRowClick">view.get(&quot;#dataGridMain&quot;).set(&quot;selection&quot;,arg.data);</ClientEvent>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="readOnly">true</Property>
+        <Property name="selectionMode">singleRow</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="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>
+          <Property name="width">130</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>
+          <Property name="width">120</Property>
+        </DataColumn>
+        <DataColumn name="foodVariety">
+          <Property name="property">foodVariety</Property>
+          <Property name="align">center</Property>
+          <Property name="width">110</Property>
+        </DataColumn>
+        <DataColumn name="fullWeight">
+          <Property name="property">fullWeight</Property>
+          <Property name="caption">姣涢噸</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="emptyWeight">
+          <Property name="property">emptyWeight</Property>
+          <Property name="caption">鐨噸</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="deOther">
+          <Property name="property">deOther</Property>
+          <Property name="caption">鎵i噸</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn name="settleWeight">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+          <Property name="property">settleWeight</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+        </DataColumn>
+        <DataColumn id="recordWeight">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+          <Property name="property">recordWeight</Property>
+          <Property name="align">center</Property>
+          <Property name="width">100</Property>
+          <Property name="visible">true</Property>
+          <Property name="name">recordWeight</Property>
+        </DataColumn>
+        <DataColumn name="progress">
+          <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+          <Property name="property">progress</Property>
+          <Property name="align">center</Property>
+          <Property name="width">80</Property>
+        </DataColumn>
+        <DataColumn name="completeTime">
+          <Property name="property">completeTime</Property>
+          <Property name="align">center</Property>
+          <Property name="width">150</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="label">瑁呭嵏浠撳簱</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">userName</Property>
+                <Property name="property">userName</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">userId</Property>
+                <Property name="property">userId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodVariety</Property>
+                <Property name="property">foodVariety</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">perWet</Property>
+                <Property name="property">perWet</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">userContact</Property>
+                <Property name="property">userContact</Property>
+                <Property name="label">鑱旂郴鐢佃瘽</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodLevel</Property>
+                <Property name="property">foodLevel</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">perImpurity</Property>
+                <Property name="property">perImpurity</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodYear</Property>
+                <Property name="property">foodYear</Property>
+                <Property name="trigger">yearDropDown</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">foodLocation</Property>
+                <Property name="property">foodLocation</Property>
+                <Property name="trigger">ddDicArea</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="label">瀹㈡埛鍚嶇О</Property>
+                <Property name="property">customerName</Property>
+                <Property name="editable">false</Property>
+                <Property name="trigger">ddNotice</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">noticeId</Property>
+                <Property name="property">noticeId</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">
+                <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                <Property name="name">fullWeight</Property>
+                <Property name="property">fullWeight</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">fullWeightTime</Property>
+                <Property name="property">fullWeightTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">fullWeightUser</Property>
+                <Property name="property">fullWeightUser</Property>
+                <Property name="label">婊¤溅绉伴噸浜�</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                <Property name="name">emptyWeight</Property>
+                <Property name="property">emptyWeight</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">emptyWeightTime</Property>
+                <Property name="property">emptyWeightTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">emptyWeightUser</Property>
+                <Property name="property">emptyWeightUser</Property>
+                <Property name="label">绌鸿溅绉伴噸浜�</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">
+                <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent>
+                <Property name="name">deOther</Property>
+                <Property name="property">deOther</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">registerTime</Property>
+                <Property name="property">registerTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">settleWeight</Property>
+                <Property name="property">settleWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">recordWeight</Property>
+                <Property name="property">recordWeight</Property>
+                <Property name="readOnly">true</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:2">
+                <Property name="name">completeTime</Property>
+                <Property name="property">completeTime</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>
+                <Property name="name">price</Property>
+                <Property name="property">price</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">settleMoney</Property>
+                <Property name="property">settleMoney</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>
+    <Dialog id="dialogImg">
+      <Property name="width">1000</Property>
+      <Property name="height">95%</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Property name="caption">娴佺▼杩芥函灞曠ず</Property>
+      <Buttons/>
+      <Children>
+        <IFrame id="iFrameImg">
+          <Property name="width">100%</Property>
+        </IFrame>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <Dialog id="dialogAbnormal" layout="regionPadding:5">
+      <Property name="width">450</Property>
+      <Property name="iconClass">fa fa-tasks</Property>
+      <Property name="caption">寮傚父鎿嶄綔鍘熷洜</Property>
+      <Property name="closeable">false</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">todoError();</ClientEvent>
+          <Property name="caption">寮傚父缁堟</Property>
+          <Property name="iconClass">fa fa-check</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>
+        <TextArea id="textAbnormal">
+          <Property name="height">165</Property>
+        </TextArea>
+        <AutoForm>
+          <Property name="cols">*</Property>
+          <Label layoutConstraint="colSpan:1">
+            <Property name="style">
+              <Property name="color">blue</Property>
+            </Property>
+            <Property name="text">寮傚父缁堟锛氫笟鍔℃暟鎹祦绋嬬粨鏉燂紝閲嶉噺淇℃伅涓嶈繘琛岀粺璁¤绠椼��</Property>
+          </Label>
+          <Label layoutConstraint="colSpan:1">
+            <Property name="style">
+              <Property name="color">blue</Property>
+            </Property>
+            <Property name="text">鍒犻櫎鎿嶄綔锛氫笟鍔℃暟鎹鍒犻櫎涓斾笉缁熻锛屽彧淇濈暀鏃ュ織璁板綍銆�</Property>
+          </Label>
+        </AutoForm>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="uaSave">
+      <Property name="dataResolver">inoutDataPR#saveInoutData</Property>
+      <UpdateItem>
+        <Property name="dataSet">dsMain</Property>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="validateData">false</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <UpdateAction id="ajaxError">
+      <Property name="dataResolver">inoutDataPR#errorInoutData</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">inoutDataPR#printWeightBill</Property>
+      <Property name="executingMessage">姝e湪鎵ц鎵撳嵃鈥︹��</Property>
+      <Property name="async">false</Property>
+    </AjaxAction>
+    <CustomDropDown id="ddNotice">
+      <Property name="minHeight">400</Property>
+      <Property name="assignmentMap">noticeId=id,customerName=customerName</Property>
+      <Property name="minWidth">1000</Property>
+      <Property name="autoOpen">true</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsNotice">
+          <Property name="dataProvider">inoutNoticePR#queryNoticeByKey</Property>
+          <Property name="parameter">
+            <Entity>
+              <Property name="type">${request.getParameter('type')}</Property>
+            </Entity>
+          </Property>
+          <Property name="dataType">[dtNoticeDto]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key3">
+            <Property name="blankText"> -- 瀹㈡埛鍚嶇О鎴栫紪鐮� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key3.value&quot;);&#xD;
+var type = &quot;${request.getParameter('type')}&quot;;&#xD;
+view.get(&quot;#dsNotice&quot;).set(&quot;parameter&quot;,{key: key,type: type}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="exClassName">btn1</Property>
+            <Property name="iconClass">fa fa-search</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsNotice.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddNotice&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsNotice</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+            <Property name="align">center</Property>
+            <Property name="width">100</Property>
+          </DataColumn>
+          <DataColumn>
+            <Property name="property">customerName</Property>
+            <Property name="align">center</Property>
+            <Property name="name">customerName</Property>
+            <Property name="width">240</Property>
+          </DataColumn>
+          <DataColumn name="foodVariety">
+            <Property name="property">foodVariety</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="year">
+            <Property name="property">year</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="contract">
+            <Property name="property">contract</Property>
+            <Property name="align">center</Property>
+            <Property name="width">300</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <CustomDropDown id="ddDicArea">
+      <Property name="minHeight">500</Property>
+      <Property name="minWidth">500</Property>
+      <Property name="assignmentMap">foodLocation=name,foodLocationId=code</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsDicArea">
+          <Property name="dataProvider">dicAreaPR#pageList</Property>
+          <Property name="parameter"></Property>
+          <Property name="dataType">[dtArea]</Property>
+          <Property name="pageSize">1000</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key2">
+            <Property name="blankText"> -鍚嶇О鎴栫畝鎷硷紝鍖椾含甯�  bjs -</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
+view.get(&quot;#dsDicArea&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="caption">鏌ヨ</Property>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="exClassName">btn1</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="iconClass">fa fa-check</Property>
+            <Property name="exClassName">btn2</Property>
+            <Property name="caption">纭畾</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsDicArea.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#ddDicArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsDicArea</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="name">
+            <ClientEvent name="onRenderCell">arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
+arg.processDefault = true;</ClientEvent>
+            <Property name="property">name</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+          <DataColumn name="simple">
+            <Property name="property">simple</Property>
+            <Property name="readOnly">true</Property>
+            <Property name="align">center</Property>
+          </DataColumn>
+        </DataGrid>
+        <DataPilot layoutConstraint="bottom">
+          <Property name="dataSet">dsDicArea</Property>
+        </DataPilot>
+      </Container>
+    </CustomDropDown>
+    <YearDropDown id="yearDropDown"/>
+  </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
index 2091463..0c6c3e8 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticePR.java
@@ -5,12 +5,15 @@
 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.NoticeDto;
 import com.fzzy.igds.data.NoticeParam;
 import com.fzzy.igds.service.InoutNoticeService;
 import com.fzzy.igds.domain.InoutNoticeIn;
 import com.fzzy.igds.domain.InoutNoticeOut;
 import com.fzzy.igds.utils.ContextUtil;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Component;
@@ -208,4 +211,55 @@
 		return "fail";
 	}
 
+
+	/**
+	 * inoutNoticePR#queryNoticeByKey  鏍规嵁鍙傛暟鏌ヨ鍑哄叆搴撻�氱煡鍗曪紝鐢ㄤ簬鎵嬪姩琛ュ崟鏃讹紝閫夋嫨閫氱煡鍗�
+	 *
+	 * @param
+	 * @return
+	 */
+	@DataProvider
+	public List<NoticeDto> queryNoticeByKey(Map<String, Object> param) {
+		if (param == null) {
+			return null;
+		}
+		String type = (String)param.get("type");
+		if (StringUtils.isEmpty(type)) {
+			return null;
+		}
+		List<NoticeDto> list = new ArrayList<>();
+		NoticeDto dto;
+
+		NoticeParam noticeParam = new NoticeParam();
+		noticeParam.setCompanyId(ContextUtil.getCompanyId());
+		noticeParam.setDeptId(ContextUtil.subDeptId(null));
+		noticeParam.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+		String key = (String)param.get("key");
+		if (StringUtils.isNotEmpty(key)) {
+			noticeParam.setKey(key);
+		}
+
+		if (Constant.TYPE_IN.equals(type)) {
+			List<InoutNoticeIn> listIn = inoutNoticeService.getNoticeIn(noticeParam);
+			if (null != listIn && listIn.size() > 0) {
+				for (InoutNoticeIn inoutNoticeIn : listIn) {
+					dto = new NoticeDto();
+					BeanUtils.copyProperties(inoutNoticeIn, dto);
+					list.add(dto);
+				}
+			}
+		}
+		if (Constant.TYPE_OUT.equals(type)) {
+			List<InoutNoticeOut> listOut = inoutNoticeService.getNoticeOut(noticeParam);
+			if (null != listOut && listOut.size() > 0) {
+				for (InoutNoticeOut inoutNoticeOut : listOut) {
+					dto = new NoticeDto();
+					BeanUtils.copyProperties(inoutNoticeOut, dto);
+					list.add(dto);
+				}
+			}
+		}
+		return list;
+	}
+
 }
diff --git a/fzzy-igdss-view/src/main/java/models/core.model.xml b/fzzy-igdss-view/src/main/java/models/core.model.xml
index feb4ca7..1ebed17 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -1209,4 +1209,120 @@
       <Property name="label">鎵ц鏃堕棿3</Property>
     </PropertyDef>
   </DataType>
+  <DataType name="dtNoticeDto">
+    <Property name="creationType">com.fzzy.igds.data.NoticeDto</Property>
+    <PropertyDef name="id">
+      <Property></Property>
+      <Property name="label">閫氶亾鍗曠紪鐮�</Property>
+    </PropertyDef>
+    <PropertyDef name="name">
+      <Property></Property>
+      <Property name="label">閫氱煡鍗曞悕绉�</Property>
+    </PropertyDef>
+    <PropertyDef name="companyId">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="deptId">
+      <Property></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>
+    </PropertyDef>
+    <PropertyDef name="customerId">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="customerName">
+      <Property></Property>
+      <Property name="label">鏀�/鍙戣揣瀹㈡埛</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>
+    </PropertyDef>
+    <PropertyDef name="foodType">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="year">
+      <Property></Property>
+      <Property name="label">骞翠唤</Property>
+    </PropertyDef>
+    <PropertyDef name="targetNumber">
+      <Property name="dataType">Double</Property>
+    </PropertyDef>
+    <PropertyDef name="completeNumber">
+      <Property name="dataType">Double</Property>
+    </PropertyDef>
+    <PropertyDef name="completeTime">
+      <Property name="dataType">Date</Property>
+    </PropertyDef>
+    <PropertyDef name="unitName">
+      <Property></Property>
+    </PropertyDef>
+    <PropertyDef name="contract">
+      <Property></Property>
+      <Property name="label">鎵�灞炲悎鍚�</Property>
+    </PropertyDef>
+  </DataType>
+  <DataType name="dtFileData">
+    <Property name="creationType">com.fzzy.igds.domain.FileInfo</Property>
+    <PropertyDef name="fileId">
+      <Property></Property>
+      <Property name="label">闄勪欢ID</Property>
+    </PropertyDef>
+    <PropertyDef name="companyId">
+      <Property></Property>
+      <Property name="label">缁勭粐缂栧彿</Property>
+    </PropertyDef>
+    <PropertyDef name="deptId">
+      <Property></Property>
+      <Property name="label">搴撳尯缂栫爜</Property>
+    </PropertyDef>
+    <PropertyDef name="bizId">
+      <Property></Property>
+      <Property name="label">涓氬姟ID</Property>
+    </PropertyDef>
+    <PropertyDef name="bizTag">
+      <Property></Property>
+      <Property name="label">涓氬姟鏍囩</Property>
+    </PropertyDef>
+    <PropertyDef name="fileName">
+      <Property></Property>
+      <Property name="label">鏂囦欢鍚嶇О</Property>
+    </PropertyDef>
+    <PropertyDef name="filePath">
+      <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>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java
new file mode 100644
index 0000000..7678b97
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java
@@ -0,0 +1,69 @@
+package com.fzzy.sys.controller.file;
+
+import com.fzzy.igds.data.PageResponse;
+import com.fzzy.sys.manager.file.FileManager;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+
+/**
+ * @Description 鍑哄叆搴撹澶囩浉鍏冲姛鑳�
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@Slf4j
+@Controller
+@RequestMapping("basic/file")
+public class FileController {
+
+	@Resource
+	private FileManager fileManager;
+
+	/**
+	 * 楦熺灠鍥鹃瑙堥〉闈�
+	 *
+	 * @return
+	 */
+	@RequestMapping("/dept-img")
+	public String deptImg(@RequestParam(value = "id", required = true) String id,
+						  ModelMap view) {
+
+		if(StringUtils.isNotEmpty(id)){
+			String imgPath = fileManager.getDeptFile(id);;
+			view.put("imgPath", imgPath);
+		}
+
+		return "web/common/preview-img";
+	}
+
+
+	/**
+	 * 闀夸紶 鍑哄叆搴撳浘鐗�
+	 *
+	 * @param file
+	 * @param request
+	 * @return
+	 * @throws IOException
+	 */
+	@RequestMapping("/update-file")
+	@ResponseBody
+	public PageResponse<String> updateFile(
+			@RequestParam(value = "file", required = true) MultipartFile file,
+			HttpServletRequest request) throws IOException {
+
+		String plateNum = request.getParameter("plateNum");
+
+		return fileManager.upLoadInoutHandleImg(file, plateNum);
+	}
+
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java
new file mode 100644
index 0000000..40667b2
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java
@@ -0,0 +1,85 @@
+package com.fzzy.sys.controller.inout;
+
+import com.fzzy.igds.constant.RespCodeEnum;
+import com.fzzy.igds.data.*;
+import com.fzzy.igds.utils.SystemUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * @Description 鍑哄叆搴撹澶囩浉鍏冲姛鑳�
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@RestController
+@RequestMapping("inout/api")
+public class InoutApiController {
+
+    /**
+     * 鑾峰彇杞︾墝璇嗗埆淇℃伅
+     *
+     * @param param 杞︾墝璇嗗埆鏁版嵁淇℃伅
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/get-plateNum")
+    public PageResponse<ApiInoutData> getPlateNum(@RequestBody ApiInoutData param) {
+
+        if (null == param.getIp()) {
+            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍑哄叆搴撻厤缃腑娌℃湁閰嶇疆濡傚叆鐧昏鐨勮溅鐗岃瘑鍒�");
+        }
+
+        if (StringUtils.isEmpty(param.getProtocol())) {
+            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "褰撳墠杞︾墝璇嗗埆鏈厤缃�氳鍗忚锛屾棤娉曟墽琛�");
+        }
+
+//        param = inoutEventControl.getPlateNum(param);
+        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
+
+        if (StringUtils.isEmpty(param.getErrorMsg())) {
+            return new PageResponse<>(RespCodeEnum.CODE_0000, param);
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg());
+    }
+
+    /**
+     * 鍑哄叆搴撴姄鎷�
+     *
+     * @param param
+     * @return
+     */
+    @RequestMapping("/snap-img")
+    public @ResponseBody
+    PageResponse<SnapImgDto> cutImg(@RequestBody SnapImgDto param) {
+
+        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
+//        param = inoutApiManager.snapImg(param);
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, param);
+    }
+
+
+    /**
+     * 鍑哄叆搴撹棰�
+     *
+     * @return
+     */
+    @RequestMapping("/inout-video-play")
+    @ResponseBody
+    public ApiCameraResp inoutVideoPlay(HttpServletRequest request, @RequestBody InoutCameraDto param) {
+        //鑾峰彇璇锋眰鏂笽P
+        String ip = SystemUtil.getIP(request);
+//        return inoutEventControl.inoutVideoPlay(param, ip);
+        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
+        return null;
+    }
+
+
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java
index 2da89b8..18b51d2 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java
@@ -4,10 +4,7 @@
 import com.fzzy.common.dto.BaseParam;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.IgdsBaseParam;
-import com.fzzy.igds.data.InoutParam;
-import com.fzzy.igds.data.NoticeParam;
-import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.data.*;
 import com.fzzy.igds.domain.*;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.DateUtil;
@@ -144,6 +141,61 @@
     }
 
     /**
+     * 鍑哄叆搴撳�间粨
+     * @param httpRequest
+     * @param sort
+     * @param type
+     * @param view
+     * @return
+     */
+    @RequestMapping("/handle")
+    public String handle(HttpServletRequest httpRequest,
+                           @RequestParam(value = "sort", required = false) String sort,
+                           @RequestParam(value = "type", required = false) String type,
+                           ModelMap view) {
+
+        //濡傛灉娌℃湁鎸囧畾鍦扮锛屼粠鐢ㄦ埛涓婁竴涓�夋嫨涓幏鍙�
+        if (StringUtils.isEmpty(sort)) {
+            sort = "1";
+        }
+        if (StringUtils.isEmpty(sort)) {
+            sort = inoutManager.getInoutWeightByClient(httpRequest);
+        }
+
+        if (StringUtils.isEmpty(type)) {
+            //榛樿鍏ュ簱
+            type = Constant.TYPE_IN;
+        }
+        view.put("type", type);
+
+        SysUser user = ContextUtil.getLoginUser();
+        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
+        String deptId = ContextUtil.subDeptId(user);
+        view.put("deptId", deptId);
+
+        // 褰撳墠娴佺▼鏍囩
+        view.put("progress", Constant.PROGRESS_HANDLE);
+
+        //鍏ュ簱娴佺▼閰嶇疆
+        String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, type);
+        view.put("inoutProgress", inoutProgress);
+
+        // 绫诲瀷
+        List<SysDictData> listInoutType = commonManager.getInoutType();
+        view.put("listInoutType", listInoutType);
+
+        // 浠撳簱鍒楄〃鍋氫笅鎷夋浣跨敤
+        List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
+        view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
+
+        // 绮鍝佺涓嬫媺妗�
+        List<SysDictData> listFoodVariety = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
+        view.put("listFoodVariety", listFoodVariety);
+
+        return prefix + "/handle";
+    }
+
+    /**
      * 鍏ュ簱绉伴噸鎿嶄綔锛屽寘鎷┖杞︾О閲嶅拰婊¤溅绉伴噸锛屽叡鐢ㄤ竴涓〉闈�
      *
      * @param sort 琛ㄧず浣跨敤鐨勫嚭鍏ュ簱璁惧閰嶅鍙凤紝涓嶄紶閫掗粯璁や负1
@@ -265,15 +317,26 @@
     }
 
     /**
-     * 鍑哄叆搴撴暟鎹煡璇紝鏍规嵁鏉′欢鏌ヨ鏁版嵁锛屽嚭鍏ュ簱鏁版嵁淇℃伅
+     * 鑾峰彇寰呭�间粨鐨勬暟鎹�
      *
+     * @param param
+     * @return
+     */
+    @RequestMapping("/list-handle-data")
+    @ResponseBody
+    public PageResponse<List<InoutRecord>> listHandleData(@RequestBody InoutParam param) {
+        return inoutManager.listHandleData(param);
+    }
+
+    /**
+     * 鏍规嵁鏉′欢鏌ヨ寰呯О閲嶇殑鏁版嵁
      * @param param
      * @return
      */
     @RequestMapping("/inout-query")
     @ResponseBody
     public PageResponse<InoutRecord> inoutQuery(@RequestBody InoutParam param) {
-        if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId());
+
         return inoutManager.inoutQuery(param);
     }
 
@@ -286,7 +349,7 @@
      */
     @RequestMapping("/submit-register")
     @ResponseBody
-    public PageResponse<InoutRecord> submitRegister(@RequestBody InoutRecord data) {
+    public PageResponse<InoutData> submitRegister(@RequestBody InoutData data) {
 
         return inoutManager.submitRegister(data);
     }
@@ -298,7 +361,7 @@
      */
     @RequestMapping("/submit-check")
     @ResponseBody
-    public PageResponse<InoutRecord> submitCheck(@RequestBody InoutRecord data) {
+    public PageResponse<InoutData> submitCheck(@RequestBody InoutData data) {
 
         return inoutManager.submitCheck(data);
     }
@@ -310,7 +373,7 @@
      */
     @RequestMapping("/submit-weight")
     @ResponseBody
-    public PageResponse<InoutRecord> submitWeight(@RequestBody InoutRecord data) {
+    public PageResponse<InoutData> submitWeight(@RequestBody InoutData data) {
 
         return inoutManager.submitWeight(data);
     }
@@ -325,7 +388,7 @@
     @RequestMapping("/submit-handle")
     @Transactional
     @ResponseBody
-    public PageResponse<InoutRecord> submitHandle(@RequestBody InoutRecord data) {
+    public PageResponse<InoutData> submitHandle(@RequestBody InoutData data) {
 
         log.debug("-------------submitHandle------------------");
         return inoutManager.submitHandle(data);
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java
new file mode 100644
index 0000000..86759b9
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java
@@ -0,0 +1,64 @@
+package com.fzzy.sys.controller.print;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.RespCodeEnum;
+import com.fzzy.igds.data.InoutData;
+import com.fzzy.igds.data.InoutParam;
+import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.sys.manager.print.PrintManager;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+
+/**
+ * @Description 鍗曟嵁鎵撳嵃
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@Slf4j
+@RestController
+@RequestMapping("basic/print")
+public class PrintController {
+
+    @Resource
+    private PrintManager reportManager;
+    @Resource
+    private InoutRecordService inoutRecordService;
+
+    /**
+     * 鑾峰彇鍑哄簱绉伴噸鎵撳嵃鍗�
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping("/bill-weight")
+    public PageResponse<String> inoutWeightBill(@RequestBody InoutData data) {
+        try {
+            InoutParam inoutParam = new InoutParam();
+            inoutParam.setId(data.getId());
+            InoutRecord inoutData = inoutRecordService.selectOne(inoutParam);
+            if (inoutData.getProgress().equals(Constant.PROGRESS_WEIGHT_FULL)
+                    || inoutData.getProgress().equals(Constant.PROGRESS_WEIGHT_EMPTY)
+                    || inoutData.getProgress().equals(Constant.PROGRESS_HANDLE)) {
+                return new PageResponse<>(RespCodeEnum.CODE_1008.getCode(), "鎿嶄綔寮傚父锛�" + "璇峰厛瀹屾垚绉伴噸");
+            }
+            String html;
+            if (Constant.TYPE_IN.equals(data.getType())) {
+                html = reportManager.inWeightBill(inoutData);
+            } else {
+                html = reportManager.outWeightBill(inoutData);
+            }
+            return new PageResponse<>(RespCodeEnum.CODE_0000, html);
+
+        } catch (Exception e) {
+            log.error("鍚庡彴寮傚父:{}", e);
+            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
+                    "鍚庡彴寮傚父锛�" + e.getMessage());
+        }
+    }
+
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java
new file mode 100644
index 0000000..6318747
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java
@@ -0,0 +1,133 @@
+package com.fzzy.sys.manager.file;
+
+import com.fzzy.igds.constant.RespCodeEnum;
+import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.domain.Dept;
+import com.fzzy.igds.service.CoreDeptService;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * @Description 鍑哄叆搴撹澶囩浉鍏冲姛鑳�
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@Slf4j
+@Component("file.fileManager")
+public class FileManager {
+	@Resource
+	private CoreDeptService coreDeptService;
+	@Resource
+	private FileService fileService;
+
+	/**
+	 * 鏍规嵁鍗曚綅ID鑾峰彇鍗曚綅淇℃伅
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	public String getDeptFile(String deptId) {
+		if (StringUtils.isEmpty(deptId)) {
+			return null;
+		}
+		String imgBathPath = "鏈笂浼�";
+		Dept dept = coreDeptService.getDeptById(deptId);
+
+		if (StringUtils.isNotEmpty(dept.getImgName())) {
+			File imgFile = new File(dept.getImgName());
+			if (imgFile.exists()) {
+				imgBathPath = dept.getImgName();
+			}
+		}
+		return imgBathPath;
+	}
+
+	/**
+	 * 鍑哄叆搴撶殑闄勪欢涓婃锛屽弬鏁版槸杞︾墝鍙�
+	 *
+	 * @param file
+	 * @return
+	 * @throws IOException
+	 */
+	public PageResponse<String> upLoadInoutHandleImg(MultipartFile file, String plateNum)
+			throws IOException {
+
+		log.debug("涓婁紶鍑哄叆搴撶殑闄勪欢鈥︹��");
+
+		// 鑾峰彇榛樿缂栫爜鐨勫瓧鑺傛暟缁�
+		byte[] fileByte = file.getBytes();
+
+		// 鑾峰彇鏂囦欢鐨勬簮鏂囦欢鍚嶇О
+		String oldFileName = file.getOriginalFilename();
+
+		// 鑾峰彇鏂囦欢淇濆瓨璺緞
+		String filePath = fileService.getFileSavePath("INOUT");
+
+		// 鑾峰彇鏂扮殑ID
+		String newFileName = ContextUtil.generateId();
+
+		// 鏂囦欢鍚庣紑鍚�
+		String suffixName = oldFileName.substring(oldFileName.lastIndexOf("."));
+
+		// 鍚堟垚鏂扮殑鏂囦欢鍚�
+		if (StringUtils.isEmpty(plateNum)) {
+			newFileName = newFileName + suffixName;
+		} else {
+			newFileName = plateNum + "_" + newFileName + suffixName;
+		}
+
+		// 鏂囦欢涓婁紶
+		boolean flag = uploadFile(fileByte, filePath, newFileName);
+
+		// 鍒ゆ柇鏂囦欢涓婁紶鏄惁鎴愬姛,鎴愬姛杩斿洖鏂囦欢鍚�
+		if (flag) {
+			return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(),
+					newFileName);
+		} else {
+			return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
+					"涓婁紶澶辫触");
+		}
+	}
+
+	/**
+	 * 鏂囦欢娴佷笂浼犳枃浠�
+	 *
+	 * @param file
+	 * @param filePath
+	 * @param fileName
+	 * @return
+	 */
+	private static boolean uploadFile(byte[] file, String filePath, String fileName) throws IOException {
+		// 榛樿鏂囦欢涓婁紶鎴愬姛
+		boolean flag = true;
+		// new涓�涓枃浠跺璞″疄渚�
+		File targetFile = new File(filePath);
+		// 濡傛灉褰撳墠鏂囦欢鐩綍涓嶅瓨鍦ㄥ氨鑷姩鍒涘缓璇ユ枃浠舵垨鑰呯洰褰�
+		if (!targetFile.exists()) {
+			targetFile.mkdirs();
+		}
+		// 鍒涘缓鏂囦欢娴�
+		FileOutputStream fileOutputStream = new FileOutputStream(filePath + fileName);
+		try {
+			fileOutputStream.write(file);
+		} catch (FileNotFoundException e) {
+			flag = false;
+		} catch (IOException ioException) {
+			flag = false;
+		} finally {
+			fileOutputStream.flush();
+			fileOutputStream.close();
+		}
+		return flag;
+	}
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
index fb9d769..d4bba19 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
@@ -3,22 +3,18 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.IgdsBaseParam;
-import com.fzzy.igds.data.InoutParam;
-import com.fzzy.igds.data.NoticeParam;
-import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.data.*;
 import com.fzzy.igds.domain.*;
-import com.fzzy.igds.service.DicAreaService;
-import com.fzzy.igds.service.InoutConfService;
-import com.fzzy.igds.service.InoutNoticeService;
-import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.service.*;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.SystemUtil;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import lombok.extern.slf4j.Slf4j;
 import com.ruoyi.common.utils.StringUtils;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
@@ -36,6 +32,8 @@
     private RedisCache redisCache;
     @Resource
     private InoutConfService inoutConfService;
+    @Resource
+    private FileService fileService;
     @Resource
     private InoutRecordService inoutRecordService;
     @Resource
@@ -125,6 +123,7 @@
 
     /**
      * 鏍规嵁閰嶇疆鑾峰彇鍑哄叆搴撶殑閰嶇疆鍙傛暟
+     *
      * @param listInoutConf
      * @param type
      * @return
@@ -142,6 +141,7 @@
 
     /**
      * 鏍规嵁閰嶇疆鑾峰彇鍑哄叆搴撶殑閰嶇疆鍙傛暟
+     *
      * @param listInoutConf
      * @param sort
      * @param type
@@ -179,18 +179,17 @@
     }
 
     /**
-     * 鍑哄叆搴撴敞鍐屾暟鎹彁浜わ紝鍑哄叆搴撶櫥璁颁娇鐢ㄥ悓涓�涓柟娉�
+     * 鍑哄叆搴撴敞鍐屾暟鎹彁浜わ紝鍑哄叆搴撶櫥璁颁娇鐢ㄥ悓涓�涓柟娉曪紝鍖呭惈绉伴噸鏃剁洿鎺ョ櫥璁�
      *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitRegister(InoutRecord data) {
-        SysUser user = ContextUtil.getLoginUser();
+    public PageResponse<InoutData> submitRegister(InoutData data) {
         if (StringUtils.isEmpty(data.getCompanyId())) {
-            data.setCompanyId(user.getCompanyId());
+            data.setCompanyId(ContextUtil.getCompanyId());
         }
         if (StringUtils.isEmpty(data.getDeptId())) {
-            data.setDeptId(ContextUtil.subDeptId(user));
+            data.setDeptId(ContextUtil.subDeptId(null));
         }
 
         int num = inoutRecordService.checkExist(data.getCompanyId(), data.getPlateNum());
@@ -218,7 +217,7 @@
             data.setUserName(data.getUserName().trim());
         }
         //鐧昏浜哄強鐧昏鏃堕棿
-        data.setRegisterUser(user.getUserName());
+        data.setRegisterUser(ContextUtil.getLoginUserName());
         data.setRegisterTime(new Date());
 
         num = inoutRecordService.addInoutRecord(data);
@@ -227,22 +226,19 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鐧昏澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鐧昏鎴愬姛锛�", data);
     }
 
     /**
      * 鍖栭獙淇℃伅鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitCheck(InoutRecord data) {
+    public PageResponse<InoutData> submitCheck(InoutData data) {
         SysUser user = ContextUtil.getLoginUser();
         if (StringUtils.isEmpty(data.getCompanyId())) {
             data.setCompanyId(user.getCompanyId());
@@ -267,12 +263,25 @@
 
     /**
      * 绉伴噸鎻愪氦锛屽寘鍚О閲嶇櫥璁版彁浜ゅ強鍗曠嫭绉伴噸鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitWeight(InoutRecord data) {
+    public PageResponse<InoutData> submitWeight(InoutData data) {
+        if (Constant.PROGRESS_WEIGHT_EMPTY.equals(data.getProgress())) {
+            data.setEmptyWeightTime(new Date());
+            data.setEmptyWeightUser(ContextUtil.getLoginUserName());
+        }
+        if (Constant.PROGRESS_WEIGHT_FULL.equals(data.getProgress())) {
+            data.setFullWeightTime(new Date());
+            data.setFullWeightUser(ContextUtil.getLoginUserName());
+        }
+        if (StringUtils.isBlank(data.getId())) {
+            //琛ㄧず绉伴噸鏃剁洿鎺ョ櫥璁�
+            return submitRegister(data);
+        }
 
-        // 鑾峰彇绯荤粺鍙傛暟閰嶇疆
+        //鑾峰彇绯荤粺鍙傛暟閰嶇疆
         InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
         if (null == inoutSysConf) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�", data);
@@ -283,55 +292,31 @@
         String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
         data.setProgress(nextProgress);
 
-        int num;
-        if(StringUtils.isBlank(data.getId())){
-            data.setRegisterTime(new Date());
-            data.setRegisterUser(ContextUtil.getLoginUserName());
-
-            //璁剧疆鍒濇鎻愪氦鏃剁О閲嶆椂闂翠俊鎭�
-            if(data.getFullWeight() > 0){
-                data.setFullWeightUser(ContextUtil.getLoginUserName());
-                data.setFullWeightTime(new Date());
-            }
-            if(data.getEmptyWeight() > 0){
-                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
-                data.setEmptyWeightTime(new Date());
-            }
-            //绉伴噸鐧昏
-            num = inoutRecordService.addInoutRecord(data);
-        }else {
-            if (Constant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
-                data.setEmptyWeightTime(new Date());
-                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
-            }
-            if (Constant.PROGRESS_WEIGHT_FULL.equals(curProgress)) {
-                data.setFullWeightTime(new Date());
-                data.setFullWeightUser(ContextUtil.getLoginUserName());
-            }
-            //绉伴噸鏇存柊
-            num = inoutRecordService.updateInoutRecord(data);
+        if(Constant.PROGRESS_RECORD.equals(nextProgress)){
+            //娴佺▼缁撴潫鏃讹紝璁剧疆瀹屾垚鏃堕棿鍜屽畬鎴愪汉
+            data.setCompleteTime(new Date());
+            data.setCompleteUser(ContextUtil.getLoginUserName());
         }
+        //绉伴噸鏁版嵁鏇存柊
+        int num = inoutRecordService.updateInoutRecord(data);
 
         if (num == 0) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愪氦澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data);
     }
 
     /**
      * 鍊间粨淇℃伅鎻愪氦
+     *
      * @param data
      * @return
      */
-    public PageResponse<InoutRecord> submitHandle(InoutRecord data) {
+    public PageResponse<InoutData> submitHandle(InoutData data) {
 
         // 鑾峰彇绯荤粺鍙傛暟閰嶇疆
         InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
@@ -353,12 +338,8 @@
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鎻愪氦澶辫触锛�", data);
         }
 
-        //TODO 闄勪欢澶勭悊
-//        List<FileData> files = data.getFiles();
-//        if (null != files && files.size() > 0) {
-//            // 鎵ц闄勪欢淇℃伅
-//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
-//        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
 
         return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎻愪氦鎴愬姛", data);
     }
@@ -393,6 +374,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ鏁版嵁
+     *
      * @param param
      * @return
      */
@@ -403,6 +385,8 @@
         if (StringUtils.isEmpty(param.getDeptId())) {
             param.setDeptId(ContextUtil.subDeptId(null));
         }
+
+        param.setProgressTag(Constant.PROGRESS_RECORD);
 
         Page<InoutRecord> corePage = new Page<>(param.getPage(), param.getLimit());
         inoutRecordService.listPageInout(corePage, param);
@@ -415,7 +399,8 @@
     }
 
     /**
-     * 鍒嗛〉鏌ヨ鏁版嵁
+     * 鏌ヨ寰呯О閲嶇殑鏁版嵁
+     *
      * @param param
      * @return
      */
@@ -440,16 +425,54 @@
     }
 
     /**
+     * 鏌ヨ寰呭�间粨鐨勬暟鎹�
+     *
+     * @param param
+     * @return
+     */
+    public PageResponse<List<InoutRecord>> listHandleData(InoutParam param) {
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+
+        List<InoutRecord> inoutRecords = inoutRecordService.listInout(param);
+
+        if (null == inoutRecords || inoutRecords.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "鑾峰彇鍒版暟鎹俊鎭负绌�");
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, inoutRecords);
+    }
+
+    /**
      * 鏌ヨ鏁版嵁
+     *
      * @param param
      * @return
      */
     public PageResponse<InoutRecord> inoutQuery(InoutParam param) {
-        if (StringUtils.isEmpty(param.getId())) {
+
+        if (StringUtils.isEmpty(param.getId()) && StringUtils.isEmpty(param.getPlateNum())) {
             return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鏌ヨ鍙傛暟涓嶅畬鏁达紝鏌ヨ澶辫触锛�");
         }
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
 
-        InoutRecord result = inoutRecordService.selectById(param.getId());
+        if(Constant.PROGRESS_WEIGHT_EMPTY.equals(param.getProgress()) || Constant.PROGRESS_WEIGHT_FULL.equals(param.getProgress())){
+            //璁剧疆鏌ヨ寰呯О閲嶇殑
+            param.setProgress(null);
+            //璁剧疆绉伴噸娴佺▼鏍囪
+            param.setWeightTag("WEIGHT");
+        }
+
+        InoutRecord result = inoutRecordService.selectOne(param);
         if (null == result) {
             return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
                     "绯荤粺鏈煡璇㈠埌鎵ц涓殑鍗曟嵁淇℃伅", null);
@@ -459,6 +482,7 @@
 
     /**
      * 鍒嗛〉鑾峰彇鍖哄垝淇℃伅
+     *
      * @param param
      * @return
      */
@@ -475,7 +499,6 @@
     }
 
     /**
-     *
      * @param param
      * @return
      */
@@ -486,8 +509,8 @@
             param.setCompanyId(user.getCompanyId());
         }
         param.setDeptId(ContextUtil.subDeptId(user));
-
-        List<InoutNoticeIn> list = inoutNoticeService.getNoticeIn(param.getCompanyId(), param.getDeptId(),Constant.COMPLETE_STATUS_NONE);
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        List<InoutNoticeIn> list = inoutNoticeService.getNoticeIn(param);
 
         if (null == list || list.isEmpty()) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鏌ヨ缁撴灉涓虹┖锛�");
@@ -497,7 +520,6 @@
     }
 
     /**
-     *
      * @param param
      * @return
      */
@@ -507,8 +529,8 @@
             param.setCompanyId(user.getCompanyId());
         }
         param.setDeptId(ContextUtil.subDeptId(user));
-
-        List<InoutNoticeOut> list = inoutNoticeService.getNoticeOut(param.getCompanyId(), param.getDeptId(),Constant.COMPLETE_STATUS_NONE);
+        param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        List<InoutNoticeOut> list = inoutNoticeService.getNoticeOut(param);
 
         if (null == list || list.isEmpty()) {
             return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "鏌ヨ缁撴灉涓虹┖锛�");
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java
new file mode 100644
index 0000000..29ac315
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java
@@ -0,0 +1,40 @@
+package com.fzzy.sys.manager.print;
+
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.service.InoutRecordService;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+
+/**
+ * @Description 鍗曟嵁鎵撳嵃
+ * @Author CZT
+ * @Date 2025/12/4 9:27
+ */
+@Component
+public class PrintManager {
+
+    @Resource
+    private InoutRecordService inoutRecordService;
+
+    /**
+     * 鑾峰彇鍏ュ簱杩囩鍗曟暟鎹俊鎭�
+     *
+     * @param data
+     * @return
+     */
+    public String inWeightBill(InoutRecord data) {
+        return inoutRecordService.inWeightBill( data);
+    }
+
+    /**
+     * 鑾峰彇鍑哄簱杩囩鍗�
+     *
+     * @param data
+     * @return
+     */
+    public String outWeightBill(InoutRecord data) {
+
+        return inoutRecordService.outWeightBill( data);
+    }
+
+}
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/check.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-check.js
similarity index 100%
rename from fzzy-igdss-web/src/main/resources/static/inout/check.js
rename to fzzy-igdss-web/src/main/resources/static/inout/inout-check.js
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js
new file mode 100644
index 0000000..07f088f
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js
@@ -0,0 +1,386 @@
+//绉伴噸-鍖呮嫭绌鸿溅鍜屾弧杞︾О閲�
+var layer;
+var form;
+var table;
+var upload;
+var recordData = null;// 涓氬姟鏁版嵁淇℃伅
+var img1, img2, img3;// 椤甸潰涓殑鍥剧墖涓婁紶鍚嶇О
+
+$(function () {
+    layui.use(['layer', 'laydate', 'form','table', 'upload'], function () {
+        upload = layui.upload;
+        layer = layui.layer;
+        form = layui.form;
+        table = layui.table;
+
+        //鐩戝惉閫夋嫨鏁版嵁浜嬩欢
+        table.on('tool(tableListProgressData)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'select') {
+                //娓呯┖琛ㄥ崟
+                resetForm();
+                flushData(data.id, null);
+                $("#listProgressData").css("display", "none");
+                layer.closeAll();
+            }
+        });
+
+        //涓婁紶
+        upload.render({
+            elem: '#kccz-r-btn1',
+            url: '/basic/file/update-file', //涓婁紶鎺ュ彛
+            size: 4 * 1024, //闄愬埗鏂囦欢澶у皬锛屽崟浣岾B, 鏈�澶т笂浼�4MB
+            accept: 'images',
+            before: function (obj) {
+                var plateNum = $("#plateNum").val();
+                this.data = {"plateNum": plateNum, "type": "1"};//鎼哄甫鍙傛暟
+                //棰勮鏈湴鏂囦欢绀轰緥锛屼笉鏀寔ie8
+                obj.preview(function (index, file, result) {
+                    $('#kccz-r-img1').attr('src', result); //鍥剧墖閾炬帴锛坆ase64锛�
+                });
+            },
+            done: function (res) {
+                //濡傛灉涓婁紶澶辫触
+                if (res.code > 0) {
+                    layer.msg("鍥剧墖涓婁紶澶辫触锛�");
+                }
+                //涓婁紶鎴愬姛
+                img1 = res.msg;
+                layer.msg("鍥剧墖涓婁紶鎴愬姛锛�");
+                //console.log(img1);
+            }
+        });
+        upload.render({
+            elem: '#kccz-r-btn2',
+            url: '/basic/file/update-file', //涓婁紶鎺ュ彛
+            size: 4 * 1024, //闄愬埗鏂囦欢澶у皬锛屽崟浣岾B, 鏈�澶т笂浼�4MB
+            accept: 'images',
+            before: function (obj) {
+                var plateNum = $("#plateNum").val();
+                this.data = {"plateNum": plateNum, "type": "1"};//鎼哄甫鍙傛暟
+                //棰勮鏈湴鏂囦欢绀轰緥锛屼笉鏀寔ie8
+                obj.preview(function (index, file, result) {
+                    $('#kccz-r-img2').attr('src', result); //鍥剧墖閾炬帴锛坆ase64锛�
+                });
+            },
+            done: function (res) {
+                //濡傛灉涓婁紶澶辫触
+                if (res.code > 0) {
+                    layer.msg("鍥剧墖涓婁紶澶辫触锛�");
+                }
+                //涓婁紶鎴愬姛
+                img2 = res.msg;
+                layer.msg("鍥剧墖涓婁紶鎴愬姛锛�");
+                // console.log(img2);
+            }
+        });
+        upload.render({
+            elem: '#kccz-r-btn3',
+            url: '/basic/file/update-file', //涓婁紶鎺ュ彛
+            size: 4 * 1024, //闄愬埗鏂囦欢澶у皬锛屽崟浣岾B, 鏈�澶т笂浼�4MB
+            accept: 'images',
+            before: function (obj) {
+                var plateNum = $("#plateNum").val();
+                this.data = {"plateNum": plateNum}; //鎼哄甫鍙傛暟
+                //棰勮鏈湴鏂囦欢绀轰緥锛屼笉鏀寔ie8
+                obj.preview(function (index, file, result) {
+                    $('#kccz-r-img3').attr('src', result); //鍥剧墖閾炬帴锛坆ase64锛�
+                });
+            },
+            done: function (res) {
+                //濡傛灉涓婁紶澶辫触
+                if (res.code > 0) {
+                    layer.msg("鍥剧墖涓婁紶澶辫触锛�");
+                }
+                //涓婁紶鎴愬姛
+                img3 = res.msg;
+                layer.msg("鍥剧墖涓婁紶鎴愬姛锛�");
+            }
+        });
+
+    });
+
+    //鏄剧ず娴佺▼鐜妭
+    updateEditAndProgress();
+});
+
+/**
+ * 鎵嬪姩閫夋嫨锛岃幏鍙栧緟绉伴噸鐨勬暟鎹紝寮瑰嚭閫夋嫨
+ */
+function selectByHand() {
+    var param = {
+        deptId: deptId,
+        type: type,
+        progress: curProgress,
+        timer: Math.random()
+    };
+    $.ajax({
+        type: "POST",
+        url: "/basic/inout/list-handle-data",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(param),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                renderTableProgressData(result.data);
+            }
+        },
+        error: function () {
+            layer.msg("绯荤粺鑾峰彇鏁版嵁鍑虹幇寮傚父锛岄噸鏂板皾璇�");
+        }
+    });
+}
+
+
+/**
+ * 杞﹁締閫夋嫨寮圭獥
+ * @param list
+ */
+function renderTableProgressData(list) {
+    // 娓呯┖鏁版嵁
+    $("#tableListProgressData").empty();
+    layer.open({
+        type: 1,
+        title: "閫夋嫨鍊间粨涓溅杈�",
+        offset: ['240px', '100px'],
+        area: ['1000px', '560px'],
+        cancel: function (index, layero) {
+            $("#listProgressData").css("display", "none");
+        },
+        shade: 0,
+        scrollbar: 0,
+        content: $('#listProgressData'),
+        closeBtn: 1
+    });
+    table.render({
+        elem: '#tableListProgressData',
+        data: list,
+        page: false,
+        even: true,
+        cols: [[
+            {
+                type: 'numbers',
+                title: '搴忓彿'
+            }, {
+                field: 'id',
+                title: '鍗曟嵁鍙�',
+                align: 'center'
+            }, {
+                field: 'userName',
+                title: '鎵胯繍浜�',
+                align: 'center'
+            }, {
+                field: 'plateNum',
+                title: '杞︾墝鍙�',
+                align: 'center'
+            }, {
+                field: 'progress',
+                title: '娴佺▼杩涘害',
+                align: 'center',
+                style: 'font-weight: bold',
+                templet: function (item) {
+                    return INOUT_PROGRESS_MSG(item.progress);
+                }
+            }, {
+                fixed: 'right',
+                title: '閫夋嫨鎿嶄綔',
+                align: 'center',
+                toolbar: '#barSelectProgress'
+            }
+        ]]
+    });
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
+
+// 琛ㄥ崟娓呯┖
+function resetForm() {
+    $("#form-data")[0].reset();
+    $('#kccz-r-img1').removeAttr('src');
+    $('#kccz-r-img2').removeAttr('src');
+    $('#kccz-r-img3').removeAttr('src');
+    form.render();
+    recordData = null;
+    $("#text-param").val(null);
+}
+
+/**
+ * 椤甸潰鍒锋柊
+ */
+function flushPage() {
+    layer.confirm('纭畾瑕佸埛鏂伴〉闈㈠悧锛�', {icon: 3, title: '鎻愮ず'}, function (index) {
+        resetForm();
+        layer.close(index);
+    });
+}
+
+/**
+ * 鏌ヨ鏁版嵁
+ * @param id
+ * @param plateNum
+ */
+function flushData(id, plateNum) {
+    var index = layer.load();
+    var param = {
+        type: type,
+        progress: curProgress,
+        id: id,
+        plateNum: plateNum
+    };
+    $.ajax({
+        type: "POST",
+        url: "/basic/inout/inout-query",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(param),
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                notifyProgress(result.msg, result.data);
+            } else {
+                recordData = result.data;
+
+                // 杩斿洖鐨勬暟鎹繘琛岃祴鍊�
+                form.val("form-data", recordData);
+                form.render();
+
+                updateEditAndProgress();
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("鏌ヨ澶辫触锛岃閲嶆柊灏濊瘯");
+        }
+    });
+}
+
+// 褰撳墠瀹屾垚
+function submit() {
+    if (!recordData) {
+        alertError("娌℃湁涓氬姟鏁版嵁淇℃伅锛屾墽琛岃鎷掔粷");
+        return;
+    }
+    var data = form.val("form-data");
+    //鍚堝苟鏁版嵁
+    Object.assign(recordData, data);
+    // 鑾峰彇鐓х墖
+    var files = [{
+        fileName: img1
+    }, {
+        fileName: img2
+    }, {
+        fileName: img3
+    }];
+    recordData.files = files;
+
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "/basic/inout/submit-handle",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(recordData),
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                notify(result.msg, result.data);
+            } else {
+                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
+                resetForm();
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
+        }
+    });
+}
+
+/**
+ * 鏍规嵁涓氬姟鏁版嵁鏇存柊椤甸潰涓殑鐘舵��
+ */
+function updateEditAndProgress() {
+    //鏄剧ず褰撳墠娴佺▼
+    if (type === "IN") {
+        $("#rk-progress-register").addClass("active");
+        $("#rk-progress-fullWeight").addClass("active");
+        $("#rk-progress-hand").addClass("active");
+        $("#rk-progress-emptyWeight").removeClass("active");
+    }
+    if (type === "OUT") {
+        $("#ck-progress-register").addClass("active");
+        $("#ck-progress-emptyWeight").addClass("active");
+        $("#ck-progress-hand").addClass("active");
+        $("#ck-progress-fullWeight").removeClass("active");
+    }
+    //娴佺▼鏄剧ず
+    if (inoutProgress) {
+        if (inoutProgress.indexOf("REGISTER") === -1) {
+            $("#rk-progress-register").css("display", "none");
+            $("#ck-progress-register").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
+            $("#rk-progress-fullWeight").css("display", "none");
+            $("#ck-progress-fullWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("HANDLE") === -1) {
+            $("#rk-progress-hand").css("display", "none");
+            $("#ck-progress-hand").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
+            $("#rk-progress-emptyWeight").css("display", "none");
+            $("#ck-progress-emptyWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("CARD_BACK") === -1) {
+            $("#rk-progress-cardBack").css("display", "none");
+            $("#ck-progress-cardBack").css("display", "none");
+        }
+
+        if (type === "IN") {
+            $("#rk_progress").css("display", "block");
+            $("#ck_progress").css("display", "none");
+        }
+        if (type === "OUT") {
+            $("#ck_progress").css("display", "block");
+            $("#rk_progress").css("display", "none");
+        }
+    }
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @param msg 鎻愰啋淇℃伅
+ * @param data 鏁版嵁淇℃伅锛屽彲鑳戒负绌�
+ */
+function notify(msg, data) {
+    if (data) {
+        //璧嬪��
+        $("#resultMsg").text(msg);
+        $("#resultUserName").text(data.userName);
+        $("#resultPlateNum").text(data.plateNum);
+        if ("IN" == data.type) {
+            $("#resultType").text("鍏ュ簱-" + INOUT_PROGRESS_MSG(data.progress));
+        } else {
+            $("#resultType").text("鍑哄簱-" + INOUT_PROGRESS_MSG(data.progress));
+        }
+
+        layer.open({
+            type: 1,
+            offset: ['150px', '200px'],
+            area: '450px;',
+            shade: 0.8,
+            id: 'dialog_notify_info',
+            btn: ['纭畾'],
+            content: $('#dialog-from-notify'),
+            yes: function (index) {
+                layer.closeAll();
+            }
+        });
+    } else {
+        layer.alert(msg, {offset: ['300px', '300px']});
+    }
+}
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/register.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
similarity index 97%
rename from fzzy-igdss-web/src/main/resources/static/inout/register.js
rename to fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
index f873e4c..7144648 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/register.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
@@ -134,7 +134,7 @@
     var index = layer.load();
     $.ajax({
         type: "POST",
-        url: "../../inout/api/get-plateNum",
+        url: "/inout/api/get-plateNum",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: param,
@@ -143,7 +143,6 @@
                 alertError(result.msg);
             } else {
                 $("#plateNum").val(result.data.plateNum);
-                $("#plateNum2").val(result.data.plateNum);
             }
             layer.close(index);
         },
@@ -161,7 +160,7 @@
     $("#form-data")[0].reset();
     form.render();
     // 韬唤璇侀噸缃�
-    $("#id_img_pers").attr("src", "../../static/images/rkbk-photo_03.png");
+    $("#id_img_pers").attr("src", "/img/web/inout/rkbk-photo_03.png");
     $("#pz-img").removeClass("kccz-r-img-red");
     $("#pz-text").text("鑷姩鎶撴媿");
 }
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
index 5faa9fd..77d367e 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
@@ -5,10 +5,7 @@
 var recordData = null;// 涓氬姟鏁版嵁淇℃伅
 var snapData;//绯荤粺鎶撴媿瀵硅薄淇℃伅
 var timerWeight;
-var paramIntelCard;//璁惧璇嗗埆缁撴灉
-var paramIdCard;//璁惧璇嗗埆缁撴灉
-var curCheckItems = null;// 褰撳墠鏁版嵁鐨勬鏌ラ」淇℃伅
-var step = 1;
+var curProgress = null;
 
 $(function () {
     layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
@@ -26,7 +23,8 @@
             if (obj.event === 'select') {
                 //娓呯┖琛ㄥ崟
                 resetForm();
-                flushData(data.intelCard, null);
+                flushData(data.id, null);
+                $("#listProgressData").css("display", "none");
                 layer.closeAll();
             }
         });
@@ -34,15 +32,12 @@
     });
 
     //鏄剧ず娴佺▼鐜妭
-    showProgress();
+    updateEditAndProgress();
 
     // 鐩戝惉閲嶉噺鍙樺寲
     $(".weight").blur(function () {
-        deAutoByIn(this.name);
+        deAuto(this.name);
     });
-
-    // 鍒濆鍖朩ebSocket
-    // initInoutWS(companyId, bizType, progress, userId);
 });
 
 window.onload = function () {
@@ -68,47 +63,41 @@
     });
 };
 
-// socket淇℃伅杩斿洖铏曠悊
-function socketOnMessage(packet) {
-    //鏆傛棤
-}
-
-//鐐瑰嚮绉伴噸
+/**
+ * 绉伴噸鍙婃姄鎷�
+ */
 function weight() {
-    // 娌℃湁涓氬姟鏁版嵁涓嶅彲鎵ц
-    if (!recordData) {
-        alertError("娌℃湁鏌ヨ鍒颁笟鍔℃暟鎹紝鎵ц琚嫆缁濓紒");
-        return;
-    }
     // 濡傛灉鏄┖杞︾О閲�
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
+    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
         form.val("form-data", {
             emptyWeight: weightDto.weight
         });
         form.render();
     }
     // 濡傛灉鏄弧杞︾О閲�
-    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
+    if (InoutProgress.WEIGHT_FULL === curProgress) {
         form.val("form-data", {
             fullWeight: weightDto.weight
         });
         form.render();
     }
 
+    var data = form.val("form-data");
+    if (!data.plateNum) {
+        alertError("鎻愮ず锛氬~鍐欑櫥璁拌溅鐗屼俊鎭�");
+        return;
+    }
+
     // 鐐瑰嚮绉伴噸鑷姩璋冪敤鎶撴媿
     snapData = {
         companyId: companyId,
         deptId: deptId,
-        progress: recordData.progress,
+        progress: curProgress,
         bizType: type,
-        bizId: recordData.id,
-        plateNum: recordData.plateNum,
         id1: snapDto1.id,
         id2: snapDto2.id,
         id3: snapDto3.id,
-        id4: snapDto2.id,
-        sort: $("#scaleName").val(),
-        weight: weightDto.weight
+        sort: $("#scaleName").val()
     };
 
     //褰撳墠AJAX鏈嶅姟涓哄悓姝ユ湇鍔★紝杩斿洖鏁版嵁鍖呰鐓х墖淇℃伅
@@ -116,7 +105,7 @@
     $.ajax({
         sync: false,
         type: "POST",
-        url: "../../inout/api/snap-img",
+        url: "/inout/api/snap-img",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: JSON.stringify(snapData),
@@ -125,6 +114,7 @@
             if (result.code != "0000") {
                 alertError(result.msg);
             } else {
+                layer.msg("鎶撴媿鎴愬姛");
                 snapData = result.data;
             }
         },
@@ -133,77 +123,119 @@
             alertError("鍚庡彴璋冪敤鎴浘澶辫触锛岃閲嶆柊灏濊瘯");
         }
     });
-    //濡傛灉鏄浜屾绉伴噸锛岄粯璁ゆ墽琛岃嚜鍔ㄨ绠�
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-        deAutoByIn("emptyWeight");
-    }
-}
-
-// 浣跨敤鎻掍欢鑾峰彇韬唤璇�
-function flushIdCard() {
-    var index = layer.load();
-    $.ajax({
-        type: "GET",
-        async: true,
-        url: "http://127.0.0.1:9111/IDCARD",
-        data: {},
-        dataType: "json",
-        // jsonp: "callback",
-        // jsonpCallback: "jsonpCallback",
-        success: function (json) {
-            layer.close(index);
-            var data = json;
-            if (data.code === "200" || data.code == 200) {
-                paramIdCard = data.idNum;
-                $("#text-param").text("璇嗗埆韬唤璇侊細" + paramIdCard);
-                flushData(null, paramIdCard);
-            } else {
-                alertError("娌℃湁璇诲彇鍒拌韩浠借瘉淇℃伅锛�");
-                return;
-            }
-
-        },
-        error: function () {
-            alertError("娌℃湁璇诲彇鍒拌韩浠借瘉淇℃伅锛�");
-            layer.close(index);
-        }
-    });
-}
-
-function flushByHand() {
-    var intelCard = $("#intelCard").val();
-    flushData(intelCard, null);
 }
 
 /**
- * 鎵嬪姩閫夋嫨锛岃幏鍙栧緟绉伴噸鐨勬暟鎹紝寮瑰嚭閫夋嫨
+ * 绉伴噸鎻愪氦
  */
-function selectByHand() {
-    var param = {
-        deptId: deptId,
-        type: type,
-        timer: Math.random()
-    };
+function submit() {
+
+    var data = form.val("form-data");
+    if (!data.depotId) {
+        alertError("鎻愮ず锛氳鍗镐粨搴撳繀濉�");
+        return;
+    }
+    if (!data.customerName) {
+        alertError("鎻愮ず锛氶�氱煡鍗曚俊鎭繀濉�");
+        return;
+    }
+    if (!data.foodVariety) {
+        alertError("鎻愮ず锛氱伯椋熷搧绉嶅繀濉�");
+        return;
+    }
+
+    // 鏍¢獙-鍏ュ簱婊¤溅绉伴噸
+    if (InoutProgress.WEIGHT_FULL === curProgress) {
+        if (data.fullWeight <= 0.0) {
+            alertError("鎻愮ず锛氭弧杞︾О閲嶄俊鎭繀濉�");
+            return;
+        }
+    }
+    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
+        if (data.emptyWeight <= 0.0) {
+            alertError("鎻愮ず锛氱┖杞︾О閲嶄俊鎭繀濉�");
+            return;
+        }
+    }
+
+    if(recordData){
+        //鍚堝苟鏁版嵁
+        Object.assign(recordData, data);
+    }else {
+        recordData = data;
+    }
+    recordData.progress = curProgress;
+
+    // 鑾峰彇鐓х墖
+    var files = [{
+        fileName: snapData.fileName1
+    }, {
+        fileName: snapData.fileName2
+    }, {
+        fileName: snapData.fileName3
+    }];
+    recordData.files = files;
+    var index = layer.load();
     $.ajax({
         type: "POST",
-        url: "/basic/inout/list-weight-data",
+        url: "/basic/inout/submit-weight",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
-        data: JSON.stringify(param),
+        data: JSON.stringify(recordData),
         success: function (result) {
             if (result.code != "0000") {
-                layer.msg(result.msg);
+                alertError(result.msg);
             } else {
-                renderTableProgressData(result.data);
+                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
+                //绗竴娆$О閲嶅悗锛屽埛鏂伴〉闈�
+                if (recordData.recordWeight <= 0.0) {
+                    resetForm();
+                }
             }
+            layer.close(index);
         },
         error: function () {
-            layer.msg("绯荤粺鑾峰彇鏁版嵁鍑虹幇寮傚父锛岄噸鏂板皾璇�");
+            layer.close(index);
+            alertError("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
         }
     });
 }
 
+/**
+ * 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
+ */
+function printBill() {
+    if (!recordData) {
+        alertError("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝鎵撳嵃琚嫆缁濓紒");
+        return;
+    }
 
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "/basic/print/bill-weight",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(recordData),
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                alertError(result.msg);
+            } else {
+                layer.msg("寮�濮嬫覆鏌撴墦鍗板崟鈥︹��");
+                printWeight(result.data);
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("鑾峰彇鎵撳嵃妯$増澶辫触锛岃鑱旂郴绠$悊鍛樻煡鐪嬪師鍥�");
+        }
+    });
+}
+
+/**
+ * 鍦扮鏁版嵁鍒锋柊
+ */
 function flushWeight() {
     var ip = "127.0.0.1";
     if (weightDto.ip) {
@@ -240,46 +272,102 @@
     });
 }
 
-
-// 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
-function printBill() {
-    if (!recordData) {
-        alertError("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝鎵撳嵃琚嫆缁濓紒");
-        return;
-    }
-    // 浠庡悗鍙拌幏鍙栨ā鐗堝苟鎵撳嵃
-    var data = form.val("form-data");
-    // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
-    Object.assign(recordData, data);
-
+/**
+ * 璇诲彇韬唤璇�
+ */
+function flushIdCard() {
     var index = layer.load();
     $.ajax({
-        type: "POST",
-        url: "../../basic/inout/report/bill-weight",
+        type: "GET",
+        async: true,
+        url: "http://127.0.0.1:9111/IDCARD",
+        data: {},
         dataType: "json",
-        contentType: "application/json;charset=UTF-8",
-        data: JSON.stringify(recordData),
-        success: function (result) {
+        success: function (json) {
             layer.close(index);
-            if (result.code != "0000") {
-                alertError(result.msg);
+            var data = json;
+            if (data.code === "200" || data.code == 200) {
+                // 涓存椂璧嬪��
+                $("#userName").val(data.cnName);
+                $("#userAddress").val(data.address);
+                $("#userId").val(data.idNum);
             } else {
-                layer.msg("寮�濮嬫覆鏌撴墦鍗板崟鈥︹��");
-                printWeight(result.data);
+                alertError("娌℃湁鑾峰彇鍒拌韩浠借瘉淇℃伅锛�");
+                return;
             }
         },
         error: function () {
+            layer.alert("韬唤璇佽鍙栧け璐ワ紒", {
+                offset: ['300px', '300px']
+            });
             layer.close(index);
-            alertError("鑾峰彇鎵撳嵃妯$増澶辫触锛岃鑱旂郴绠$悊鍛樻煡鐪嬪師鍥�");
         }
     });
 }
 
-// 琛ㄥ崟娓呯┖
+/**
+ * 璇诲彇杞︾墝鍙�
+ */
+function flushPlateNum() {
+    var param = JSON.stringify(snapDto1);
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "/inout/api/get-plateNum",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            if (result.code != "0000") {
+                alertError(result.msg);
+            } else {
+                $("#plateNum").val(result.data.plateNum);
+            }
+            layer.close(index);
+        },
+        error: function () {
+            layer.close(index);
+            alertError("杞︾墝璇嗗埆澶辫触锛�");
+        }
+    });
+}
+
+/**
+ * 鎵嬪姩閫夋嫨锛岃幏鍙栧緟绉伴噸鐨勬暟鎹紝寮瑰嚭閫夋嫨
+ */
+function selectByHand() {
+    var param = {
+        deptId: deptId,
+        type: type,
+        timer: Math.random()
+    };
+    $.ajax({
+        type: "POST",
+        url: "/basic/inout/list-weight-data",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(param),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                renderTableProgressData(result.data);
+            }
+        },
+        error: function () {
+            layer.msg("绯荤粺鑾峰彇鏁版嵁鍑虹幇寮傚父锛岄噸鏂板皾璇�");
+        }
+    });
+}
+
+/**
+ * 琛ㄥ崟鏁版嵁閲嶇疆
+ */
 function resetForm() {
     $("#form-data")[0].reset();
     form.render();
     recordData = null;
+    curProgress = null;
     weightDto.weight = 0.0;
     $("#weightValue").text("0.0");
     $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
@@ -287,6 +375,9 @@
     $("#text-param").val(null);
 }
 
+/**
+ * 椤甸潰鍒锋柊
+ */
 function flushPage() {
     layer.confirm('纭畾瑕佸埛鏂伴〉闈㈠悧锛�', {icon: 3, title: '鎻愮ず'}, function (index) {
         resetForm();
@@ -294,31 +385,22 @@
     });
 }
 
-
-//鐩戝惉琛ㄥ崟閲岀殑鏁板�煎彉鍖�
-document.getElementById('intelCard').addEventListener('input', function (event) {
-    var intelCard = $("#intelCard").val();
-    if (intelCard.length == 10) {
-        flushData(intelCard, null);
-    }
-});
-
-// --鏌ヨ鏂规硶,鑾峰彇韬唤璇佸彿銆佸崱鍙枫�佽溅鐗屽彿锛岃繘琛屾煡璇�
-function flushData(intelCard, userIdCard) {
+/**
+ * 鏌ヨ鏁版嵁
+ * @param id
+ * @param plateNum
+ */
+function flushData(id, plateNum) {
     var index = layer.load();
-    var userIdCard = userIdCard;
-    var intelCard = intelCard;
-    var plateNum = $("#plateNum").val();
     var param = {
         type: type,
-        progress: progress,
-        intelCard: intelCard,
-        userId: userIdCard,
+        progress: curProgress,
+        id: id,
         plateNum: plateNum
     };
     $.ajax({
         type: "POST",
-        url: "../../basic/inout/inout-query",
+        url: "/basic/inout/inout-query",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: JSON.stringify(param),
@@ -328,6 +410,7 @@
                 notifyProgress(result.msg, result.data);
             } else {
                 recordData = result.data;
+                curProgress = recordData.progress;
                 // 杩斿洖鐨勬暟鎹繘琛岃祴鍊�
                 form.val("form-data", recordData);
                 form.render();
@@ -342,41 +425,109 @@
     });
 }
 
-
 /**
  * 鏍规嵁涓氬姟鏁版嵁鏇存柊椤甸潰涓殑鐘舵��
  */
 function updateEditAndProgress() {
-    if (recordData) {
-        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-            $("#emptyWeight").removeClass("rkbk-search-input");
-            $("#emptyWeight").attr("disabled", false);
-
-            $("#progress-hand").addClass("active");
-            $("#progress-emptyWeight").addClass("active");
-
-            $("#fullWeight").addClass("rkbk-search-input");
-            $("#fullWeight").attr("disabled", true);
+    //褰撳墠娴佺▼鑺傜偣
+    if (curProgress == null) {
+        if (type === "IN") {
+            curProgress = "WEIGHT_FULL";
         }
-        if (InoutProgress.WEIGHT_FULL == recordData.progress) {
+        if (type === "OUT") {
+            curProgress = "WEIGHT_EMPTY";
+        }
+    }
+    //鏄剧ず褰撳墠娴佺▼
+    if (type === "IN") {
+        $("#rk-progress-register").addClass("active");
+        if (curProgress === InoutProgress.WEIGHT_FULL) {
+            $("#rk-progress-fullWeight").addClass("active");
+            $("#rk-progress-hand").removeClass("active");
+            $("#rk-progress-emptyWeight").removeClass("active");
+
+            //婊¤溅閲嶉噺鍙紪杈�
             $("#fullWeight").removeClass("rkbk-search-input");
             $("#fullWeight").attr("disabled", false);
 
-            $("#progress-hand").removeClass("active");
-            $("#progress-emptyWeight").removeClass("active");
-
+            //绌鸿溅閲嶉噺涓嶈兘缂栬緫
             $("#emptyWeight").addClass("rkbk-search-input");
             $("#emptyWeight").attr("disabled", true);
         }
-    } else {
-        $("#fullWeight").addClass("rkbk-search-input");
-        $("#fullWeight").attr("disabled", true);
+        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
+            $("#rk-progress-fullWeight").addClass("active");
+            $("#rk-progress-hand").addClass("active");
+            $("#rk-progress-emptyWeight").addClass("active");
 
-        $("#emptyWeight").addClass("rkbk-search-input");
-        $("#emptyWeight").attr("disabled", true);
+            //婊¤溅閲嶉噺涓嶈兘缂栬緫
+            $("#fullWeight").addClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", true);
 
-        $("#progress-hand").removeClass("active");
-        $("#progress-emptyWeight").removeClass("active");
+            //绌鸿溅閲嶉噺鍙紪杈�
+            $("#emptyWeight").removeClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", false);
+        }
+    }
+    if (type === "OUT") {
+        $("#ck-progress-register").addClass("active");
+        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
+            $("#ck-progress-emptyWeight").addClass("active");
+            $("#ck-progress-hand").removeClass("active");
+            $("#ck-progress-fullWeight").removeClass("active");
+
+            //婊¤溅閲嶉噺涓嶈兘缂栬緫
+            $("#fullWeight").addClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", true);
+
+            //绌鸿溅閲嶉噺鍙紪杈�
+            $("#emptyWeight").removeClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", false);
+        }
+        if (curProgress === InoutProgress.WEIGHT_FULL) {
+            $("#ck-progress-emptyWeight").addClass("active");
+            $("#ck-progress-hand").addClass("active");
+            $("#ck-progress-fullWeight").addClass("active");
+
+            //婊¤溅閲嶉噺鍙紪杈�
+            $("#fullWeight").removeClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", false);
+
+            //绌鸿溅閲嶉噺涓嶈兘缂栬緫
+            $("#emptyWeight").addClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", true);
+        }
+    }
+    //娴佺▼鏄剧ず
+    if (inoutProgress) {
+        if (inoutProgress.indexOf("REGISTER") === -1) {
+            $("#rk-progress-register").css("display", "none");
+            $("#ck-progress-register").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
+            $("#rk-progress-fullWeight").css("display", "none");
+            $("#ck-progress-fullWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("HANDLE") === -1) {
+            $("#rk-progress-hand").css("display", "none");
+            $("#ck-progress-hand").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
+            $("#rk-progress-emptyWeight").css("display", "none");
+            $("#ck-progress-emptyWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("CARD_BACK") === -1) {
+            $("#rk-progress-cardBack").css("display", "none");
+            $("#ck-progress-cardBack").css("display", "none");
+        }
+
+        if (type === "IN") {
+            $("#rk_progress").css("display", "block");
+            $("#ck_progress").css("display", "none");
+        }
+        if (type === "OUT") {
+            $("#ck_progress").css("display", "block");
+            $("#rk_progress").css("display", "none");
+        }
     }
     //鏍规嵁閰嶇疆淇℃伅璁剧疆鍦扮鏄惁鍙紪杈�
     if (weightEditTag && weightEditTag == 'N') {
@@ -386,87 +537,6 @@
         $("#emptyWeight").addClass("rkbk-search-input");
         $("#emptyWeight").attr("disabled", true);
     }
-}
-
-// 褰撳墠瀹屾垚
-function submit() {
-    if (!recordData) {
-        alertError("娌℃湁涓氬姟鏁版嵁淇℃伅锛屾墽琛岃鎷掔粷");
-        return;
-    }
-    var data = form.val("form-data");
-
-    if (!data.depotId) {
-        alertError("鎻愮ず锛氳鍗镐粨搴撳繀濉�");
-        return;
-    }
-    if (!data.customerName) {
-        alertError("鎻愮ず锛氬鎴峰悕绉板繀濉�");
-        return;
-    }
-
-    // 鏍¢獙-鍏ュ簱婊¤溅绉伴噸
-    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
-        if (data.fullWeight <= 0.0) {
-            alertError("鎻愮ず锛氭弧杞︾О閲嶄俊鎭繀濉�");
-            return;
-        }
-    }
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-        if (data.emptyWeight <= 0.0) {
-            alertError("鎻愮ず锛氱┖杞︾О閲嶄俊鎭繀濉�");
-            return;
-        }
-        if (!data.foodVariety) {
-            alertError("鎻愮ず锛氱伯椋熷搧绉嶅繀濉�");
-            return;
-        }
-
-        if (!data.settleWeight || data.settleWeight <= 0.0) {
-            alertError("缁撶畻閲嶉噺涓嶅悎瑙勶紝璇锋牳瀵�");
-            return;
-        }
-        if (!data.recordWeight || data.recordWeight <= 0.0) {
-            alertError("鍏ュ簱閲嶉噺涓嶅悎瑙勶紝璇锋牳瀵�");
-            return;
-        }
-    }
-    //鍚堝苟鏁版嵁
-    Object.assign(recordData, data);
-    // 鑾峰彇鐓х墖
-    var files = [{
-        fileName: snapData.fileName1
-    }, {
-        fileName: snapData.fileName2
-    }, {
-        fileName: snapData.fileName3
-    }, {
-        fileName: snapData.fileName4
-    }];
-    recordData.files = files;
-    var index = layer.load();
-    $.ajax({
-        type: "POST",
-        url: "../../basic/inout/submit-weight",
-        dataType: "json",
-        contentType: "application/json;charset=UTF-8",
-        data: JSON.stringify(recordData),
-        success: function (result) {
-            if (result.code != "0000") {
-                alertError(result.msg);
-            } else {
-                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
-                if (InoutProgress.WEIGHT_FULL == recordData.progress) {
-                    resetForm();
-                }
-            }
-            layer.close(index);
-        },
-        error: function () {
-            layer.close(index);
-            alertError("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
-        }
-    });
 }
 
 /**
@@ -504,6 +574,10 @@
     }
 }
 
+/**
+ * 杞﹁締閫夋嫨寮圭獥
+ * @param list
+ */
 function renderTableProgressData(list) {
     // 娓呯┖鏁版嵁
     $("#tableListProgressData").empty();
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js
index 847f491..2f4c536 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js
@@ -5,10 +5,9 @@
 var page = 1;
 var limit = 15;
 var recordData = null;
-var selectData = null;  //鍗曢�夌殑淇℃伅
 var snapData;//绯荤粺鎶撴媿瀵硅薄淇℃伅
 var timerWeight;
-var img1, img2, img3;// 椤甸潰涓殑鍥剧墖涓婁紶鍚嶇О
+var curProgress = null;
 
 $(function () {
     layui.use(['layer', 'laydate', 'form', 'table'], function () {
@@ -43,28 +42,14 @@
             }
         });
 
-        // 鐩戝惉浠撳簱閫夋嫨锛岄�夋嫨鍚庤嚜鍔ㄨ皟鐢ㄤ粨搴撶殑绮搧绉嶅拰浜у湴淇℃伅
-        form.on('select(select_depotId)', function (obj) {
-            updateFoodVarietyByDepot(obj.value);
-        });
         // 鍒濆鍖栬〃鍗曟暟鎹�
         renderTable();
     });
 
-    //鏄剧ず绉伴噸寮圭獥娴佺▼
-    showProgress();
-
-    // 鐩戝惉姣斾緥鍊煎~鍐�
-    $(".per").blur(function () {
-        deAutoByPer();
-    });
-
-    // 鐩戝惉姣斾緥鍊煎~鍐�
+    // 鐩戝惉閲嶉噺鍙樺寲
     $(".weight").blur(function () {
-        deAutoByWeight();
+        deAuto(this.name);
     });
-    //鍒濆鍖朩ebSocket
-    // initWS(deptId, bizType, progress, userId);
 });
 
 window.onload = function () {
@@ -75,7 +60,7 @@
     }, 2500);
 
     // 鍔犺浇瑙嗛
-    initVideo(lprDto, snapDto1, snapDto2);
+    initVideo(snapDto1, snapDto2, snapDto3);
 
     //璁剧疆鍦扮
     $("#scaleName").val(weightDto.sort);
@@ -94,6 +79,7 @@
 function flushData() {
     var index = layer.load();
     var param = form.val("form-param");
+    param.weightTag = "WEIGHT";
     table.reload('tableData', {
         url: "/basic/inout/page-inout-data",
         where: param
@@ -108,6 +94,7 @@
 // 娓叉煋琛ㄥ崟鏁版嵁
 function renderTable() {
     var param = form.val("form-param");
+    param.weightTag = "WEIGHT";
     // 娓呯┖鏁版嵁
     $("#tableData").empty();
     table.render({
@@ -162,8 +149,8 @@
             templet: function (item) {
                 var result = item.foodVariety;
                 $.each(listFoodVariety, function (index, data) {
-                    if (item.foodVariety == data.code) {
-                        result = data.name;
+                    if (item.foodVariety == data.dictValue) {
+                        result = data.dictLabel;
                         return true;
                     }
                 });
@@ -206,17 +193,19 @@
     });
 }
 
-/*-----------------------寮圭獥鏄剧ず娓叉煋-寮�濮�------------------------------*/
-
-//鎿嶄綔鍓嶏紝閲嶆柊娴佹按鏁版嵁褰撳墠淇℃伅
+/**
+ * 绉伴噸寮圭獥閲嶆柊鏌ヨ鏁版嵁
+ * @param obj
+ */
 function afreshGetData(obj) {
     var index = layer.load();
     recordData = null;
     var data = obj.data;
     var param = {
-        userId: data.userId,
-        plateNum: data.plateNum,
-        id: data.id
+        type: data.type,
+        progress: data.progress,
+        id: data.id,
+        plateNum: data.plateNum
     };
     $.ajax({
         type: "POST",
@@ -229,7 +218,8 @@
                 layer.alert("璇峰埛鏂伴〉闈㈠悗锛岄噸鏂版搷浣滐紒锛�");
             } else {
                 recordData = result.data;
-                showWindows(recordData.progress);
+                curProgress = recordData.progress;
+                showWindows();
             }
             layer.close(index);
         },
@@ -240,13 +230,18 @@
     });
 }
 
-//鏄剧ず娴佺▼鎿嶄綔寮圭獥
+/**
+ * 鐧昏寮圭獥
+ */
 function quickRegister() {
+    $("#form-data")[0].reset();
+    form.render();
     //鐧昏鎸夐挳鏀惧紑
     $("#btn_register").css("display", "block");
     $("#text-info").removeClass("text-info");
     //绉伴噸鎿嶄綔寮圭獥
-    var pro = '鐧昏';
+    var pro = '鐧昏绉伴噸';
+    recordData = null;
     updateEditAndProgress();
     flushPage();
     layer.open({
@@ -263,15 +258,19 @@
     });
 }
 
-//鏄剧ず娴佺▼鎿嶄綔寮圭獥
-function showWindows(progress) {
-
-    //鐧昏鎸夐挳鏀惧紑
+/**
+ * 绉伴噸寮圭獥
+ * @param progress
+ */
+function showWindows() {
+    $("#form-data")[0].reset();
+    form.render();
+    //鐧昏鎸夐挳闅愯棌
     $("#btn_register").css("display", "none");
     $("#text-info").addClass("text-info");
     //绉伴噸鎿嶄綔寮圭獥
     var pro = '绌鸿溅绉伴噸';
-    if (progress == 'WEIGHT_FULL') {
+    if (curProgress == 'WEIGHT_FULL') {
         pro = '婊¤溅绉伴噸';
     }
     updateEditAndProgress();
@@ -290,61 +289,117 @@
     });
 }
 
-//绉伴噸寮圭獥涓祦绋嬬幆鑺傛樉绀�
-function showProgress() {
-    if (!inoutProgress) {
-        return;
-    }
-    if (inoutProgress.indexOf("REGISTER") == -1) {
-        $("#progress-register").css("display", "none");
-    }
-    if (inoutProgress.indexOf("WEIGHT_FULL") == -1) {
-        $("#progress-fullWeight").css("display", "none");
-    }
-    if (inoutProgress.indexOf("HANDLE") == -1) {
-        $("#progress-hand").css("display", "none");
-    }
-    if (inoutProgress.indexOf("WEIGHT_EMPTY") == -1) {
-        $("#progress-emptyWeight").css("display", "none");
-    }
-    if (inoutProgress.indexOf("CARD_BACK") == -1) {
-        $("#progress-cardBack").css("display", "none");
-    }
-}
-
-//绉伴噸寮圭獥涓洿鏂版祦绋嬭妭鐐�
+/**
+ * 鏍规嵁涓氬姟鏁版嵁鏇存柊椤甸潰涓殑鐘舵��
+ */
 function updateEditAndProgress() {
-    if (recordData) {
-        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-            $("#emptyWeight").removeClass("rkbk-search-input");
-            $("#emptyWeight").attr("disabled", false);
-
-            $("#progress-hand").removeClass("active");
-            $("#progress-fullWeight").removeClass("active");
-
-            $("#fullWeight").addClass("rkbk-search-input");
-            $("#fullWeight").attr("disabled", true);
+    //褰撳墠娴佺▼鑺傜偣
+    if (curProgress == null) {
+        if (type === "IN") {
+            curProgress = "WEIGHT_FULL";
         }
+        if (type === "OUT") {
+            curProgress = "WEIGHT_EMPTY";
+        }
+    }
+    //鏄剧ず褰撳墠娴佺▼
+    if (type === "IN") {
+        $("#rk-progress-register").addClass("active");
+        if (curProgress === InoutProgress.WEIGHT_FULL) {
+            $("#rk-progress-fullWeight").addClass("active");
+            $("#rk-progress-hand").removeClass("active");
+            $("#rk-progress-emptyWeight").removeClass("active");
 
-        if (InoutProgress.WEIGHT_FULL == recordData.progress) {
+            //婊¤溅閲嶉噺鍙紪杈�
             $("#fullWeight").removeClass("rkbk-search-input");
             $("#fullWeight").attr("disabled", false);
 
-            $("#progress-hand").addClass("active");
-            $("#progress-fullWeight").addClass("active");
-
+            //绌鸿溅閲嶉噺涓嶈兘缂栬緫
             $("#emptyWeight").addClass("rkbk-search-input");
             $("#emptyWeight").attr("disabled", true);
         }
-    } else {
+        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
+            $("#rk-progress-fullWeight").addClass("active");
+            $("#rk-progress-hand").addClass("active");
+            $("#rk-progress-emptyWeight").addClass("active");
+
+            //婊¤溅閲嶉噺涓嶈兘缂栬緫
+            $("#fullWeight").addClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", true);
+
+            //绌鸿溅閲嶉噺鍙紪杈�
+            $("#emptyWeight").removeClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", false);
+        }
+    }
+    if (type === "OUT") {
+        $("#ck-progress-register").addClass("active");
+        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
+            $("#ck-progress-emptyWeight").addClass("active");
+            $("#ck-progress-hand").removeClass("active");
+            $("#ck-progress-fullWeight").removeClass("active");
+
+            //婊¤溅閲嶉噺涓嶈兘缂栬緫
+            $("#fullWeight").addClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", true);
+
+            //绌鸿溅閲嶉噺鍙紪杈�
+            $("#emptyWeight").removeClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", false);
+        }
+        if (curProgress === InoutProgress.WEIGHT_FULL) {
+            $("#ck-progress-emptyWeight").addClass("active");
+            $("#ck-progress-hand").addClass("active");
+            $("#ck-progress-fullWeight").addClass("active");
+
+            //婊¤溅閲嶉噺鍙紪杈�
+            $("#fullWeight").removeClass("rkbk-search-input");
+            $("#fullWeight").attr("disabled", false);
+
+            //绌鸿溅閲嶉噺涓嶈兘缂栬緫
+            $("#emptyWeight").addClass("rkbk-search-input");
+            $("#emptyWeight").attr("disabled", true);
+        }
+    }
+    //娴佺▼鏄剧ず
+    if (inoutProgress) {
+        if (inoutProgress.indexOf("REGISTER") === -1) {
+            $("#rk-progress-register").css("display", "none");
+            $("#ck-progress-register").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
+            $("#rk-progress-fullWeight").css("display", "none");
+            $("#ck-progress-fullWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("HANDLE") === -1) {
+            $("#rk-progress-hand").css("display", "none");
+            $("#ck-progress-hand").css("display", "none");
+        }
+        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
+            $("#rk-progress-emptyWeight").css("display", "none");
+            $("#ck-progress-emptyWeight").css("display", "none");
+        }
+        if (inoutProgress.indexOf("CARD_BACK") === -1) {
+            $("#rk-progress-cardBack").css("display", "none");
+            $("#ck-progress-cardBack").css("display", "none");
+        }
+
+        if (type === "IN") {
+            $("#rk_progress").css("display", "block");
+            $("#ck_progress").css("display", "none");
+        }
+        if (type === "OUT") {
+            $("#ck_progress").css("display", "block");
+            $("#rk_progress").css("display", "none");
+        }
+    }
+    //鏍规嵁閰嶇疆淇℃伅璁剧疆鍦扮鏄惁鍙紪杈�
+    if (weightEditTag && weightEditTag == 'N') {
         $("#fullWeight").addClass("rkbk-search-input");
         $("#fullWeight").attr("disabled", true);
 
         $("#emptyWeight").addClass("rkbk-search-input");
         $("#emptyWeight").attr("disabled", true);
-
-        $("#progress-hand").removeClass("active");
-        $("#progress-fullWeight").removeClass("active");
     }
 }
 
@@ -399,308 +454,135 @@
 
 //鐐瑰嚮绉伴噸
 function weight() {
-    // 娌℃湁涓氬姟鏁版嵁涓嶅彲鎵ц
-    if (!recordData) {
-        layer.alert("娌℃湁鏌ヨ鍒颁笟鍔℃暟鎹紝鎵ц琚嫆缁濓紒锛�");
-        return;
-    }
     // 濡傛灉鏄┖杞︾О閲�
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-        form.val("form-weight", {
+    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
+        form.val("form-data", {
             emptyWeight: weightDto.weight
         });
+        form.render();
     }
     // 濡傛灉鏄弧杞︾О閲�
-    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
-        form.val("form-weight", {
+    if (InoutProgress.WEIGHT_FULL === curProgress) {
+        form.val("form-data", {
             fullWeight: weightDto.weight
         });
+        form.render();
     }
-    form.render();
-    snapData == null;
 
-    //鐐瑰嚮绉伴噸鏃跺�欒嚜鍔ㄦ姄鎷嶆暟鎹�
-    layer.msg("绯荤粺鑷姩鎶撴媿淇濈暀璁板綍鈥︹��");
+    var data = form.val("form-data");
+    if (!data.plateNum) {
+        alertError("鎻愮ず锛氬~鍐欑櫥璁拌溅鐗屼俊鎭�");
+        return;
+    }
+
+    // 鐐瑰嚮绉伴噸鑷姩璋冪敤鎶撴媿
     snapData = {
         companyId: companyId,
         deptId: deptId,
-        bizTag: recordData.progress,
-        bizType: bizType,
-        plateNum: recordData.plateNum + "-" + recordData.carNum,
-
-        id1: (null != lprDto) ? lprDto.id : null,
-        id2: (null != snapDto1) ? snapDto1.id : null,
-        id3: (null != snapDto2) ? snapDto2.id : null
+        progress: curProgress,
+        bizType: type,
+        id1: snapDto1.id,
+        id2: snapDto2.id,
+        id3: snapDto3.id,
+        sort: $("#scaleName").val()
     };
 
-    console.log(snapData);
     //褰撳墠AJAX鏈嶅姟涓哄悓姝ユ湇鍔★紝杩斿洖鏁版嵁鍖呰鐓х墖淇℃伅
     var index = layer.load();
     $.ajax({
         sync: false,
         type: "POST",
-        url: "../../basic/inout/snap-img",
+        url: "/inout/api/snap-img",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: JSON.stringify(snapData),
         success: function (result) {
             layer.close(index);
             if (result.code != "0000") {
-                layer.alert(result.msg);
+                alertError(result.msg);
             } else {
+                layer.msg("鎶撴媿鎴愬姛");
                 snapData = result.data;
             }
         },
         error: function () {
             layer.close(index);
-            layer.msg("鍚庡彴璋冪敤鎴浘澶辫触锛岃閲嶆柊灏濊瘯锛侊紒");
+            alertError("鍚庡彴璋冪敤鎴浘澶辫触锛岃閲嶆柊灏濊瘯");
         }
     });
-    //浜屾绉伴噸鍚庯紝鑷姩璋冪敤涓嬭嚜鍔ㄨ绠�
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-        deAutoByPer();
-    }
-    flushBtn("btn-weight");
 }
 
-// 鑷姩璁$畻锛屾敞鎰忥細鍑哄簱姘村垎鏄� +锛屽叆搴撴按鍒嗛渶瑕� -
-function deAutoByPer() {
-    var curData = form.val("form-weight");
-
-    var netWeight = 0, deImpurity = 0, deWet = 0, deSum = 0, settleWeight = 0;
-
-    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
-        return;
-    }
-    // 璁$畻鍑�閲�
-    netWeight = curData.fullWeight - curData.emptyWeight;
-
-    if (netWeight <= 0) {
-        layer.msg("鍑�閲嶅皬浜庣瓑浜�0锛屽綋鍓嶈绠椾笉姝g‘锛�");
-        return;
-    }
-
-    // 鏉傝川鎵i噸
-    if (curData.impurity > 0) {
-        deImpurity = (netWeight * curData.impurity / 100.00).toFixed(0);
-    }
-    // 姘村垎澧為噸
-    if (curData.wet > 0) {
-        deWet = (netWeight * curData.wet / 100.00).toFixed(0);
-    }
-
-
-    // 鎬绘墸閲�
-    deSum = Number(deImpurity) + Number(curData.deOther)
-        + Number(curData.deHandle);
-    deSum = deSum.toFixed(0);
-
-    // 缁撶畻鍑�閲嶏紝鎶婃按鍒嗘坊鍔犺繎鏉�
-    settleWeight = Number(netWeight) - Number(deSum) + Number(deWet);
-    settleWeight = settleWeight.toFixed(0);
-
-    form.val("form-weight", {
-        netWeight: netWeight,
-        deImpurity: deImpurity,
-        deWet: deWet,
-        deSum: deSum,
-        settleWeight: settleWeight
-    });
-    form.render();
-}
-
-// 鑷姩璁$畻
-function deAutoByWeight() {
-    var curData = form.val("form-weight");
-
-    var netWeight = 0, impurity = 0, wet = 0, deSum = 0, settleWeight = 0;
-
-    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
-        return;
-    }
-    // 鍑�閲�
-    netWeight = curData.fullWeight - curData.emptyWeight;
-
-    if (netWeight <= 0) {
-        layer.msg("鍑�閲嶅皬浜庣瓑浜�0锛屽綋鍓嶈绠椾笉姝g‘锛�");
-        return;
-    }
-
-    // 鏉傝川-鐧惧垎姣�
-    if (curData.deImpurity > 0) {
-        impurity = (curData.deImpurity / netWeight * 100).toFixed(2);
-    }
-    // 姘村垎 -鐧惧垎姣�
-    if (curData.deWet > 0) {
-        wet = (curData.deWet / netWeight * 100).toFixed(2);
-    }
-
-    // 鎬绘墸閲�= 鏉傝川鎵i噸 + 涓嶅畬鍠勬墸閲� + 姘斾綋鎵i噸 + 鍊间粨鎵i噸 + 鍖呰鎵i噸
-    deSum = Number(curData.deImpurity)
-        + Number(curData.deOther) + Number(curData.deHandle);
-
-    deSum = deSum.toFixed(0);
-
-    // 缁撶畻鍑�閲嶏紝鎶婃按鍒嗘坊鍔犺繎鏉�
-    settleWeight = Number(netWeight) - Number(deSum) + Number(curData.deWet);
-    settleWeight = settleWeight.toFixed(0);
-
-    form.val("form-weight", {
-        netWeight: netWeight,
-        impurity: impurity,
-        wet: wet,
-        deSum: deSum,
-        settleWeight: settleWeight
-    });
-    form.render();
-}
-
-//鏍规嵁褰撳墠鎿嶄綔鐨勬寜閽甀D鏇存柊鍏朵粬鎸夐挳鐘舵��
-function flushBtn(btnId) {
-    if ("btn-weight" == btnId) {// 绉伴噸鍚庡彲浠ョ偣鍑诲畬鎴愮О閲�
-        $("#btn-submit").removeClass("layui-btn-disabled");
-        $("#btn-submit").attr("disabled", false);
-    }
-    if ("btn-submit" == btnId) {
-        $("#btn-submit").addClass("layui-btn-disabled");
-        $("#btn-submit").attr("disabled", true);
-        flushData();
-        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {// 鍑哄簱锛屽鏋滄槸绌鸿溅绉伴噸锛屽畬鎴愭敹鐩存帴鍒锋柊椤甸潰
-            layer.closeAll();
-        } else {
-            // 瀹屾垚绉伴噸鍚庢帶鍒舵寜閽�
-            $("#btn-weight").addClass("layui-btn-disabled");
-            $("#btn-weight").attr("disabled", true);
-
-            $("#btn-printBill").removeClass("layui-btn-disabled");
-            $("#btn-printBill").attr("disabled", false);
-            addDisabled();
-        }
-    }
-    if ("btn-printBill" == btnId) {// 鎵撳嵃杩囩鍗曪紝璇存槑涓氬姟瀹屾垚
-        $("#btn-weight").removeClass("layui-btn-disabled");
-        $("#btn-weight").attr("disabled", false);
-
-        $("#btn-submit").addClass("layui-btn-disabled");
-        $("#btn-submit").attr("disabled", true);
-
-        $("#btn-printBill").addClass("layui-btn-disabled");
-        $("#btn-printBill").attr("disabled", true);
-        layer.closeAll();
-        flushData();
-    }
-}
-
-//鏇存敼鎵i噸淇℃伅妗嗕笉鍙紪杈�
-function addDisabled() {
-    //鏉傝川
-    $("#impurity").attr("disabled", true);
-    $("#deImpurity").attr("disabled", true);
-    //姘村垎
-    $("#wet").attr("disabled", true);
-    $("#deWet").attr("disabled", true);
-    //鍊间粨
-    $("#deHandle").attr("disabled", true);
-    //鍏朵粬
-    $("#deOther").attr("disabled", true);
-}
-
-//鎭㈠鎵i噸淇℃伅妗嗙紪杈戠姸鎬�
-function delDisabled() {
-    //鏉傝川
-    $("#impurity").attr("disabled", false);
-    $("#deImpurity").attr("disabled", false);
-    //姘村垎
-    $("#wet").attr("disabled", false);
-    $("#deWet").attr("disabled", false);
-    //鍊间粨
-    $("#deHandle").attr("disabled", false);
-    //鍏朵粬
-    $("#deOther").attr("disabled", false);
-}
-
-// 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
+/**
+ * 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
+ */
 function printBill() {
     if (!recordData) {
-        layer.alert("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝涓嶆敮鎸佹墦鍗帮紒");
+        alertError("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝鎵撳嵃琚嫆缁濓紒");
         return;
     }
-    // 浠庡悗鍙拌幏鍙栨ā鐗堝苟鎵撳嵃
-    var data = form.val("form-weight");
-    // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
-    Object.assign(recordData, data);
 
-    printBillStep2();
-};
-
-// 鐐瑰嚮鎵撳嵃锛屽厛鎵ц绯荤粺榛樿鎵ц瀹屾垚鍗″洖鏀�
-function printBillStep2() {
     var index = layer.load();
     $.ajax({
         type: "POST",
-        url: "../../basic/inout-report/inout-bill-weight",
+        url: "/basic/print/bill-weight",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: JSON.stringify(recordData),
         success: function (result) {
             layer.close(index);
             if (result.code != "0000") {
-                layer.msg(result.msg);
+                alertError(result.msg);
             } else {
                 layer.msg("寮�濮嬫覆鏌撴墦鍗板崟鈥︹��");
                 printWeight(result.data);
-                // 鍒锋柊鎸夐挳
-                flushBtn("btn-printBill");
             }
         },
         error: function () {
             layer.close(index);
-            layer.msg("鑾峰彇鎵撳嵃妯$増澶辫触锛岃鑱旂郴绠$悊鍛樻煡鐪嬪師鍥狅紒锛�");
+            alertError("鑾峰彇鎵撳嵃妯$増澶辫触锛岃鑱旂郴绠$悊鍛樻煡鐪嬪師鍥�");
         }
     });
-};
+}
+/**
+ * 绉伴噸鎻愪氦
+ */
+function submit() {
 
-//瀹屾垚绉伴噸
-function submitWeight() {
-    if (null == recordData) {
-        notify("娌℃湁鏁版嵁鍙互鎻愪氦", null);
-        return;
-    }
-    var data = form.val("form-weight");
+    var data = form.val("form-data");
     if (!data.depotId) {
-        notify("瑁呭嵏浠撳簱蹇呴』濉啓", null);
+        alertError("鎻愮ず锛氳鍗镐粨搴撳繀濉�");
         return;
     }
-    // 鏍¢獙-鍑哄簱绌鸿溅
-    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
-        if (data.emptyWeight <= 0.0) {
-            notify("绌鸿溅绉伴噸淇℃伅蹇呭~", null);
-            return;
-        }
-        if (!data.customerName) {
-            notify("寰�鏉ュ崟浣嶄俊鎭繀濉�", null);
-            return;
-        }
-    } else {
+    if (!data.customerName) {
+        alertError("鎻愮ず锛氶�氱煡鍗曚俊鎭繀濉�");
+        return;
+    }
+    if (!data.foodVariety) {
+        alertError("鎻愮ず锛氱伯椋熷搧绉嶅繀濉�");
+        return;
+    }
+
+    // 鏍¢獙-鍏ュ簱婊¤溅绉伴噸
+    if (InoutProgress.WEIGHT_FULL === curProgress) {
         if (data.fullWeight <= 0.0) {
-            notify("婊¤溅绉伴噸淇℃伅蹇呭~", null);
-            return;
-        }
-        if (!data.foodVariety) {
-            notify("绮鍝佺蹇呭~", null);
-            return;
-        }
-        if (!data.foodLocation) {
-            notify("绮浜у湴蹇呭~", null);
-            return;
-        }
-        if (!data.settleWeight || data.settleWeight <= 0.0) {
-            notify("鎵i噸鍚庡噣淇℃伅涓嶆纭紝璇锋牳瀹炶绠�", null);
+            alertError("鎻愮ず锛氭弧杞︾О閲嶄俊鎭繀濉�");
             return;
         }
     }
-    // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
-    Object.assign(recordData, data);
+    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
+        if (data.emptyWeight <= 0.0) {
+            alertError("鎻愮ず锛氱┖杞︾О閲嶄俊鎭繀濉�");
+            return;
+        }
+    }
+
+    if(recordData){
+        //鍚堝苟鏁版嵁
+        Object.assign(recordData, data);
+    }else {
+        recordData = data;
+    }
+    recordData.progress = curProgress;
 
     // 鑾峰彇鐓х墖
     var files = [{
@@ -711,69 +593,106 @@
         fileName: snapData.fileName3
     }];
     recordData.files = files;
-
     var index = layer.load();
     $.ajax({
         type: "POST",
-        url: "../../basic/inout/inout-next-step",
+        url: "/basic/inout/submit-weight",
         dataType: "json",
         contentType: "application/json;charset=UTF-8",
         data: JSON.stringify(recordData),
         success: function (result) {
             if (result.code != "0000") {
-                layer.alert("鏁版嵁鎻愪氦澶辫触锛岃閲嶈瘯锛侊紒");
+                alertError(result.msg);
             } else {
+                curProgress = null;
                 clearInterval(timerWeight);
-                layer.alert("鏁版嵁鎻愪氦鎴愬姛锛侊紒");
-                // 鏇存柊鎸夐挳鏄剧ず
-                flushBtn("btn-submit");
+                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
+                //绗竴娆$О閲嶅悗锛屽埛鏂伴〉闈�
+                if (recordData.recordWeight <= 0.0) {
+                    $("#form-data")[0].reset();
+                    form.render();
+                }
             }
             layer.close(index);
         },
         error: function () {
             layer.close(index);
-            layer.alert("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯锛侊紒");
+            alertError("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
         }
     });
 }
 
 //閲嶆柊绉伴噸鏃讹紝琛ㄥ崟涓嶆竻绌猴紝鎸夐挳閲嶇疆
 function flushPage() {
-
     weightDto.weight = 0.0;
     $("#weightValue").text("0.0");
     $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
     timerGetWeight();
 
-    //鎵i噸淇℃伅妗嗘仮澶嶄负鍙紪杈�
-    delDisabled();
     //琛ㄥ崟鏁版嵁閲嶇疆
-    form.val("form-weight", recordData);
+    form.val("form-data", recordData);
     form.render();
 }
 
-//鏍规嵁閫夋嫨鐨勪粨搴撲俊鎭�,鏇存柊绮鍝佺
-function updateFoodVarietyByDepot(selectId) {
-    var selectDepot;
-    $.each(listDepot, function (index, data) {
-        if (data.id === selectId) {
-            selectDepot = data;
-            return false;
+/**
+ * 璇诲彇韬唤璇�
+ */
+function flushIdCard() {
+    var index = layer.load();
+    $.ajax({
+        type: "GET",
+        async: true,
+        url: "http://127.0.0.1:9111/IDCARD",
+        data: {},
+        dataType: "json",
+        success: function (json) {
+            layer.close(index);
+            var data = json;
+            if (data.code === "200" || data.code == 200) {
+                // 涓存椂璧嬪��
+                $("#userName").val(data.cnName);
+                $("#userAddress").val(data.address);
+                $("#userId").val(data.idNum);
+            } else {
+                alertError("娌℃湁鑾峰彇鍒拌韩浠借瘉淇℃伅锛�");
+                return;
+            }
+        },
+        error: function () {
+            layer.alert("韬唤璇佽鍙栧け璐ワ紒", {
+                offset: ['300px', '300px']
+            });
+            layer.close(index);
         }
     });
-
-    if (selectDepot) {
-        form.val("form-weight", {
-            foodVariety: selectDepot.foodVariety,
-            foodLocation: selectDepot.foodLocation,
-            foodLevel: selectDepot.foodLevel,
-            noticeId: selectDepot.noticeId
-        });
-        form.render();
-    }
 }
 
-/*-----------------------绉伴噸鎿嶄綔-缁撴潫------------------------------*/
+/**
+ * 璇诲彇杞︾墝鍙�
+ */
+function flushPlateNum() {
+    var param = JSON.stringify(snapDto1);
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "/inout/api/get-plateNum",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            if (result.code != "0000") {
+                alertError(result.msg);
+            } else {
+                $("#plateNum").val(result.data.plateNum);
+            }
+            layer.close(index);
+        },
+        error: function () {
+            layer.close(index);
+            alertError("杞︾墝璇嗗埆澶辫触锛�");
+        }
+    });
+}
 
 /**
  * 寮瑰嚭鎻愰啋妗�
@@ -793,7 +712,7 @@
         }
         $("#resultIntelCard").text(data.intelCard);
 
-        layer.open({
+        var indexNotify = layer.open({
             type: 1,
             offset: ['150px', '200px'],
             area: '450px;',
@@ -802,7 +721,7 @@
             btn: ['纭畾'],
             content: $('#dialog-from-notify'),
             yes: function (index) {
-                layer.closeAll();
+                layer.close(indexNotify);
             }
         });
     } else {
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/weight.js b/fzzy-igdss-web/src/main/resources/static/inout/weight.js
index a0e4a2a..8bc7227 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/weight.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/weight.js
@@ -2,7 +2,7 @@
  * 鍏ュ簱-绉伴噸鑷姩璁$畻
  * @param name 瑙﹀彂浜嬩欢鐨勫睘鎬у悕绉�
  */
-function deAutoByIn(name) {
+function deAuto(name) {
     var curData = form.val("form-data");
     if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
         return;
@@ -14,10 +14,9 @@
         return;
     }
     //鍏朵粬淇℃伅
-    var deHandle = curData.deHandle, dePackage = curData.dePackage, deOther = curData.deOther, settleWeight = 0,
-        recordWeight = 0, deCheck = curData.deCheck, addCheck = curData.addCheck;
-    recordWeight = Number(netWeight) - Number(deHandle) - Number(dePackage) - Number(deOther) - Number(deCheck);
-    settleWeight = Number(recordWeight) + Number(addCheck);
+    var deOther = curData.deOther, settleWeight = 0, recordWeight = 0;
+    recordWeight = Number(netWeight) - Number(deOther);
+    settleWeight = Number(recordWeight);
 
     netWeight = netWeight.toFixed(1);
     recordWeight = recordWeight.toFixed(1);
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/check.html b/fzzy-igdss-web/src/main/resources/templates/inout/check.html
index 47984ba..1503557 100644
--- a/fzzy-igdss-web/src/main/resources/templates/inout/check.html
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/check.html
@@ -304,7 +304,7 @@
 <script th:src="@{/common/constant.js}"></script>
 <script th:src="@{/common/igds-common.js}"></script>
 <script th:src="@{/inout/inout-common.js}"></script>
-<script th:src="@{/inout/check.js}"></script>
+<script th:src="@{/inout/inout-check.js}"></script>
 
 <script type="text/html" id="barControl">
     <a class="layui-btn control-btn" lay-event="edit">缁撴灉褰曞叆</a>
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/handle.html b/fzzy-igdss-web/src/main/resources/templates/inout/handle.html
new file mode 100644
index 0000000..147998d
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/handle.html
@@ -0,0 +1,632 @@
+<!DOCTYPE html>
+<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="renderer" content="webkit">
+    <title>鍑哄叆搴撶鐞�-鍊间粨绠$悊</title>
+
+    <link rel="stylesheet" th:href="@{/ajax/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" th:href="@{/inout/inout-style.css}">
+
+    <style>
+        .kccz-r-btnbox {
+            width: 86px !important;
+        }
+
+        .kccz-r-btn {
+            width: 86px !important;
+        }
+
+        #text-param {
+            font-size: 14px;
+            color: red;
+            padding-left: 10px;
+        }
+
+        .display-none {
+            display: none;
+        }
+
+        .cursor {
+            cursor: pointer;
+        }
+
+        .kccz-czxx-dl dt {
+            width: 25px;
+            height: 24px;
+            color: #000;
+            font-size: 18px;
+        }
+
+        .kccz-left-box2 {
+            height: 555px;
+        }
+
+        .color-red {
+            color: red !important;
+        }
+
+        .layui-table td {
+            font-weight: bold;
+        }
+
+        .layui-select-disabled .layui-disabled {
+            color: #000 !important;
+        }
+
+        .depot-food input {
+            line-height: 34px;
+            padding-right: 10px;
+            font-size: 16px;
+            color: #666;
+            background: #eff4f6;
+        }
+
+        .rk-step-wrap {
+            padding: 0px;
+            border-bottom: 0px;
+            text-align: center;
+        }
+
+        .rkbk-quick {
+            margin-top: 15px !important;
+        }
+
+        .kccz-con {
+            margin: 10px 0px;
+        }
+
+        .border-no {
+            border: 0px;
+        }
+
+        .qyzj-btnbox {
+            margin-top: 10px;
+        }
+
+        .kccz-data-btnbox {
+            min-height: 38px;
+            padding-top: 2px;
+        }
+
+        .layui-layer-title {
+            font-weight: bold;
+        }
+
+        .rkbk-search-btn {
+            width: 100px;
+            height: 30px;
+            line-height: 30px;
+            font-size: 16px;
+        }
+
+        .r-240 {
+            right: 240px;
+        }
+
+        .r-120 {
+            right: 120px;
+        }
+
+        .rkbk-search-input.bg-date {
+            background: #FFF !important;
+        }
+        .kccz-left-box2 {
+            height: 741px;
+        }
+        #scaleName {
+            width: 130px;
+            height: 28px;
+        }
+        .kccz-r-item {
+            height: 240px;
+        }
+        .kccz-r-con {
+            height: 190px;
+        }
+        .kccz-r-vedio {
+             background: unset;
+            height: 190px;
+        }
+        .kccz-r-vedio img{
+            width: 80%;
+            height: 100%;
+            background: #dee6ec;
+        }
+    </style>
+
+</head>
+
+<body>
+
+<div class="l-container layui-clear">
+    <div class="rk-main">
+        <div class="qyzj-btnbox layui-clear">
+
+            <div class="rkbk-quick fl">
+                <button class="rkbk-quick-btn layui-btn" onclick="selectByHand()">
+                    <i><img th:src="@{/img/web/inout/icon-hyd.png}"/></i>閫夋嫨鍊间粨
+                </button>
+                <button id="btn-submit" class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
+                    <i><img th:src="@{/img/web/inout/icon-ok.png}"/></i>鍊间粨瀹屾垚
+                </button>
+                <button class="rkbk-quick-btn layui-btn btn-violet" onclick="flushPage()">
+                    <i><img th:src="@{/img/web/inout/icon-shuaxin2.png}"/></i>鍒锋柊椤甸潰
+                </button>
+
+            </div>
+            <!-- 娴佺▼寮曞 -->
+            <div class="rk-step-wrap fr">
+                <ul class="rk-step" id="rk_progress" style="display: none;">
+                    <li id="rk-progress-register" class="rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+						</span>
+                        <p>鍏ュ簱鐧昏</p>
+                    </li>
+                    <li id="rk-progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+						</span>
+                        <p>鍏ュ簱鍊间粨</p>
+                    </li>
+                    <li id="rk-progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-cardBack">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
+						</span>
+                        <p>绂诲簱纭</p>
+                    </li>
+                </ul>
+                <ul class="rk-step" id="ck_progress" style="display: none;">
+                    <li id="ck-progress-register" class="rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+                        </span>
+                        <p>鍑哄簱鐧昏</p>
+                    </li>
+                    <li id="ck-progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                    <li id="ck-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+                        </span>
+                        <p>鍑哄簱鍊间粨</p>
+                    </li>
+                    <li id="ck-progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="ck-progress-cardBack">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
+						</span>
+                        <p>绂诲簱纭</p>
+                    </li>
+                </ul>
+            </div>
+            <!-- 娴佺▼寮曞EDN -->
+        </div>
+        <!--qyzj-btnbox end-->
+
+
+        <div class="kccz-con">
+            <div class="kccz-left fl">
+                <div class="kccz-left-box2 radius-6">
+                    <div class="rkbk-tit">
+                        <i></i>
+                        <h3>涓氬姟鏁版嵁<span id="text-param"></span></h3>
+                    </div>
+
+                    <div class="kccz-data-form layui-row">
+                        <form class="layui-form" action="" id="form-data"
+                              lay-filter="form-data">
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="foodLocationId">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="noticeId">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <label class="layui-form-label">闅愯棌-鍗曟嵁鍙�</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="id" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <label class="layui-form-label">闅愯棌-娴佺▼鑺傜偣</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="progress" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <label class="layui-form-label">闅愯棌-閫氱煡鍗曞彿</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="noticeId" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <label class="layui-form-label">闅愯棌-浜у湴</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="foodLocationId"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <label class="layui-form-label">闅愯棌-绫诲瀷</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="type" th:value="${type}"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label  color-red" id="depotIdLabel">瑁呭嵏浠撳簱</label>
+                                    <div class="layui-input-block">
+                                        <select name="depotId" id="depotId" lay-filter="select_depotId">
+                                            <option value=""></option>
+                                            <option th:each="depot,depotSet:${listDepot}"
+                                                    th:value="${depot.id}" th:text="${depot.name}"></option>
+                                        </select>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">姣涢噸(婊¤溅)</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="fullWeight" id="fullWeight" autocomplete="off"
+                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input rkbk-search-input"
+                                               disabled>
+                                        <em
+                                                class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">鐨噸(绌鸿溅)</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="emptyWeight" id="emptyWeight" autocomplete="off"
+                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input weight rkbk-search-input"
+                                               disabled>
+                                        <em
+                                                class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">閫氱煡鍗�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="customerName" placeholder="璇烽�夋嫨"
+                                               autocomplete="off" class="layui-input" disabled="disabled"> <em
+                                            class="kccz-data-dw cursor" onclick="showNotice()">鈥︹��</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">绮鍝佺</label>
+                                    <div class="layui-input-block">
+                                        <select name="foodVariety" id="foodVariety">
+                                            <option value=""></option>
+                                            <option th:each="dic,dicSet:${listFoodVariety}"
+                                                    th:value="${dic.dictValue}" th:text="${dic.dictLabel}"></option>
+                                        </select>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鍑�&nbsp;&nbsp;&nbsp;&nbsp;閲�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="netWeight" autocomplete="off"
+                                               placeholder="鑷姩璁$畻锛屼笉鍙紪杈�" class="layui-input rkbk-search-input"
+                                               disabled> <em class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">绮浜у湴</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="foodLocation" placeholder="璇烽�夋嫨"
+                                               autocomplete="off" class="layui-input" disabled="disabled"> <em
+                                            class="kccz-data-dw cursor" onclick="showFoodLocation()">鈥︹��</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">姘�&nbsp;&nbsp;&nbsp;&nbsp;鍒�</label>
+                                    <div class="layui-input-block">
+                                        <input id="perWet" type="text" name="perWet" autocomplete="off"
+                                               placeholder="璇疯緭鍏�" class="layui-input weight"> <em
+                                            class="kccz-data-dw">%</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鎵�&nbsp;&nbsp;&nbsp;&nbsp;閲�</label>
+                                    <div class="layui-input-block">
+                                        <input id="deOther" type="text" name="deOther" autocomplete="off"
+                                               placeholder="璇疯緭鍏�" class="layui-input weight"> <em
+                                            class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鍗�&nbsp;&nbsp;&nbsp;&nbsp;浠�</label>
+                                    <div class="layui-input-block">
+                                        <input id="price" type="text" name="price" autocomplete="off"
+                                               placeholder="璇疯緭鍏�" class="layui-input weight"> <em
+                                            class="kccz-data-dw">鍏�</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鏉�&nbsp;&nbsp;&nbsp;&nbsp;璐�</label>
+                                    <div class="layui-input-block">
+                                        <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
+                                               placeholder="璇疯緭鍏�" class="layui-input weight"> <em
+                                            class="kccz-data-dw">%</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鍏ュ簱閲嶉噺</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="recordWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
+                                               autocomplete="off" class="layui-input rkbk-search-input"
+                                               disabled> <em class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs8">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">澶囨敞璇存槑</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="remarks" placeholder="璇疯緭鍏ュ唴瀹�"
+                                               class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">缁撶畻閲嶉噺</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="settleWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
+                                               autocomplete="off" class="layui-input rkbk-search-input"
+                                               disabled> <em class="kccz-data-dw">KG</em>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">鎵胯繍浜�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="userName" placeholder="璇疯緭鍏�" class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">韬唤璇佸彿</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="userId" id="userId" placeholder="璇疯緭鍏�"
+                                               autocomplete="off" class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label color-red">杞︾墝鍙�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="plateNum" id="plateNum" placeholder="璇疯緭鍏�"
+                                               autocomplete="off" class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs4">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鑱旂郴鐢佃瘽</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="userContact" id="userContact" placeholder="璇疯緭鍏�"
+                                               autocomplete="off" class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-xs8">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">鍦�&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;鍧�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" name="userAddress" id="userAddress" placeholder="璇疯緭鍏�"
+                                               autocomplete="off" class="layui-input">
+                                    </div>
+                                </div>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+                <!--kccz-left-box2 end-->
+
+            </div>
+            <!--kccz-left end-->
+            <div class="kccz-right fr bg-ef">
+                <div class="kccz-r-item radius-6">
+                    <div class="kccz-r-box">
+                        <div class="rkbk-tit">
+                            <i></i>
+                            <h3>鍊间粨璁板綍1</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio"><img id="kccz-r-img1"></div>
+                            <div class="kccz-r-btnbox">
+                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn1"> <span
+                                        class="kccz-r-img"></span>
+                                    <p>涓婁紶鍥剧墖</p>
+                                </a>
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+                <!--kccz-r-item end-->
+
+                <div class="kccz-r-item radius-6 mt-10">
+                    <div class="kccz-r-box">
+                        <div class="rkbk-tit">
+                            <i></i>
+                            <h3>鍊间粨璁板綍2</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio"><img id="kccz-r-img2"></div>
+                            <div class="kccz-r-btnbox">
+                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn2"> <span
+                                        class="kccz-r-img"></span>
+                                    <p>涓婁紶鍥剧墖</p>
+                                </a>
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+                <!--kccz-r-item end-->
+
+                <div class="kccz-r-item radius-6 mt-10">
+                    <div class="kccz-r-box">
+                        <div class="rkbk-tit">
+                            <i></i>
+                            <h3>鍊间粨璁板綍3</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio"><img id="kccz-r-img3"></div>
+                            <div class="kccz-r-btnbox">
+                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn3"> <span
+                                        class="kccz-r-img"></span>
+                                    <p>涓婁紶鍥剧墖</p>
+                                </a>
+                            </div>
+                        </div>
+
+                    </div>
+
+                </div>
+                <!--kccz-r-item end-->
+            </div>
+
+        </div>
+        <!--kccz-con end-->
+
+    </div>
+    <!--rk-main end-->
+
+</div>
+<!--l-container end-->
+
+
+<script th:inline="javascript">
+    //娴佺▼鐜妭
+    var inoutProgress = [[${inoutProgress}]];
+    var curProgress = [[${progress}]];
+    var deptId = [[${deptId}]];
+    var listDepot = [[${listDepot}]];
+
+    //鍑哄叆搴撶被鍨�
+    var type = [[${type}]];
+    var companyId = [[${loginUser.companyId}]];
+
+</script>
+
+<script th:src="@{/ajax/libs/layui/layui.js}"></script>
+<script th:src="@{/js/jquery.min.js}"></script>
+<script th:src="@{/common/constant.js}"></script>
+<script th:src="@{/common/igds-common.js}"></script>
+<script th:src="@{/inout/inout-common.js}"></script>
+<script th:src="@{/inout/inout-handle.js}"></script>
+
+</body>
+
+<!-- 寮瑰嚭绮浜у湴 -->
+<div class="layui-tab-content" id="listFoodLocation" style="display: none;">
+    <table class="layui-table" lay-skin="nob" id="tableFoodLoaction"
+           lay-filter="tableFoodLoaction" style="margin: 0px;"></table>
+</div>
+
+<!-- 娴佺▼鏁版嵁淇℃伅 -->
+<div class="layui-tab-content" id="listProgressData" style="display: none;">
+    <table class="layui-table tableListProgressData" id="tableListProgressData"
+           lay-filter="tableListProgressData">
+        <thead>
+        <tr class="qyzj-table-tit">
+            <th>鍗曟嵁鍙�</th>
+            <th>鎵胯繍浜�</th>
+            <th>杞︾墝鍙�</th>
+            <th>鎿嶄綔</th>
+        </tr>
+        </thead>
+        <tbody>
+        </tbody>
+    </table>
+</div>
+
+<!-- 寮瑰嚭妗嗙殑淇℃伅 -->
+<div class="layui-tab-content" id="dialog-from-notify" style="display: none;">
+    <table class="layui-table">
+        <colgroup>
+            <col width="100">
+        </colgroup>
+        <tbody>
+        <tr>
+            <td>杩斿洖淇℃伅</td>
+            <td id="resultMsg" style="color: red;font-weight: bold;"></td>
+        </tr>
+        <tr>
+            <td>鎵胯繍浜�</td>
+            <td id="resultUserName" style="font-weight: bold;"></td>
+        </tr>
+        <tr>
+            <td>杞︾墝鍙�</td>
+            <td id="resultPlateNum" style="font-weight: bold;"></td>
+        </tr>
+        <tr>
+            <td>涓嬩竴姝�</td>
+            <td id="resultType" style="font-weight: bold;"></td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+
+<script type="text/html" id="barSelectProgress">
+    <a class="layui-btn layui-btn-xs" lay-event="select">閫夋嫨鍊间粨</a>
+</script>
+</html>
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/register.html b/fzzy-igdss-web/src/main/resources/templates/inout/register.html
index c7224c2..7804f6d 100644
--- a/fzzy-igdss-web/src/main/resources/templates/inout/register.html
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/register.html
@@ -334,7 +334,7 @@
 <script th:src="@{/common/igds-common.js}"></script>
 <script th:src="@{/inout/inout-common.js}"></script>
 <script th:src="@{/inout/video-play.js}"></script>
-<script th:src="@{/inout/register.js}"></script>
+<script th:src="@{/inout/inout-register.js}"></script>
 
 <!-- 寮瑰嚭妗嗙殑淇℃伅 -->
 <div class="layui-tab-content" id="dialog-from-notify" style="display: none;">
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/weight.html b/fzzy-igdss-web/src/main/resources/templates/inout/weight.html
index aaa13c5..6616e31 100644
--- a/fzzy-igdss-web/src/main/resources/templates/inout/weight.html
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/weight.html
@@ -7,7 +7,7 @@
     <meta name="renderer" content="webkit">
     <title>鍑哄叆搴撶鐞�-鍏ュ簱绉伴噸</title>
 
-    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
+    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
     <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
 
     <!--浣跨敤鎵撳嵃鎻掍欢 闅愯棌褰撳墠鎻掍欢 -->
@@ -17,9 +17,11 @@
         .kccz-r-btnbox {
             width: 86px !important;
         }
+
         .layui-table-body {
             max-height: 400px;
         }
+
         .kccz-r-btn {
             width: 86px !important;
         }
@@ -120,11 +122,7 @@
         }
 
         .rkbk-search-input {
-            background: #FFF !important;
-        }
-
-        .rkbk-search-input.bg-date {
-            background: #FFF !important;
+            background: #e7eaec !important;
         }
 
         #scaleName {
@@ -218,41 +216,67 @@
             </div>
             <!-- 娴佺▼寮曞 -->
             <div class="rk-step-wrap fr">
-                <ul class="rk-step">
-                    <li id="progress-register" class="active rk-step-first">
+                <ul class="rk-step" id="rk_progress" style="display: none;">
+                    <li id="rk-progress-register" class="rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+						</span>
+                        <p>鍏ュ簱鐧昏</p>
+                    </li>
+                    <li id="rk-progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+						</span>
+                        <p>鍏ュ簱鍊间粨</p>
+                    </li>
+                    <li id="rk-progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-cardBack">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
+						</span>
+                        <p>绂诲簱纭</p>
+                    </li>
+                </ul>
+                <ul class="rk-step" id="ck_progress" style="display: none;">
+                    <li id="ck-progress-register" class="rk-step-first">
                         <span class="rk-step-span">
                             <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                         </span>
-                        <p>鍏ュ簱鐧昏</p>
+                        <p>鍑哄簱鐧昏</p>
                     </li>
-                    <li id="progress-check" class="active">
-                        <span class="rk-step-span">
-                            <img th:src="@{/img/web/inout/icon-zhijian.png}"/>
-                        </span>
-                        <p>鎵︽牱璐ㄦ</p>
-                    </li>
-                    <li id="progress-fullWeight" class="active">
-                        <span class="rk-step-span">
-                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
-                        </span>
-                        <p>婊¤溅绉伴噸</p>
-                    </li>
-                    <li id="progress-hand" class="">
-                        <span class="rk-step-span">
-                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
-                        </span>
-                        <p>鍏ュ簱鍊间粨</p>
-                    </li>
-                    <li id="progress-emptyWeight" class="">
+                    <li id="ck-progress-emptyWeight">
                         <span class="rk-step-span">
                             <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                         </span>
                         <p>绌鸿溅绉伴噸</p>
                     </li>
-                    <li id="progress-cardBack">
+                    <li id="ck-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+                        </span>
+                        <p>鍑哄簱鍊间粨</p>
+                    </li>
+                    <li id="ck-progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="ck-progress-cardBack">
                         <span class="rk-step-span">
                             <img th:src="@{/img/web/inout/icon-banli.png}"/>
-                        </span>
+						</span>
                         <p>绂诲簱纭</p>
                     </li>
                 </ul>
@@ -311,24 +335,40 @@
                         <form class="layui-form" action="" id="form-data"
                               lay-filter="form-data">
                             <div class="layui-form-item display-none">
-                                <input type="text" name="id">
+                                <label class="layui-form-label">闅愯棌-鍗曟嵁鍙�</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="id" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="progress">
+                                <label class="layui-form-label">闅愯棌-娴佺▼鑺傜偣</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="progress" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="type">
+                                <label class="layui-form-label">闅愯棌-閫氱煡鍗曞彿</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="noticeId" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="foodLocationId">
+                                <label class="layui-form-label">闅愯棌-浜у湴</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="foodLocationId"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="noticeId">
+                                <label class="layui-form-label">闅愯棌-绫诲瀷</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="type" th:value="${type}"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
                             </div>
-                            <div class="layui-form-item display-none">
-                                <input type="text" name="foodType">
-                            </div>
-
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
                                     <label class="layui-form-label  color-red" id="depotIdLabel">瑁呭嵏浠撳簱</label>
@@ -346,7 +386,7 @@
                                     <label class="layui-form-label color-red">姣涢噸(婊¤溅)</label>
                                     <div class="layui-input-block">
                                         <input type="text" name="fullWeight" id="fullWeight" autocomplete="off"
-                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input rkbk-search-input"
+                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input weight rkbk-search-input"
                                                disabled>
                                         <em
                                                 class="kccz-data-dw">KG</em>
@@ -409,7 +449,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">姘村垎</label>
+                                    <label class="layui-form-label">姘�&nbsp;&nbsp;&nbsp;&nbsp;鍒�</label>
                                     <div class="layui-input-block">
                                         <input id="perWet" type="text" name="perWet" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -419,7 +459,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鎵i噸</label>
+                                    <label class="layui-form-label">鎵�&nbsp;&nbsp;&nbsp;&nbsp;閲�</label>
                                     <div class="layui-input-block">
                                         <input id="deOther" type="text" name="deOther" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -429,7 +469,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鍗曚环</label>
+                                    <label class="layui-form-label">鍗�&nbsp;&nbsp;&nbsp;&nbsp;浠�</label>
                                     <div class="layui-input-block">
                                         <input id="price" type="text" name="price" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -439,7 +479,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鏉傝川</label>
+                                    <label class="layui-form-label">鏉�&nbsp;&nbsp;&nbsp;&nbsp;璐�</label>
                                     <div class="layui-input-block">
                                         <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -451,7 +491,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">鍏ュ簱閲嶉噺</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="recordWeight" placeholder="鑷姩璁$畻"
+                                        <input type="text" name="recordWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
                                                autocomplete="off" class="layui-input rkbk-search-input"
                                                disabled> <em class="kccz-data-dw">KG</em>
                                     </div>
@@ -470,7 +510,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">缁撶畻閲嶉噺</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="settleWeight" placeholder="鑷姩璁$畻"
+                                        <input type="text" name="settleWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
                                                autocomplete="off" class="layui-input rkbk-search-input"
                                                disabled> <em class="kccz-data-dw">KG</em>
                                     </div>
@@ -487,17 +527,18 @@
                             </div>
                             <div class="layui-col-xs12">
                                 <div style="height: 40px">
-                                    <input type="button" value="璇昏韩浠借瘉" style="height: 34px;line-height: 34px;right: 120px;"
+                                    <input type="button" value="璇昏韩浠借瘉"
+                                           style="height: 34px;line-height: 34px;right: 120px;"
                                            class="rkbk-search-btn layui-btn" onclick="flushIdCard()">
                                     <input type="button" value="璇昏溅鐗�" style="height: 34px;line-height: 34px"
-                                           class="rkbk-search-btn layui-btn" onclick="flushData(null,null)">
+                                           class="rkbk-search-btn layui-btn" onclick="flushPlateNum()">
                                 </div>
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">鎵胯繍浜�</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="userName1" placeholder="璇疯緭鍏�" class="layui-input">
+                                        <input type="text" name="userName" placeholder="璇疯緭鍏�" class="layui-input">
                                     </div>
                                 </div>
                             </div>
@@ -505,7 +546,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">韬唤璇佸彿</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="userId1" id="userId1" placeholder="璇疯緭鍏�"
+                                        <input type="text" name="userId" id="userId" placeholder="璇疯緭鍏�"
                                                autocomplete="off" class="layui-input">
                                     </div>
                                 </div>
@@ -514,7 +555,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">杞︾墝鍙�</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="plateNum1" id="plateNum1" placeholder="璇疯緭鍏�"
+                                        <input type="text" name="plateNum" id="plateNum" placeholder="璇疯緭鍏�"
                                                autocomplete="off" class="layui-input">
                                     </div>
                                 </div>
@@ -641,7 +682,7 @@
 
 </script>
 
-<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
+<script th:src="@{/ajax/libs/layui/layui.js}"></script>
 <script th:src="@{/js/jquery.min.js}"></script>
 <script th:src="@{/common/constant.js}"></script>
 <script th:src="@{/common/igds-common.js}"></script>
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/weight2.html b/fzzy-igdss-web/src/main/resources/templates/inout/weight2.html
index 3480c78..249fd31 100644
--- a/fzzy-igdss-web/src/main/resources/templates/inout/weight2.html
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/weight2.html
@@ -8,7 +8,7 @@
     <meta name="renderer" content="webkit">
     <title>鍑哄叆搴撶鐞�-鍑哄簱绠�鏄撴搷浣�</title>
 
-    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
+    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
     <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
 
     <!--浣跨敤鎵撳嵃鎻掍欢 闅愯棌褰撳墠鎻掍欢 -->
@@ -113,13 +113,13 @@
         }
 
         .rkbk-search-input {
-            background: #FFFFFF;
+            background: #e7eaec !important;
         }
         .kccz-left-box1 {
             padding: 1px 20px 10px 20px;
         }
         .kccz-left-box2 {
-            height: 512px;
+            height: 520px;
         }
         .text-info{
             margin: 0 0 20px 0;
@@ -312,8 +312,33 @@
 
 </div>
 <!--l-container end-->
+<script th:inline="javascript">
+    //娴佺▼鐜妭
+    var inoutProgress = [[${inoutProgress}]];
+    var progress = [[${progress}]];
+    var deptId = [[${deptId}]];
+    var listDepot = [[${listDepot}]];
+    var weightEditTag = [[${weightEditTag}]];
+    var listFoodVariety = [[${listFoodVariety}]];
+    //userId
+    var userId = [[${loginUser.loginName}]];
+    //鍑哄叆搴撶被鍨�
+    var type = [[${type}]];
+    var companyId = [[${loginUser.companyId}]];
 
-<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
+    //鍦扮淇℃伅
+    var weightDto = [[${weightDto}]];
+
+    //杩囩▼鎽勫儚澶�
+    var snapDto1 = [[${snapDto1}]];
+    var snapDto2 = [[${snapDto2}]];
+    var snapDto3 = [[${snapDto3}]];
+    //榛樿鏌ヨ鏃堕棿
+    var startTime = [[${startTime}]];
+    var endTime = [[${endTime}]];
+</script>
+
+<script th:src="@{/ajax/libs/layui/layui.js}"></script>
 <script th:src="@{/js/jquery.min.js}"></script>
 <script th:src="@{/common/constant.js}"></script>
 <script th:src="@{/common/igds-common.js}"></script>
@@ -322,36 +347,6 @@
 <script th:src="@{/inout/video-play.js}"></script>
 <script th:src="@{/inout/weight.js}"></script>
 <script th:src="@{/inout/inout-weight2.js}"></script>
-
-<script th:inline="javascript">
-    //娴佺▼鐜妭
-    var inoutProgress = [[${inoutProgress}]];
-    //搴撳尯缂栫爜
-    var deptId = [[${deptId}]];
-    //浠撳簱鍒楄〃
-    var listDepot = [[${listDepot}]];
-    //涓氬姟姝ラ
-    var bizType = [[${bizType}]];
-    //userId
-    var userId = [[${loginUser.loginName}]];
-    //鍑哄叆搴撶被鍨�
-    var type = [[${type}]];
-    var companyId = [[${loginUser.companyId}]];
-    //鍝佺
-    var listFoodVariety = [[${listFoodVariety}]];
-    //褰撳墠娴佺▼
-    var progress = [[${progress}]];
-    //鍦扮淇℃伅
-    var weightDto = [[${weightDto}]];
-
-    //鎶撴媿鎽勫儚鏈�
-    var snapDto1 = [[${snapDto1}]];
-    var snapDto2 = [[${snapDto2}]];
-    var snapDto3 = [[${snapDto3}]];
-    //榛樿鏌ヨ鏃堕棿
-    var startTime = [[${startTime}]];
-    var endTime = [[${endTime}]];
-</script>
 
 <!-- 寮瑰嚭閫氱煡鍗� -->
 <div class="layui-tab-content" id="listNotice" style="display: none;">
@@ -427,30 +422,68 @@
             </div>
             <!-- 娴佺▼寮曞 -->
             <div class="rk-step-wrap fr" style="padding: unset;border-bottom: unset">
-                <ul class="rk-step">
-                    <li id="progress-register" class="active rk-step-first">
+                <ul class="rk-step" id="rk_progress" style="display: none;">
+                    <li id="rk-progress-register" class="rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+						</span>
+                        <p>鍏ュ簱鐧昏</p>
+                    </li>
+                    <li id="rk-progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+						</span>
+                        <p>鍏ュ簱鍊间粨</p>
+                    </li>
+                    <li id="rk-progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+						</span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                    <li id="rk-progress-cardBack">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
+						</span>
+                        <p>绂诲簱纭</p>
+                    </li>
+                </ul>
+                <ul class="rk-step" id="ck_progress" style="display: none;">
+                    <li id="ck-progress-register" class="rk-step-first">
                         <span class="rk-step-span">
                             <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                         </span>
-                        <p>鍏ュ簱鐧昏</p>
+                        <p>鍑哄簱鐧昏</p>
                     </li>
-                    <li id="progress-fullWeight">
+                    <li id="ck-progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                    <li id="ck-progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+                        </span>
+                        <p>鍑哄簱鍊间粨</p>
+                    </li>
+                    <li id="ck-progress-fullWeight">
                         <span class="rk-step-span">
                             <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                         </span>
                         <p>婊¤溅绉伴噸</p>
                     </li>
-                    <li id="progress-hand" class="">
+                    <li id="ck-progress-cardBack">
                         <span class="rk-step-span">
-                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
-                        </span>
-                        <p>鍏ュ簱鍊间粨</p>
-                    </li>
-                    <li id="progress-emptyWeight" class="">
-                        <span class="rk-step-span">
-                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
-                        </span>
-                        <p>绌鸿溅绉伴噸</p>
+                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
+						</span>
+                        <p>绂诲簱纭</p>
                     </li>
                 </ul>
             </div>
@@ -507,24 +540,40 @@
                         <form class="layui-form" action="" id="form-data"
                               lay-filter="form-data">
                             <div class="layui-form-item display-none">
-                                <input type="text" name="id">
+                                <label class="layui-form-label">闅愯棌-鍗曟嵁鍙�</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="id" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="progress">
+                                <label class="layui-form-label">闅愯棌-娴佺▼鑺傜偣</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="progress" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="type">
+                                <label class="layui-form-label">闅愯棌-閫氱煡鍗曞彿</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="noticeId" autocomplete="off"
+                                           class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="foodLocationId">
+                                <label class="layui-form-label">闅愯棌-浜у湴</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="foodLocationId"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
                             </div>
                             <div class="layui-form-item display-none">
-                                <input type="text" name="noticeId">
+                                <label class="layui-form-label">闅愯棌-绫诲瀷</label>
+                                <div class="layui-input-block">
+                                    <input type="text" name="type" th:value="${type}"
+                                           autocomplete="off" class="layui-input rkbk-search-input">
+                                </div>
                             </div>
-                            <div class="layui-form-item display-none">
-                                <input type="text" name="foodType">
-                            </div>
-
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
                                     <label class="layui-form-label  color-red" id="depotIdLabel">瑁呭嵏浠撳簱</label>
@@ -542,7 +591,7 @@
                                     <label class="layui-form-label color-red">姣涢噸(婊¤溅)</label>
                                     <div class="layui-input-block">
                                         <input type="text" name="fullWeight" id="fullWeight" autocomplete="off"
-                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input rkbk-search-input"
+                                               placeholder="鍦扮鑷姩甯﹀叆" class="layui-input weight rkbk-search-input"
                                                disabled>
                                         <em
                                                 class="kccz-data-dw">KG</em>
@@ -605,7 +654,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">姘村垎</label>
+                                    <label class="layui-form-label">姘�&nbsp;&nbsp;&nbsp;&nbsp;鍒�</label>
                                     <div class="layui-input-block">
                                         <input id="perWet" type="text" name="perWet" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -615,7 +664,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鎵i噸</label>
+                                    <label class="layui-form-label">鎵�&nbsp;&nbsp;&nbsp;&nbsp;閲�</label>
                                     <div class="layui-input-block">
                                         <input id="deOther" type="text" name="deOther" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -625,7 +674,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鍗曚环</label>
+                                    <label class="layui-form-label">鍗�&nbsp;&nbsp;&nbsp;&nbsp;浠�</label>
                                     <div class="layui-input-block">
                                         <input id="price" type="text" name="price" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -635,7 +684,7 @@
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
-                                    <label class="layui-form-label">鏉傝川</label>
+                                    <label class="layui-form-label">鏉�&nbsp;&nbsp;&nbsp;&nbsp;璐�</label>
                                     <div class="layui-input-block">
                                         <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
                                                placeholder="璇疯緭鍏�" class="layui-input weight"> <em
@@ -647,7 +696,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">鍏ュ簱閲嶉噺</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="recordWeight" placeholder="鑷姩璁$畻"
+                                        <input type="text" name="recordWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
                                                autocomplete="off" class="layui-input rkbk-search-input"
                                                disabled> <em class="kccz-data-dw">KG</em>
                                     </div>
@@ -666,7 +715,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label">缁撶畻閲嶉噺</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="settleWeight" placeholder="鑷姩璁$畻"
+                                        <input type="text" name="settleWeight" placeholder="鑷姩璁$畻锛屼笉鍙紪杈�"
                                                autocomplete="off" class="layui-input rkbk-search-input"
                                                disabled> <em class="kccz-data-dw">KG</em>
                                     </div>
@@ -683,17 +732,19 @@
                             </div>
                             <div class="layui-col-xs12">
                                 <div style="height: 40px" id="btn_register">
-                                    <input type="button" value="璇昏韩浠借瘉" style="height: 34px;line-height: 34px;right: 120px;width: 100px"
+                                    <input type="button" value="璇昏韩浠借瘉"
+                                           style="height: 34px;line-height: 34px;right: 120px;width: 100px;"
                                            class="rkbk-search-btn layui-btn" onclick="flushIdCard()">
-                                    <input type="button" value="璇昏溅鐗�" style="height: 34px;line-height: 34px;width: 100px"
-                                           class="rkbk-search-btn layui-btn" onclick="flushData(null,null)">
+                                    <input type="button" value="璇昏溅鐗�"
+                                           style="height: 34px;line-height: 34px;width: 100px;"
+                                           class="rkbk-search-btn layui-btn" onclick="flushPlateNum()">
                                 </div>
                             </div>
                             <div class="layui-col-xs4">
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">鎵胯繍浜�</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="userName1" placeholder="璇疯緭鍏�" class="layui-input">
+                                        <input type="text" name="userName" placeholder="璇疯緭鍏�" class="layui-input">
                                     </div>
                                 </div>
                             </div>
@@ -701,7 +752,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">韬唤璇佸彿</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="userId1" id="userId1" placeholder="璇疯緭鍏�"
+                                        <input type="text" name="userId" id="userId" placeholder="璇疯緭鍏�"
                                                autocomplete="off" class="layui-input">
                                     </div>
                                 </div>
@@ -710,7 +761,7 @@
                                 <div class="layui-form-item">
                                     <label class="layui-form-label color-red">杞︾墝鍙�</label>
                                     <div class="layui-input-block">
-                                        <input type="text" name="plateNum1" id="plateNum1" placeholder="璇疯緭鍏�"
+                                        <input type="text" name="plateNum" id="plateNum" placeholder="璇疯緭鍏�"
                                                autocomplete="off" class="layui-input">
                                     </div>
                                 </div>
@@ -734,9 +785,11 @@
                                 </div>
                             </div>
 
-                            <div class="layui-col-xs8" style="padding-left: 50px;color: #2ab5ad;margin-top: -5px">
+                            <div class="layui-col-xs8" style="padding-left: 50px;color: #2ab5ad;">
                                 璇存槑锛�
-                                <span style="color: #2ab5ad;">1. 鍑�閲�=姣涢噸-鐨噸锛涘叆搴撻噸閲�=缁撶畻閲嶉噺=鍑�閲�-鎵i噸锛�</span>
+                                <span style="color: #2ab5ad;">
+                                        1. 鍑�閲�=姣涢噸-鐨噸锛涘叆搴撻噸閲�=缁撶畻閲嶉噺=鍑�閲�-鎵i噸锛�
+									</span>
                             </div>
                         </form>
                     </div>

--
Gitblit v1.9.3