From 46adcbf7494340a495539708210bb39110bdc33b Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期六, 29 十一月 2025 17:35:03 +0800
Subject: [PATCH] 快速登记、化验及称重作业页面提交1

---
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/Constant.java              |   76 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java |  236 +
 fzzy-igdss-web/src/main/resources/templates/inout/inout-check.html              |  595 ++++
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-cp.png       |    0 
 fzzy-igdss-view/src/main/java/models/core.model.xml                             |    2 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dayin.png           |    0 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java       |  153 +
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-gree.png            |    0 
 fzzy-igdss-web/src/main/resources/templates/inout/inout-register.html           |  739 +++++
 fzzy-igdss-web/src/main/java/com/fzzy/sys/init/SystemRunner.java                |   94 
 fzzy-igdss-web/src/main/resources/static/inout/inout-print.js                   |   53 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-red.png             |    0 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/SystemUtil.java               |   37 
 fzzy-igdss-web/src/main/resources/static/inout/inout-register.js                |  699 +++++
 fzzy-igdss-web/src/main/resources/static/img/web/inout/rkbk-photo_03.png        |    0 
 fzzy-igdss-web/src/main/resources/templates/register.html                       |    2 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera.png          |    0 
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/common/CommonManager.java     |   51 
 fzzy-igdss-web/src/main/resources/static/fonts/DigitalNumbers.ttf               |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-hyd.png             |    0 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java                 |  253 +
 fzzy-igdss-web/src/main/resources/static/inout/inout-common.js                  |   73 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dengji.png          |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/czxx-bg_03.png           |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-zhijian.png         |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-fuwei.png           |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-xiehuo.png          |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img-red.png         |    0 
 fzzy-igdss-web/src/main/resources/static/inout/inout-check.js                   |  869 ++++++
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-h.png        |    0 
 fzzy-igdss-web/src/main/resources/templates/inout/inout-weight.html             |  684 +++++
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-date.png            |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-ok.png              |    0 
 fzzy-igdss-web/src/main/resources/static/js/plugins/lodop/LodopFuncs.js         |  141 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java               |   33 
 fzzy-igdss-web/src/main/resources/static/common/constant.js                     |  111 
 fzzy-igdss-web/src/main/resources/static/inout/video-play.js                    |  346 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java     |  288 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysDeptService.java         |  171 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java           |   12 
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java       |   12 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img.png             |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-shuaxin2.png        |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-banli.png           |    0 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-stop.png            |    0 
 fzzy-igdss-web/src/main/resources/static/inout/weight.js                        |  381 ++
 fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js                  |  773 +++++
 fzzy-igdss-web/src/main/resources/static/img/web/inout/inout-img.png            |    0 
 /dev/null                                                                       |    0 
 fzzy-igdss-web/src/main/resources/static/inout/inout-style.css                  |  956 +++++++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeviceSerRepository.java |   13 
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-clear.png           |    0 
 fzzy-igdss-web/src/main/resources/static/common/igds-common.js                  |  238 +
 fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-chengzhong.png      |    0 
 54 files changed, 8,080 insertions(+), 11 deletions(-)

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 7ea3309..0d11939 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
@@ -77,4 +77,80 @@
      * 缂撳瓨KEY-鍑哄叆搴撻厤缃俊鎭紦瀛�
      */
     public static final String CACHE_INOUT_CONF_LIST = "INOUT_CONF";
+
+    public static final String MODEL_KEY_LOGIN_USER = "loginUser";
+
+    // 浠撳簱鍒楄〃
+    public static final String MODEL_KEY_DEPOT_LIST = "listDepot";
+
+
+    // 瀹屾垚鐘舵��-鏈畬鎴�
+    public static final String COMPLETE_STATUS_NONE = "NONE";
+    // 鍑哄叆搴撶被鍨�-鍏ュ簱
+    public static final String TYPE_IN = "IN";
+    // 鍑哄叆搴撶被鍨�-鍑哄簱
+    public static final String TYPE_OUT = "OUT";
+    // 娴佺▼-鐧昏
+    public static final String PROGRESS_REGISTER = "REGISTER";
+    // 娴佺▼-鍏ュ簱璐ㄦ
+    public static final String PROGRESS_CHECK = "CHECK";
+    // 娴佺▼-鍊间粨
+    public static final String PROGRESS_HANDLE = "HANDLE";
+    // 娴佺▼-绉伴噸锛屽寘鎷弧杞︾О閲嶆垨鑰呯┖杞︾О閲嶏紝褰撳墠鐘舵�佹瘮杈冪壒娈婏紝涓嶄綔涓烘祦绋嬭妭鐐癸紝鍙綔涓烘爣绛�
+    public static final String PROGRESS_WEIGHT_TAG = "WEIGHT_TAG";
+    // 娴佺▼-婊¤溅绉伴噸
+    public static final String PROGRESS_WEIGHT_FULL = "WEIGHT_FULL";
+    // 娴佺▼-绌鸿溅绉伴噸
+    public static final String PROGRESS_WEIGHT_EMPTY = "WEIGHT_EMPTY";
+    // 娴佺▼-缁撶畻
+    public static final String PROGRESS_PAY = "PAY";
+    // 娴佺▼-鍗$墖鍥炴敹
+    public static final String PROGRESS_CARD_BACK = "CARD_BACK";
+    // 娴佺▼-澶囨锛堣〃绀烘祦绋嬫暣浣撳畬鎴愬悗澶囨锛�
+    public static final String PROGRESS_RECORD = "RECORD";
+
+    /**
+     * 鍑哄叆搴撻厤缃殑绫诲瀷 10 = 杞︾墝璇嗗埆
+     */
+    public static final String CONF_TYPE_10 = "10";
+
+    /**
+     * 鍑哄叆搴撻厤缃殑绫诲瀷 20 = 鎵︽牱鏈哄櫒
+     */
+    public static final String CONF_TYPE_20 = "20";
+
+    /**
+     * 鍑哄叆搴撻厤缃殑绫诲瀷 21 = 鍖栭獙鏈�
+     */
+    public static final String CONF_TYPE_21 = "21";
+
+    /**
+     * 鍑哄叆搴撻厤缃殑绫诲瀷 30 = 鍦扮
+     */
+    public static final String CONF_TYPE_30 = "30";
+
+    /**
+     * 鍑哄叆搴撻厤缃殑绫诲瀷40 = LED鏄剧ず灞忓箷
+     */
+    public static final String CONF_TYPE_40 = "40";
+
+    /**
+     * 鍖栭獙澶у睆瑙嗛
+     */
+    public static final String CONF_TYPE_50 = "50";
+
+    /**
+     * 鍑哄叆搴撴姄鎷嶆憚鍍忓ご
+     */
+    public static final String CONF_TYPE_60 = "60";
+
+    /**
+     * 绉伴噸涓绘帶鍒跺櫒
+     */
+    public static final String CONF_TYPE_70 = "70";
+
+    /**
+     * 鏅烘収鍗�
+     */
+    public static final String CONF_TYPE_80 = "80";
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java
index 1a6655e..d2f50ff 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutConf.java
@@ -121,4 +121,37 @@
     @Transient
     private String errorMsg;
 
+
+    public InoutConf() {
+        super();
+    }
+
+    public InoutConf(InoutConf conf) {
+        this.id = conf.getId();
+        this.deptId = conf.getDeptId();
+        this.sort = conf.getSort();
+        this.inOrder = conf.getInOrder();
+        this.inoutProgress = conf.getInoutProgress();
+        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.remark = conf.getRemark();
+        this.errorMsg = conf.getErrorMsg();
+    }
+
+    public InoutConf(String sort) {
+        this.sort = sort;
+    }
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
index 6bff1d3..2880c79 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.bstek.dorado.annotation.PropertyDef;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -53,10 +54,6 @@
     @TableField("depot_id")
     private String depotId;
 
-    @Column(name = "customer_id", columnDefinition = "varchar(40) COMMENT '鍙戣揣瀹㈡埛'")
-    @TableField("customer_id")
-    private String customerId;
-
     @Column(name = "customer_name", columnDefinition = "varchar(40) COMMENT '鍙戣揣鍗曚綅'")
     @TableField("customer_name")
     private String customerName;
@@ -81,7 +78,7 @@
     @TableField("complete_number")
     private Double completeNumber = 0.0;
 
-    @Column(name = "audit_status", columnDefinition = "varchar(2) COMMENT '瀹℃牳鐘舵��(10=鐩戠瀹℃牳锛�20=閾惰瀹℃牳锛�30=閫氳繃)'")
+    @Column(name = "audit_status", columnDefinition = "varchar(10) COMMENT '瀹℃牳鐘舵��(10=鐩戠瀹℃牳锛�20=閾惰瀹℃牳锛�30=閫氳繃)'")
     @TableField("audit_status")
     private String auditStatus = "10";
 
@@ -107,4 +104,9 @@
     @TableField("remark")
     private String remark;
 
+
+    @Transient
+    @PropertyDef(label = "鏍囪", description = "鐢ㄤ簬鍒ゆ柇閫氱煡鍗曟槸鍚︿负鏂板")
+    private String tag;
+
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeviceSerRepository.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeviceSerRepository.java
index 68d6e8d..b95db69 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeviceSerRepository.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/repository/DeviceSerRepository.java
@@ -20,13 +20,22 @@
 public interface DeviceSerRepository extends JpaRepository<DeviceSer, String> {
 
     /**
-     * 鏍规嵁缁勭粐缂栫爜鑾峰彇浠撳簱璐т綅淇℃伅
+     * 鏍规嵁缁勭粐缂栫爜鑾峰彇淇℃伅
      *
      * @param companyId
      * @return
      */
     @Query("from DeviceSer where companyId =:companyId order by orderNum")
-    List<DeviceSer> getDataByDeptId(@Param("companyId") String companyId);
+    List<DeviceSer> getAllSerByCompanyId(@Param("companyId") String companyId);
+
+    /**
+     * 鏍规嵁缁勭粐缂栫爜鑾峰彇浠撳簱璐т綅淇℃伅
+     *
+     * @param deptId
+     * @return
+     */
+    @Query("from DeviceSer where deptId =:deptId order by orderNum")
+    List<DeviceSer> getDataByDeptId(@Param("deptId") String deptId);
 
 
     /**
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java
index bc994f1..034c6b7 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DeviceSerService.java
@@ -35,6 +35,15 @@
      *
      * @return
      */
+    public List<DeviceSer> getAllSerByCompanyId(String companyId) {
+        return deviceSerRepository.getAllSerByCompanyId(companyId);
+    }
+
+    /**
+     * JPA 鏌ヨ鍒嗘満鍒楄〃
+     *
+     * @return
+     */
     public List<DeviceSer> getAllSer() {
         SysUser user = ContextUtil.getLoginUser();
         SysDept userDept = iSysDeptService.selectDeptById(user.getDeptId());
@@ -43,7 +52,6 @@
         }else {
             return deviceSerRepository.getDataByParentId(user.getDeptId() + "%");
         }
-
     }
 
     /**
@@ -172,7 +180,7 @@
         if (StringUtils.isEmpty(companyId)) {
             companyId = ContextUtil.getCompanyId();
         }
-        List<DeviceSer> list = this.getAllSer();
+        List<DeviceSer> list = this.getAllSerByCompanyId(companyId);
         this.setCacheSer(list, companyId);
     }
 
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
new file mode 100644
index 0000000..cc37c83
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -0,0 +1,288 @@
+package com.fzzy.igds.service;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.NoticeDto;
+import com.fzzy.igds.data.NoticeParam;
+import com.fzzy.igds.mapper.InoutNoticeMapper;
+import com.fzzy.igds.repository.InoutNoticeInRepository;
+import com.fzzy.igds.repository.InoutNoticeOutRepository;
+import com.fzzy.igds.domain.InoutNoticeIn;
+import com.fzzy.igds.domain.InoutNoticeOut;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description 鍑哄叆搴撻�氱煡鍗晄ervice灞傦紝鍖呭惈鍏ュ簱閫氱煡鍗曞拰鍑哄簱閫氱煡鍗�
+ * @Author CZT
+ * @Date 2025/11/29 16:33
+ */
+@Slf4j
+@Service
+public class InoutNoticeService {
+
+    @Resource
+    private InoutNoticeInRepository noticeInRepository;
+    @Resource
+    private InoutNoticeOutRepository noticeOutRepository;
+    @Resource
+    private InoutNoticeMapper noticeMapper;
+
+    /**
+     * JPA鍒嗛〉鏌ヨ鏁版嵁
+     *
+     * @param specification
+     * @param pageable
+     * @return
+     */
+    public Page<InoutNoticeIn> queryAllNoticeIn(Specification<InoutNoticeIn> specification, Pageable pageable) {
+        return noticeInRepository.findAll(specification, pageable);
+    }
+
+    /**
+     * JPA鏌ヨ鏁版嵁
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public List<InoutNoticeIn> listNoticeIn(String companyId, String deptId) {
+        return noticeInRepository.listNoticeIn(companyId, deptId, Constant.COMPLETE_STATUS_NONE);
+    }
+
+    /**
+     * jpa 鑾峰彇淇℃伅
+     * @param companyId
+     * @return
+     */
+    public List<InoutNoticeIn> getUnComNoticeIn(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        return noticeInRepository.listNoticeIn(companyId, Constant.COMPLETE_STATUS_NONE);
+    }
+
+    /**
+     * JPA - 淇濆瓨鏇存柊鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String saveOrUpdateIn(InoutNoticeIn data) {
+        if (Constant.YN_Y.equals(data.getTag())) {
+            data.setCreateBy(ContextUtil.getLoginUserName());
+            data.setCreateTime(new Date());
+            data.setAuditStatus(Constant.COMPLETE_STATUS_NONE);
+            data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        }
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        noticeInRepository.save(data);
+        return null;
+    }
+
+    /**
+     * JPA - 鍒犻櫎鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String delDataIn(InoutNoticeIn data) {
+        noticeInRepository.delete(data);
+        return null;
+    }
+
+    /**
+     * JPA鍒嗛〉鏌ヨ鏁版嵁
+     *
+     * @param specification
+     * @param pageable
+     * @return
+     */
+    public Page<InoutNoticeOut> queryAllNoticeOut(Specification<InoutNoticeOut> specification, Pageable pageable) {
+        return noticeOutRepository.findAll(specification, pageable);
+    }
+
+    /**
+     * JPA鏌ヨ鏁版嵁
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public List<InoutNoticeOut> listNoticeOut(String companyId, String deptId) {
+        return noticeOutRepository.listNoticeOut(companyId, deptId, Constant.COMPLETE_STATUS_NONE);
+    }
+
+    /**
+     * Mybatis-plus 鑾峰彇淇℃伅
+     * @param companyId
+     * @return
+     */
+    public List<InoutNoticeOut> getUnComNoticeOut(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        return noticeOutRepository.listNoticeOut(companyId, Constant.COMPLETE_STATUS_NONE);
+    }
+
+    /**
+     * JPA - 淇濆瓨鏇存柊鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String saveOrUpdateOut(InoutNoticeOut data) {
+        if (Constant.YN_Y.equals(data.getTag())) {
+            data.setCreateBy(ContextUtil.getLoginUserName());
+            data.setCreateTime(new Date());
+            data.setAuditStatus(Constant.COMPLETE_STATUS_NONE);
+            data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
+        }
+        data.setUpdateBy(ContextUtil.getLoginUserName());
+        data.setUpdateTime(new Date());
+        noticeOutRepository.save(data);
+        return null;
+    }
+
+    /**
+     * JPA - 鍒犻櫎鏁版嵁
+     *
+     * @param data
+     * @return
+     */
+    public String delDataOut(InoutNoticeOut data) {
+        noticeOutRepository.delete(data);
+        return null;
+    }
+
+    /**
+     * JPA - 鏍规嵁ID鑾峰彇閫氱煡鍗曚俊鎭�
+     * @param id
+     * @param type
+     * @return
+     */
+    public NoticeDto queryNoticeById(String id, String type) {
+        if (StringUtils.isEmpty(id) || StringUtils.isEmpty(type)) {
+            return null;
+        }
+        NoticeDto noticeDto = new NoticeDto();
+        if (Constant.TYPE_IN.equals(type)) {
+            InoutNoticeIn noticeIn = noticeInRepository.getDataById(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null), id);
+            BeanUtils.copyProperties(noticeIn, noticeDto);
+        } else {
+            InoutNoticeOut noticeOut = noticeOutRepository.getDataById(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null), id);
+            BeanUtils.copyProperties(noticeOut, noticeDto);
+        }
+        return noticeDto;
+    }
+
+    /**
+     * Mybatis-plus 鏇存柊淇℃伅
+     * @param noticeInList
+     * @return
+     */
+    public void updateSumNoticeIn(List<InoutNoticeIn> noticeInList) {
+
+        if (null == noticeInList || noticeInList.isEmpty()) {
+            return;
+        }
+
+        //閬嶅巻閫氱煡鍗�
+        NoticeParam param;
+        for (InoutNoticeIn noticeIn : noticeInList) {
+
+            param = new NoticeParam(noticeIn.getCompanyId(), noticeIn.getDeptId(),
+                    noticeIn.getCustomerName(), noticeIn.getFoodVariety(), noticeIn.getId());
+
+            log.info("寮�濮嬫洿鏂板嚭搴撻�氱煡鍗�={}", param.toString());
+
+            String msg = this.reSumNoticeInComplete(param);
+            if (msg != null) {
+                log.info("鍏ュ簱閫氱煡鍗曞畬鎴愰噺缁熻澶辫触={},澶辫触鍘熷洜={}", param.toString(), msg);
+            }
+        }
+    }
+
+    /**
+     * Mybatis-plus 鑾峰彇淇℃伅
+     * @param param
+     * @return
+     */
+    public String reSumNoticeInComplete(NoticeParam param) {
+        if (StringUtils.isEmpty(param.getCustomerName())) {
+            return "瀹㈡埛缂栫爜涓虹┖锛�";
+        }
+        if (StringUtils.isEmpty(param.getFoodVariety())) {
+            return "绮鍝佺涓虹┖锛�";
+        }
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+        noticeMapper.reSumNoticeInComplete(param);
+        return null;
+    }
+
+    /**
+     * Mybatis-plus 鏇存柊淇℃伅
+     * @param noticeOutList
+     * @return
+     */
+    public void updateSumNoticeOut(List<InoutNoticeOut> noticeOutList) {
+
+        if (null == noticeOutList || noticeOutList.isEmpty()) {
+            return;
+        }
+
+        //閬嶅巻閫氱煡鍗�
+        NoticeParam param;
+        for (InoutNoticeOut noticeOut : noticeOutList) {
+
+            param = new NoticeParam(noticeOut.getCompanyId(), noticeOut.getDeptId(), noticeOut.getDepotId(),
+                    noticeOut.getCustomerId(), noticeOut.getFoodVariety(), noticeOut.getId());
+
+            log.info("寮�濮嬫洿鏂板嚭搴撻�氱煡鍗�={}", param.toString());
+
+            String msg = this.reSumNoticeOutComplete(param);
+            if (msg != null) {
+                log.info("鍑哄簱閫氱煡鍗曞畬鎴愰噺缁熻澶辫触={},澶辫触鍘熷洜={}", param.toString(), msg);
+            }
+        }
+    }
+
+    /**
+     * Mybatis-plus 鏇存柊淇℃伅
+     * @param param
+     * @return
+     */
+    public String reSumNoticeOutComplete(NoticeParam param) {
+        if (StringUtils.isEmpty(param.getCustomerName())) {
+            return "瀹㈡埛缂栫爜涓虹┖锛�";
+        }
+        if (StringUtils.isEmpty(param.getFoodVariety())) {
+            return "绮鍝佺涓虹┖锛�";
+        }
+        if (StringUtils.isEmpty(param.getDepotId())) {
+            return "浠撳簱缂栫爜涓虹┖锛�";
+        }
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(ContextUtil.subDeptId(null));
+        }
+        noticeMapper.reSumNoticeOutComplete(param);
+        return null;
+    }
+
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysDeptService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysDeptService.java
new file mode 100644
index 0000000..c66bfc1
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysDeptService.java
@@ -0,0 +1,171 @@
+package com.fzzy.igds.service;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.system.service.ISysDeptService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2024/11/22 18:03
+ */
+@Slf4j
+@Service
+public class SysDeptService {
+
+    @Resource
+    private SysUserMapper userMapper;
+    @Resource
+    private ISysDeptService iSysDeptService;
+    @Resource
+    private RedisCache redisCache;
+
+    public void initUserDeptMap(String companyId) {
+        if(StringUtils.isEmpty(companyId)){
+            companyId = ContextUtil.getCompanyId();
+        }
+
+        SysUser sysUser = new SysUser();
+        sysUser.setCompanyId(companyId);
+        List<SysUser> list = userMapper.selectUserList(sysUser);
+        if (null == list || list.isEmpty()){
+            return;
+        }
+        for (SysUser userDept : list) {
+            ContextUtil.updateSubDept(userDept.getLoginName(), userDept.getDeptId().toString());
+        }
+    }
+
+    /**
+     * 鍒锋柊閮ㄩ棬鏋舵瀯淇℃伅鍒扮紦瀛�
+     * @param companyId
+     */
+    public List<SysDept> flushDeptCache(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        SysDept sysDept = new SysDept();
+        sysDept.setCompanyId(companyId);
+        List<SysDept> listSysDept = iSysDeptService.selectDeptList(sysDept);
+
+        String key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPT_LIST);
+
+        redisCache.setCacheObject(key, listSysDept);
+        return listSysDept;
+    }
+
+    /**
+     * 鏍规嵁缁勭粐缂栫爜鑾峰彇鎵�鏈夐儴闂ㄤ俊鎭�
+     * @param companyId
+     * @return
+     */
+    public List<SysDept> getCacheDept(String companyId) {
+        if (StringUtils.isEmpty(companyId)) {
+            companyId = ContextUtil.getCompanyId();
+        }
+        String key = RedisConst.buildKey(companyId, RedisConst.KEY_DEPT_LIST);
+
+        List<SysDept> listSysDept = redisCache.getCacheObject(key);
+        if(null == listSysDept){
+            listSysDept = flushDeptCache(companyId);
+        }
+        return listSysDept;
+    }
+
+    /**
+     * 缂撳瓨鑾峰彇缁勭粐涓嬫墍鏈夊簱鍖哄垪琛�
+     * @param companyId
+     */
+    public List<SysDept> getAllDeptByCompanyId(String companyId) {
+        List<SysDept> list = getCacheDept(companyId);
+        return list.stream()
+                .filter(item -> item.getType().equals(Constant.DEPT_TYPE_20))
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 鏍规嵁id鑾峰彇閮ㄩ棬淇℃伅
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public SysDept getCacheDept(String companyId, String deptId) {
+        if (StringUtils.isEmpty(deptId)) {
+            return null;
+        }
+        List<SysDept> list = getCacheDept(companyId);
+
+        if (null == list || list.isEmpty()){
+            return null;
+        }
+
+        for (SysDept dept : list) {
+            if (deptId.equals(dept.getDeptId() + ""))
+                return dept;
+        }
+        return null;
+    }
+
+    /**
+     * 鏍规嵁绫诲瀷鑾峰彇閮ㄩ棬淇℃伅
+     * type: 10-鍏徃锛�20-搴撳尯锛�30-閮ㄩ棬
+     * @param type
+     * @return
+     */
+    public List<SysDept> getDeptByType(String type) {
+        if (StringUtils.isEmpty(type)) {
+            return null;
+        }
+        List<SysDept> list = getCacheDept(null);
+        if (null == list || list.isEmpty()) {
+            return null;
+        }
+        //鏍规嵁绫诲瀷鏌ヨ
+        return list.stream()
+                .filter(item -> type.equals(item.getType()))
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 鏍规嵁绫诲瀷鑾峰彇閮ㄩ棬淇℃伅
+     * type: 00-鍏徃锛�10-鍏徃锛�20-搴撳尯,澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑
+     *
+     * @param
+     * @return
+     */
+    public List<SysDept> getDeptById(SysDept dept) {
+
+        if (null == dept) {
+            return null;
+        }
+        List<SysDept> list = getCacheDept(null);
+        if ("20".equals(dept.getType())) {
+            //鏍规嵁绫诲瀷鏌ヨ
+            return list.stream()
+                    .filter(item -> dept.getDeptId().longValue() == item.getDeptId())
+                    .collect(Collectors.toList());
+        } else if ("10".equals(dept.getType())) {
+            //鏍规嵁绫诲瀷鏌ヨ
+            return list.stream()
+                    .filter(item -> dept.getDeptId().longValue() == item.getParentId())
+                    .collect(Collectors.toList());
+        } else {
+            return list.stream()
+                    .filter(item -> dept.getDeptId().toString().equals(item.getCompanyId()) && "20".equals(item.getType()))
+                    .collect(Collectors.toList());
+        }
+
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java
new file mode 100644
index 0000000..5d04d50
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java
@@ -0,0 +1,253 @@
+package com.fzzy.igds.utils;
+
+import org.apache.commons.lang3.time.DateUtils;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 鏃堕棿鐩稿叧宸ュ叿绫�
+ *
+ * @author jiazx
+ */
+public class DateUtil {
+
+
+    /**
+     * 鏍规嵁褰撳墠鏃堕棿鑾峰彇鍙湁 yyyy-MM-dd鐨勬椂闂�
+     *
+     * @param date
+     * @return
+     */
+    public static Date getCurZero(Date date) {
+        //TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿涓嬩竴澶╃殑闆剁偣闆跺垎闆剁
+     *
+     * @param date
+     * @return
+     */
+    public static Date getNextZero(Date date) {
+        //TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+        date = DateUtils.addDays(date, 1);
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+
+    /**
+     * 鑾峰彇褰撳墠鏃ユ湡鎵�鍦ㄦ湀鐨勭涓�澶╋紝鏁版嵁涓猴細:00:00:00
+     *
+     * @param date
+     * @return
+     */
+    public static Date getMonthFirst(Date date) {
+        if (null == date) date = new Date();
+        date = DateUtils.setDays(date, 1);
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+    /**
+     * 鑾峰彇褰撳墠骞寸涓�澶�
+     *
+     * @param date
+     * @return
+     */
+    public static Date getYearFirst(Date date) {
+        if (null == date) date = new Date();
+        Calendar currCal = Calendar.getInstance();
+        currCal.setTime(date);
+        int currentYear = currCal.get(Calendar.YEAR);
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, currentYear);
+        Date currYearFirst = calendar.getTime();
+        return currYearFirst;
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿鐨勪笅涓湀1鍙�
+     *
+     * @param date
+     * @return
+     */
+    public static Date getNextMonthFirst(Date date) {
+        if (null == date) date = new Date();
+        date = DateUtils.addMonths(date, 1);
+        date = DateUtils.setDays(date, 1);
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿鐨勪笂涓湀1鍙�
+     *
+     * @param date
+     * @return
+     */
+    public static Date getPreMonthFirst(Date date) {
+        if (null == date) date = new Date();
+        date = DateUtils.addMonths(date, -1);
+        date = DateUtils.setDays(date, 1);
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+    /**
+     * 鏃堕棿锛屾牴鎹ぉ鏁� 娣诲姞鍑犲ぉ锛屾垨鑰呭噺鍘诲嚑澶�
+     *
+     * @param date 褰撳墠鏃堕棿
+     * @param num  姝f暟鎴栬�呰礋鏁�
+     * @return
+     */
+    public static Date getNewByDay(Date date, int num) {
+        if (null == date) date = new Date();
+        date = DateUtils.addDays(date, num);
+        date = DateUtils.setHours(date, 0);
+        date = DateUtils.setMinutes(date, 0);
+        date = DateUtils.setSeconds(date, 0);
+        date = DateUtils.setMilliseconds(date, 0);
+        return date;
+    }
+
+    /**
+     * 鏃堕棿锛屾牴鎹ぉ鏁� 娣诲姞鍑犲垎閽燂紝鎴栬�呭噺鍘诲嚑鍒�
+     *
+     * @param date 褰撳墠鏃堕棿
+     * @param num  姝f暟鎴栬�呰礋鏁�
+     * @return
+     */
+    public static Date getNewByMinute(Date date, int num) {
+        if (null == date) date = new Date();
+        date = DateUtils.addMinutes(date, num);
+        return date;
+    }
+
+    /**
+     * 鑾峰彇鏌愬勾绗竴澶╂棩鏈�
+     *
+     * @param year 骞翠唤
+     * @return Date
+     */
+    public static Date getCurrYearFirst(int year) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        Date currYearFirst = calendar.getTime();
+        return currYearFirst;
+    }
+
+    /**
+     * 鑾峰彇娆″勾绗竴澶� 0鐐�
+     *
+     * @param year 骞翠唤
+     * @return Date
+     */
+    public static Date getNextYearFirst(int year) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        calendar.roll(Calendar.DAY_OF_YEAR, -1);
+
+        Date currYearLast = calendar.getTime();
+
+        currYearLast = DateUtils.addDays(currYearLast, 1);
+
+        return currYearLast;
+    }
+
+
+    /**
+     * 璁$畻鏃堕棿1涓庢椂闂�2鐩存帴鐨勫垎閽熸暟锛�
+     *
+     * @param begin
+     * @param end
+     * @return
+     */
+    public static long difMin(Date begin, Date end) {
+        long between = (end.getTime() - begin.getTime()) / 1000;//闄や互1000鏄负浜嗚浆鎹㈡垚绉�
+        //long day1 = between / (24 * 3600);
+        // long hour1 = between % (24 * 3600) / 3600;
+        long minute1 = between % 3600 / 60;
+        // long second1 = between % 60 / 60;
+        return minute1;
+    }
+
+    /**
+     * 璁$畻鏃堕棿1涓庢椂闂�2鐩存帴鐨勫ぉ鏁帮紝
+     *
+     * @param begin
+     * @param end
+     * @return
+     */
+    public static long difDay(Date begin, Date end) {
+        int days = (int) ((end.getTime() - begin.getTime()) / (1000 * 3600 * 24));
+        return days;
+    }
+
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿鐨� 灏忔椂,鏃堕棿浠�1-24
+     *
+     * @param date
+     * @return
+     */
+    public static int getHour(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿鐨� 鍒嗛挓 鏃堕棿浠�0 -59
+     *
+     * @param date
+     * @return
+     */
+    public static int getMinute(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar.get(Calendar.MINUTE);
+    }
+
+    /**
+     * 鑾峰彇褰撳墠鏃堕棿鍒扮浜屽ぉ鍑屾櫒鐨勬椂闂村樊绉掓暟
+     *
+     * @return
+     */
+    public static Long getNowToNextDaySeconds() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.DAY_OF_YEAR, 1);
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
+    }
+
+
+    public static void main(String[] args) {
+        System.out.println(getMinute(new Date()));
+    }
+}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/SystemUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/SystemUtil.java
new file mode 100644
index 0000000..08292e3
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/SystemUtil.java
@@ -0,0 +1,37 @@
+package com.fzzy.igds.utils;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @Description 鑾峰彇瀹㈡埛鐧婚檰淇℃伅
+ * @Author CZT
+ * @Date 2025/11/29 11:02
+ */
+public class SystemUtil {
+
+    /***
+     * 鑾峰彇瀹㈡埛绔疘P鍦板潃
+     * @param request
+     */
+    public static String getIP(HttpServletRequest request) {
+        if (request == null) {
+            return "127.0.0.1";
+        }
+        String ip = request.getHeader("X-Real-IP");
+        if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
+            return ip;
+        }
+        ip = request.getHeader("X-Forwarded-For");
+        if (ip != null && !"".equals(ip) && !"unknown".equalsIgnoreCase(ip)) {
+            // 澶氭鍙嶅悜浠g悊鍚庝細鏈夊涓狪P鍊硷紝绗竴涓负鐪熷疄IP銆�
+            int index = ip.indexOf(',');
+            if (index != -1) {
+                return ip.substring(0, index);
+            } else {
+                return ip;
+            }
+        } else {
+            return request.getRemoteAddr();
+        }
+    }
+}
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 e6b326d..3464b49 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -405,7 +405,7 @@
     <PropertyDef name="storageReal">
       <Property name="dataType">Double</Property>
       <Property name="label">瀹為檯鍌ㄩ噺</Property>
-      <Property name="displayFormat">#,##0 KG</Property>
+      <Property name="displayFormat">#0.0 KG</Property>
       <Property name="required">true</Property>
     </PropertyDef>
     <PropertyDef name="remark">
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
new file mode 100644
index 0000000..6c51134
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java
@@ -0,0 +1,236 @@
+package com.fzzy.sys.controller.inout;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.InoutConf;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import com.fzzy.sys.manager.common.CommonManager;
+import com.fzzy.sys.manager.inout.InoutManager;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description 鍑哄叆搴撴帶鍒跺眰
+ * @Author CZT
+ * @Date 2025/11/29 10:56
+ */
+@Slf4j
+@Controller
+@RequestMapping("basic/inout")
+public class InoutController {
+
+    private static final String prefix = "inout";
+
+    @Resource
+    private InoutManager inoutManager;
+    @Resource
+    private CommonManager commonManager;
+
+    /**
+     * 鍑哄叆搴撳揩閫熺櫥璁�
+     *
+     * @param httpRequest
+     * @param sort        閰嶅鍙�
+     * @param type        涓氬姟绫诲瀷锛欼N-鍏ュ簱锛孫UT-鍑哄簱
+     * @param view
+     * @return
+     */
+    @RequestMapping("/register")
+    public String register(HttpServletRequest httpRequest,
+                           @RequestParam(value = "sort", required = false) String sort,
+                           @RequestParam(value = "type", required = false) String type,
+                           ModelMap view) {
+
+        SysUser user = ContextUtil.getLoginUser();
+        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
+
+        String deptId = ContextUtil.subDeptId(user);
+        view.put("deptId", deptId);
+
+        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);
+
+        //绉伴噸鏄惁鍙紪杈戞爣绛�
+        String weightEditTag = inoutManager.getWeightEditTag(user.getCompanyId(), deptId);
+        view.put("weightEditTag", weightEditTag);
+
+        //鍑哄叆搴撴祦绋�
+        String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), ContextUtil.subDeptId(user), type);
+        view.put("inoutProgress", inoutProgress);
+        // 褰撳墠娴佺▼鑺傜偣
+        view.put("progress", Constant.PROGRESS_REGISTER);
+
+        // 鑾峰彇鍑哄叆搴撻厤缃俊鎭�
+        List<InoutConf> listInoutConf = inoutManager.getListInoutConf(user.getCompanyId(), deptId);
+
+        //鏍规嵁鍑哄叆搴撹澶囦俊鎭瓫閫夊湴纾呴厤缃俊鎭紝鎵�鏈夊湴纾咃紝鏀寔鐢ㄦ埛鎵嬪姩閫夋嫨
+        List<InoutConf> listWeight = inoutManager.getInoutConf(listInoutConf, Constant.CONF_TYPE_30);
+        view.put("listWeight", listWeight);
+
+        // 鑾峰彇褰撳墠鍦扮
+        InoutConf weightDto = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_30);
+        view.put("weightDto", weightDto);
+
+        // 杩囩▼鎽勫儚澶�1
+        InoutConf conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 1);
+        view.put("snapDto1", conf);
+
+        // 杩囩▼鎽勫儚澶�2
+        conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 2);
+        view.put("snapDto2", conf);
+
+        // 杩囩▼鎽勫儚澶�3
+        conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 3);
+        view.put("snapDto3", conf);
+
+        return prefix + "/inout-register";
+    }
+
+    /**
+     * 璐ㄦ椤甸潰
+     * @return
+     */
+    @RequestMapping("/check")
+    public String check(HttpServletRequest httpRequest, ModelMap view) {
+
+        SysUser user = ContextUtil.getLoginUser();
+        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
+
+        String deptId = ContextUtil.subDeptId(user);
+
+        view.put("type", Constant.TYPE_IN);
+        view.put("deptId", deptId);
+
+        // 浠撳簱鍒楄〃鍋氫笅鎷夋浣跨敤
+        List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
+        view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
+
+        //鍏ュ簱娴佺▼
+        String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, Constant.TYPE_IN);
+        view.put("inoutProgress", inoutProgress);
+
+        // 褰撳墠娴佺▼鑺傜偣
+        view.put("progress", Constant.PROGRESS_CHECK);
+
+        // 绮鍝佺涓嬫媺妗�
+        List<SysDictData> listFoodVariety = commonManager.getDicTrigger(
+                Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
+        view.put("listFoodVariety", listFoodVariety);
+
+        // 绮鎬ц川涓嬫媺妗�
+        List<SysDictData> listFoodType = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_TYPE, user.getCompanyId());
+        view.put("listFoodType", listFoodType);
+
+        // 绮绛夌骇涓嬫媺妗�
+        List<SysDictData> listFoodLevel = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_LEVEL, user.getCompanyId());
+        view.put("listFoodLevel", listFoodLevel);
+
+        view.put("endTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
+        view.put("startTime", DateFormatUtils.format(DateUtil.getNewByDay(null, -30), "yyyy-MM-dd"));
+
+        return prefix + "/inout-check";
+    }
+
+
+    /**
+     * 鍏ュ簱绉伴噸鎿嶄綔锛屽寘鎷┖杞︾О閲嶅拰婊¤溅绉伴噸锛屽叡鐢ㄤ竴涓〉闈�
+     *
+     * @param sort 琛ㄧず浣跨敤鐨勫嚭鍏ュ簱璁惧閰嶅鍙凤紝涓嶄紶閫掗粯璁や负1
+     * @return
+     */
+    @RequestMapping("/weight")
+    public String weight(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("type", type);
+        view.put("deptId", deptId);
+
+        // 浠撳簱鍒楄〃鍋氫笅鎷夋浣跨敤
+        List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
+        view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
+
+        // 褰撳墠娴佺▼鏍囩
+        view.put("progress", Constant.PROGRESS_WEIGHT_TAG);
+
+        //鍏ュ簱娴佺▼閰嶇疆
+        String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, Constant.TYPE_IN);
+        view.put("inoutProgress", inoutProgress);
+
+        //绉伴噸鏄惁鍙紪杈戞爣绛�
+        String weightEditTag = inoutManager.getWeightEditTag(user.getCompanyId(), deptId);
+        view.put("weightEditTag", weightEditTag);
+
+        // 绮鍝佺涓嬫媺妗�
+        List<SysDictData> listFoodVariety = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
+        view.put("listFoodVariety", listFoodVariety);
+
+        // 鑾峰彇鍑哄叆搴撹澶囬厤缃俊鎭�
+        List<InoutConf> listInoutConf = inoutManager.getListInoutConf(user.getCompanyId(), deptId);
+
+        //鏍规嵁鍑哄叆搴撹澶囦俊鎭瓫閫夊湴纾呴厤缃俊鎭紝鎵�鏈夊湴纾咃紝鏀寔鐢ㄦ埛鎵嬪姩閫夋嫨
+        List<InoutConf> listWeight = inoutManager.getInoutConf(listInoutConf, Constant.CONF_TYPE_30);
+        view.put("listWeight", listWeight);
+
+        // 鑾峰彇褰撳墠鍦扮
+        InoutConf weightDto = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_30);
+        view.put("weightDto", weightDto);
+
+        // 杩囩▼鎽勫儚澶�1
+        InoutConf conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 1);
+        view.put("snapDto1", conf);
+
+        // 杩囩▼鎽勫儚澶�2
+        conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 2);
+        view.put("snapDto2", conf);
+
+        // 杩囩▼鎽勫儚澶�3
+        conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 3);
+        view.put("snapDto3", conf);
+
+        return prefix + "/inout-weight";
+    }
+
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/init/SystemRunner.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/init/SystemRunner.java
new file mode 100644
index 0000000..8700ced
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/init/SystemRunner.java
@@ -0,0 +1,94 @@
+package com.fzzy.sys.init;
+
+import com.bstek.dorado.annotation.Expose;
+import com.fzzy.igds.service.*;
+import com.ruoyi.system.domain.SysCompany;
+import com.ruoyi.system.service.ISysCompanyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description 閰嶇疆绯荤粺绾у埆鐨勯」鐩惎鍔ㄥ垵濮嬪寲淇℃伅
+ * @Author CZT
+ * @Date 2025/11/29 16:49
+ */
+@Service
+@Slf4j
+@Order(value = 1)
+public class SystemRunner implements CommandLineRunner {
+
+    @Resource
+    private ISysCompanyService iSysCompanyService;
+    @Resource
+    private SysDeptService sysDeptService;
+    @Resource
+    private DicService dicService;
+    @Resource
+    private DepotService depotService;
+    @Resource
+    private DepotConfService depotConfService;
+    @Resource
+    private DeviceSerService deviceSerService;
+
+    @Override
+    public void run(String... args) throws Exception {
+        //缁勭粐淇℃伅鏀惧叆缂撳瓨
+        iSysCompanyService.resetCompanyCache();
+        List<SysCompany> list = iSysCompanyService.selectAll();
+
+        for (SysCompany company : list) {
+
+            flushCache(company.getCompanyId(), "绯荤粺璋冪敤");
+        }
+    }
+
+    /**
+     * 骞冲彴绯荤粺锛屾墜鍔ㄥ埛鏂版墍鏈夌紦瀛�
+     * <p>
+     * systemRunner#flushAllCache
+     *
+     * @param companyId
+     */
+    @Expose
+    public void flushAllCache(String companyId) {
+        flushCache(companyId, "鎵嬪姩璋冪敤");
+    }
+
+    /**
+     * 鍒嗙粍缁囧垵濮嬪寲
+     *
+     * @param companyId
+     * @param name
+     */
+    public void flushCache(String companyId, String name) {
+
+        //鍒濆鍖栫敤鎴烽儴闂ㄥ埌鍐呭瓨
+        sysDeptService.initUserDeptMap(companyId);
+
+        //鍒濆鍖栧父鐢ㄥ瓧鍏稿埌鍐呭瓨
+        dicService.initDicMap(companyId);
+
+        //鍒濆鍖栦粨搴撶紦瀛�
+        depotService.flushCache(companyId);
+        //鍙傛暟閰嶇疆
+        depotConfService.flushConfCache(companyId);
+        //璁剧疆鍒嗘満鍏ㄩ儴鎺夌嚎
+        deviceSerService.allOffLine(companyId);
+        //鍒锋柊鍒嗘満鍒扮紦瀛�
+        deviceSerService.refreshCache(companyId);
+
+        log.info("* ");
+        log.info("* ========================");
+        log.info("* ");
+        log.info("* 缁勭粐={}锛寋}鍒濆鍖栫紦瀛樺畬鎴愨�︹�︹�︹��", companyId, name);
+        log.info("* ");
+        log.info("* ========================");
+        log.info("* ");
+    }
+
+
+}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/common/CommonManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/common/CommonManager.java
new file mode 100644
index 0000000..a5f1ca7
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/common/CommonManager.java
@@ -0,0 +1,51 @@
+package com.fzzy.sys.manager.common;
+
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.DicService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2025/11/29 15:19
+ */
+@Slf4j
+@Component
+public class CommonManager {
+    @Resource
+    private DepotService depotService;
+    @Resource
+    private DicService dicService;
+
+    /**
+     * 鏍规嵁瀛楀吀绫诲瀷鑾峰彇瀛楀吀鍒楄〃
+     * @param parentCode
+     * @param companyId
+     * @return
+     */
+    public List<SysDictData> getDicTrigger(String parentCode, String companyId) {
+        return dicService.getDictDataByType(parentCode, companyId);
+    }
+
+    /**
+     * 鏍规嵁搴撳尯缂栫爜鑾峰彇搴撳尯涓嬫墍鏈変粨搴撳垪琛�
+     *
+     * @param deptId
+     * @return
+     */
+    public List<Depot> listDepotByDeptId(String deptId) {
+
+        if (StringUtils.isEmpty(deptId)) {
+            deptId = ContextUtil.subDeptId(null);
+        }
+
+        return depotService.getCacheDepotList(ContextUtil.getCompanyId(), deptId);
+    }
+}
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
new file mode 100644
index 0000000..222cd44
--- /dev/null
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
@@ -0,0 +1,153 @@
+package com.fzzy.sys.manager.inout;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.domain.InoutConf;
+import com.fzzy.igds.domain.InoutSysConf;
+import com.fzzy.igds.service.InoutConfService;
+import com.fzzy.igds.utils.SystemUtil;
+import com.ruoyi.common.core.redis.RedisCache;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 鍑哄叆搴撲笟鍔″鐞�
+ * @Author CZT
+ * @Date 2025/11/29 11:02
+ */
+@Slf4j
+@Component
+public class InoutManager {
+
+    @Resource
+    private RedisCache redisCache;
+    @Resource
+    private InoutConfService inoutConfService;
+
+    /**
+     * 鏍规嵁鐢ㄦ埛璇锋眰淇℃伅锛屾牴鎹綋鍓嶅鎴风數鑴慖P锛岃幏鍙栧嚭鍏ュ簱绉伴噸涓婃閫夋嫨鐨勫湴纾�
+     *
+     * @param httpRequest
+     * @return
+     */
+    public String getInoutWeightByClient(HttpServletRequest httpRequest) {
+        String userIp = SystemUtil.getIP(httpRequest);
+        log.debug("----------------鏍规嵁鐢ㄦ埛IP鑾峰彇閫夋嫨-鍦扮----{}", userIp);
+
+        String key = "INOUT:WEIGHT:" + userIp;
+        String sort = (String) redisCache.getCacheObject(key);
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(sort)) sort = "1";
+        return sort;
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撶殑鏁翠釜娴佺▼淇℃伅
+     *
+     * @param companyId
+     * @param deptId
+     * @param inoutType
+     * @return
+     */
+    public String getInoutProgressConf(String companyId, String deptId, String inoutType) {
+        // 浠庣紦瀛樹腑鑾峰彇鍑哄叆搴撶郴缁熼厤缃俊鎭�
+        InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(companyId, deptId);
+        String progressConf = null;
+        if (inoutSysConf != null) {
+            if (Constant.TYPE_IN.equals(inoutType)) {
+                progressConf = inoutSysConf.getProgressIn();
+            }
+            if (Constant.TYPE_OUT.equals(inoutType)) {
+                progressConf = inoutSysConf.getProgressOut();
+            }
+        }
+        return progressConf;
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撹澶囬厤缃俊鎭�
+     *
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public List<InoutConf> getListInoutConf(String companyId, String deptId) {
+        return inoutConfService.getCacheInoutConf(companyId, deptId);
+    }
+
+    /**
+     * 鏍规嵁閰嶇疆鑾峰彇鍑哄叆搴撶殑閰嶇疆鍙傛暟
+     *
+     * @param listInoutConf 閰嶇疆鍒楄〃
+     * @param sort          鏂规搴忓彿
+     * @param type          璁惧绫诲瀷
+     * @param inoutProgress 鍑哄叆搴撴祦绋�
+     * @return 杞︾墝璁惧閰嶇疆锛屾病鏈夊垯杩斿洖NULL
+     */
+    public InoutConf getInoutConf(List<InoutConf> listInoutConf, String sort, String type, String inoutProgress, int inOrder) {
+        if (null == listInoutConf) {
+            return new InoutConf(sort);
+        }
+        if (StringUtils.isEmpty(sort)) sort = "1";
+
+        InoutConf result = null;
+        for (InoutConf conf : listInoutConf) {
+            if (sort.equals(conf.getSort()) && type.equals(conf.getType()) && inoutProgress.equals(conf.getInoutProgress())) {
+                if (conf.getInOrder() == inOrder) {
+                    result = conf;
+                    break;
+                }
+            }
+        }
+
+        if (null == result) return new InoutConf(sort);
+
+        return result;
+    }
+
+    public List<InoutConf> getInoutConf(List<InoutConf> listInoutConf, String type) {
+        List<InoutConf> result = new ArrayList<>();
+        if (null == listInoutConf) return result;
+        for (InoutConf conf : listInoutConf) {
+            if (type.equals(conf.getType())) {
+                result.add(conf);
+            }
+        }
+        return result;
+    }
+
+    public InoutConf getInoutConf(List<InoutConf> listInoutConf, String sort, String type) {
+        if (null == listInoutConf) return new InoutConf(sort);
+        if (StringUtils.isEmpty(sort)) sort = "1";
+
+        for (InoutConf conf : listInoutConf) {
+            if (sort.equals(conf.getSort()) && type.equals(conf.getType())) {
+                return conf;
+            }
+        }
+        return new InoutConf(sort);
+    }
+
+    /**
+     * 鑾峰彇鍦扮閲嶉噺缂栬緫鏍囩
+     *
+     * @param companyId
+     * @param deptId
+     * @return
+     */
+    public String getWeightEditTag(String companyId, String deptId) {
+        // 浠庣紦瀛樹腑鑾峰彇鍑哄叆搴撶郴缁熼厤缃俊鎭�
+        InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(companyId, deptId);
+        String weightEditTag = Constant.YN_N;
+        if (inoutSysConf != null) {
+            weightEditTag = inoutSysConf.getWeightEditTag();
+        }
+        if (null == weightEditTag) weightEditTag = Constant.YN_N;
+
+        return weightEditTag;
+    }
+}
diff --git a/fzzy-igdss-web/src/main/resources/static/common/constant.js b/fzzy-igdss-web/src/main/resources/static/common/constant.js
new file mode 100644
index 0000000..039a366
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/common/constant.js
@@ -0,0 +1,111 @@
+//绯荤粺甯搁噺瀹氫箟
+
+//璁惧鐘舵��
+var DeviceStatus = {
+    CLOSE: "CLOSE",
+    OPEN: "OPEN",
+    W_CLOSE: "W_CLOSE",
+    W_OPEN: "W_OPEN",
+    F_OPEN: "F_OPEN",
+    F_OPEN_F: "F_OPEN_F",
+    F_CLOSE: "F_CLOSE",
+    ERROR: "ERROR",
+    ZERO: "ZERO"
+};
+
+// 璁惧绫诲瀷01-椋庣獥 "02-杞存祦椋庣獥"),"03-绂诲績椋庢満"),"04-鐜祦椋庢満"),"05-绌鸿皟"),"06-鐓ф槑"),"07-鏅�氶榾闂�"),"08-姘旀车"),"09-涓婚榾闂�"),"0B-閫氶鍙�"),"0C-娣锋祦椋庢満"),"0D-鍔犲帇椋庢満");
+var DeviceType = {
+    TYPE_01: "01",
+    TYPE_02: "02",
+    TYPE_03: "03",
+    TYPE_04: "04",
+    TYPE_05: "05",
+    TYPE_06: "06",
+    TYPE_07: "07",
+    TYPE_071: "071", // "071-绌鸿皟闃�闂�"),鎷撳睍璁惧绫诲瀷
+    TYPE_08: "08",
+    TYPE_09: "09",
+    TYPE_0B: "0B",
+    TYPE_0C: "0C",
+    TYPE_0D: "0D"
+};
+
+// 璁惧绫诲瀷 01-姝i潰 "02-鑳岄潰"), "03-宸︿晶"), "04-鍙充晶"), "05-浠撳唴"),
+var DeviceLocation = {
+    L_01: "01",
+    L_02: "02",
+    L_03: "03",
+    L_04: "04",
+    L_05: "05"
+};
+
+// 鍑哄叆搴�-娴佺▼
+var InoutProgress = {
+    REGISTER: "REGISTER",
+    CHECK: "CHECK",
+    HANDLE: "HANDLE",
+    WEIGHT_TAG: "WEIGHT_TAG",
+    WEIGHT_FULL: "WEIGHT_FULL",
+    WEIGHT_EMPTY: "WEIGHT_EMPTY",
+    PAY: "PAY",
+    CARD_BACK: "CARD_BACK",
+    RECORD: "RECORD"
+};
+
+// 浠撳簱绫诲瀷//骞虫柟浠�//娴呭渾浠�//娌圭綈//绔嬬瓛浠�//妤兼埧浠�//鍏朵粬绫诲瀷
+var DepotType = {
+    T_01: "01",
+    T_02: "02",
+    T_03: "03",
+    T_04: "04",
+    T_05: "05",
+    T_99: "99"
+};
+
+// 浠撳簱鐘舵��
+var DepotStatus = {
+    S_01: "1", //绌轰粨
+    S_02: "2",//鍏ュ簱涓�
+    S_03: "3",//灏佷粨
+    S_04: "4",//鍑哄簱涓�
+    S_05: "31",//灏佷粨-姘旇皟涓�
+    S_06: "32",//灏佷粨-鐔忚捀涓�
+    S_07: "33",//灏佷粨-閫氶涓�
+    S_08: "34",//灏佷粨-娓╂帶涓�
+    S_09: "9"//鍏朵粬
+};
+
+
+//鎽勫儚澶存挱鏀炬柟寮�
+var PlayType = {
+    VLC: "VLC", //鏈湴锛讹棘锛f彃浠�
+    PLAY_TYPE_WEB_RTC_DH: "WEB_RTC_DH", //WEB-RTC-澶у崕
+    PLAY_TYPE_WEB_RTC_HIK: "WEB_RTC_HIK", //WEB-RTC-娴峰悍
+    FZZY_GB: "FZZY_GB",//FZZY娴佸獟浣撴挱鏀�
+    EASY_GBS: "EASY_GBS",//fzzy-easy娴佸獟浣撴挱鏀�
+    EASY_DSS: "EASY_DSS",//钀ょ煶浜戞挱鏀�
+    MEDIA_HIK: "MEDIA_HIK",//娴峰悍娴佸獟浣�
+    HIK_YS: "HIK_YS",//娴峰悍-钀ょ煶浜�
+    HIK_WEB4: "HIK_WEB4",//娴峰悍-WEB鎻掍欢
+    IMOU: "IMOU",///涔愭浜�
+    DEFAULT: "DEFAULT",//榛樿鍏朵粬
+    OTHER: "OTHER"//涓嶆挱鏀�
+};
+
+//鍑哄叆搴撳寲楠岄」鐩�
+var CHECK_ST = {
+    C01: "C01",//姘村垎
+    C02: "C02",//鏉傝川
+    C020101: "020101",//姘村垎
+    C01010301: "01010301"//鏉傝川
+};
+
+/**
+ * 鐢ㄤ簬瀹氫箟缂撳瓨鐨勬墦鍗版ā鏉匡紝閬垮厤鐩稿悓閰嶇疆鐨勬ā鏉块噸鏂拌幏鍙�
+ * @type {Map<any, any>}
+ *
+ * key = depotType_cable_cableCir
+ */
+var CACHE_PRINT_MODEL = new Map();
+
+var CACHE_PRINT_MODEL_ALL = new Map();
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/common/igds-common.js b/fzzy-igdss-web/src/main/resources/static/common/igds-common.js
new file mode 100644
index 0000000..7213f8f
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/common/igds-common.js
@@ -0,0 +1,238 @@
+//鏍规嵁娴忚鍣ㄤ腑鐨勫湴鍧�鍒濆鍖朩S鐨勮矾寰�
+function initWsUrl() {
+    //http://ibms.fzzygf.com
+    //http://127.0.0.1:8080/igds
+    var href = window.location.href;
+    var arrUrl = href.split("//");
+    href = arrUrl[1];
+    arrUrl = href.split("/");
+    //濡傛灉娌℃湁閰嶇疆contextPath
+    if (arrUrl.length == 1) {
+        return "ws://" + arrUrl[0] + "/websocket";
+    }
+    //濡傛灉contextPath = igds
+    if ("igds" == arrUrl[1]) {
+        return "ws://" + arrUrl[0] + "/" + arrUrl[1] + "/websocket";
+    }
+    //濡傛灉contextPath = zxlk
+    if ("zxlk" == arrUrl[1]) {
+        return "ws://" + arrUrl[0] + "/" + arrUrl[1] + "/websocket";
+    }
+    return "ws://" + arrUrl[0] + "/websocket";
+};
+
+/**
+ *
+ * @param deptId 鍒嗗簱缂栫爜
+ * @param bizType 涓氬姟缂栧彿
+ * @param bizTag 鑷畾涔変笟鍔℃爣绛� 濡傛灉涓簄ull榛樿鍙朿ommon
+ * @param userId 褰撳墠鐢ㄦ埛Id
+ */
+function initWS(deptId, bizType, bizTag, userId) {
+    if (null == bizTag) bizTag = "common";
+    var wsPath = initWsUrl() + "/" + deptId + "/" + bizType + "/" + bizTag + "/" + userId;
+    if (typeof (WebSocket) == "undefined") {
+        layer.msg("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket锛岃浣跨敤涓绘祦娴忚鍣�");
+        return;
+    }
+    // 鍒涘缓杩炴帴
+    var socket = new WebSocket(wsPath);
+    // 鎵撳紑浜嬩欢
+    socket.onopen = function () {
+        socket.send(bizType);
+    };
+    // 鑾峰緱娑堟伅浜嬩欢鏄悗鍙扮┛浠剁殑WebPocket瀵硅薄淇℃伅
+    socket.onmessage = function (result) {
+        var pocket = JSON.parse(result.data);
+        socketOnMessage(pocket);
+    };
+    // 鍏抽棴浜嬩欢
+    socket.onclose = function () {
+        console.log("Socket closed鈥︹��");
+    };
+
+    // 鍏抽棴WebSocket杩炴帴
+    function closeWebSocket() {
+        socket.close();
+    }
+
+    // 鍙戠敓浜嗛敊璇簨浠�
+    socket.onerror = function () {
+        alert("Socket error鈥︹��");
+    };
+
+    $(window).unload(function () {
+        closeWebSocket();
+    });
+}
+
+// 鍑哄叆搴撲笓鐢ㄨ繛鎺ワ紝娣诲姞娴佺▼鑺傜偣鍙傛暟
+function initInoutWS(companyId, bizType, progress, userId) {
+    var wsPath = initWsUrl() + "/" + companyId + "/" + bizType + "/" + progress
+        + "/" + userId;
+    if (typeof (WebSocket) == "undefined") {
+        layer.msg("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket锛岃浣跨敤涓绘祦娴忚鍣�");
+        return;
+    }
+    // 瀹炵幇鍖朩ebSocket瀵硅薄锛屾寚瀹氳杩炴帴鐨勬湇鍔″櫒鍦板潃涓庣鍙� 聽寤虹珛杩炴帴
+    var socket = new WebSocket(wsPath);
+    // 鎵撳紑浜嬩欢
+    socket.onopen = function () {
+        socket.send(bizType);
+    };
+    // 鑾峰緱娑堟伅浜嬩欢鏄悗鍙扮┛浠剁殑WebPocket瀵硅薄淇℃伅
+    socket.onmessage = function (result) {
+        var pocket = JSON.parse(result.data);
+        socketOnMessage(pocket);
+    };
+    // 鍏抽棴浜嬩欢
+    socket.onclose = function () {
+        console.log("Socket closed鈥︹��");
+    };
+
+    // 鍏抽棴WebSocket杩炴帴
+    function closeWebSocket() {
+        socket.close();
+    }
+    // 鍙戠敓浜嗛敊璇簨浠�
+    socket.onerror = function () {
+        alert("Socket error鈥︹��");
+    }
+    $(window).unload(function () {
+        socket.close();
+    });
+};
+
+function INOUT_PROGRESS_MSG(code) {
+    if (InoutProgress.REGISTER == code) return "鐧昏";
+    if (InoutProgress.CHECK == code) return "鍖栭獙";
+    if (InoutProgress.HANDLE == code) return "鍊间粨";
+    if (InoutProgress.WEIGHT_TAG == code) return "绉伴噸";
+    if (InoutProgress.WEIGHT_FULL == code) return "婊¤溅绉伴噸";
+    if (InoutProgress.WEIGHT_EMPTY == code) return "绌鸿溅绉伴噸";
+    if (InoutProgress.PAY == code) return "鏀粯";
+    if (InoutProgress.CARD_BACK == code) return "鍗″洖鏀�";
+    if (InoutProgress.RECORD == code) return "娴佺▼瀹屾垚";
+    return "鏈煡";
+};
+
+/**
+ * 鏍规嵁鐘舵�佺紪鐮佽繑鍥炰腑鏂�
+ * @param code
+ */
+function DEPOT_STATUS_MSG(code) {
+    if (code == DepotStatus.S_01) return "绌轰粨";
+    if (code == DepotStatus.S_02) return "鍏ュ簱涓�";
+    if (code == DepotStatus.S_03) return "灏佷粨";
+    if (code == DepotStatus.S_04) return "鍑哄簱涓�";
+    if (code == DepotStatus.S_05) return "灏佷粨-姘旇皟涓�";
+    if (code == DepotStatus.S_06) return "灏佷粨-鐔忚捀涓�";
+    if (code == DepotStatus.S_07) return "灏佷粨-閫氶涓�";
+    if (code == DepotStatus.S_08) return "灏佷粨-娓╂帶涓�";
+    if (code == DepotStatus.S_09) return "鍏朵粬";
+    return code;
+}
+
+/**
+ * fmt 鏃堕棿鏍煎紡鍖栦緥濡傦細yyyy-MM-dd hh:mm:ss date 鏃堕棿 return 瀛楃涓�
+ */
+function dateFtt(fmt, date) {
+    if (!date) return "";
+    var o = {
+        "M+": date.getMonth() + 1, // 鏈堜唤
+        "d+": date.getDate(), // 鏃�
+        "h+": date.getHours(), // 灏忔椂
+        "m+": date.getMinutes(), // 鍒�
+        "s+": date.getSeconds(), // 绉�
+        "q+": Math.floor((date.getMonth() + 3) / 3), // 瀛e害
+        "S": date.getMilliseconds()
+        // 姣
+    };
+    if (/(y+)/.test(fmt))
+        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "")
+            .substr(4 - RegExp.$1.length));
+    for (var k in o)
+        if (new RegExp("(" + k + ")").test(fmt))
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
+                : (("00" + o[k]).substr(("" + o[k]).length)));
+    return fmt;
+}
+
+function dateFtt2(fmt, date) {
+    if (!date) return "";
+    var date2 = new Date(date);
+    return dateFtt(fmt, date2);
+}
+
+// 鍒锋柊鏃堕棿
+function initTime() {
+    setInterval(function () {
+        $("#navBarDate").html(formatDate('mm鏈坉d鏃�', new Date()));
+        $("#navBarTime").html(formatDate('HH:MM:SS', new Date()));
+        $("#navBarWeek").html(getWeekDate());
+    }, 1000);
+}
+
+/**
+ * 鏍煎紡鍖栨棩鏈�
+ *
+ * @param fmt
+ * @param date
+ * @return {*}
+ */
+function formatDate(fmt, date) {
+    var ret;
+    var opt = {
+        "Y+": date.getFullYear().toString(),        // 骞�
+        "m+": (date.getMonth() + 1).toString(),     // 鏈�
+        "d+": date.getDate().toString(),            // 鏃�
+        "H+": date.getHours().toString(),           // 鏃�
+        "M+": date.getMinutes().toString(),         // 鍒�
+        "S+": date.getSeconds().toString()          // 绉�
+        // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+    };
+    for (var k in opt) {
+        ret = new RegExp("(" + k + ")").exec(fmt);
+        if (ret) {
+            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+        }
+    }
+    return fmt;
+}
+
+/**
+ * 鑾峰彇褰撳墠鏄熸湡鍑�
+ */
+function getWeekDate() {
+    var now = new Date();
+    var day = now.getDay();
+    var weeks = new Array("鏄熸湡鏃�", "鏄熸湡涓�", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�");
+    var week = weeks[day];
+    return week;
+}
+
+/**
+ * 鍒囨崲椤甸潰
+ * @param pageTag
+ */
+function changePage(pageTag) {
+    var url = "../dept-board/index";
+
+    if ("inout" == pageTag) {
+        url = "../dept-board/inout";
+    }
+    if ("ai" == pageTag) {
+        url = "../dept-board/ai";
+    }
+    if ("video" == pageTag) {
+        url = "../dept-board/video";
+    }
+    //鍚庡彴绠$悊棣栭〉
+    if ("backstage" == pageTag) {
+        url = "../index";
+        window.parent.open(url, "_self");
+        return;
+    }
+
+    window.location.href = url;
+}
diff --git a/fzzy-igdss-web/src/main/resources/static/fonts/DigitalNumbers.ttf b/fzzy-igdss-web/src/main/resources/static/fonts/DigitalNumbers.ttf
new file mode 100644
index 0000000..d6017ca
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/fonts/DigitalNumbers.ttf
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl1.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl1.jpg
deleted file mode 100644
index 0a0f8fe..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl1.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl2.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl2.jpg
deleted file mode 100644
index 9477705..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl2.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl3.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl3.jpg
deleted file mode 100644
index 9e0325f..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl3.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl4.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl4.jpg
deleted file mode 100644
index 9b59a87..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/bgl4.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/da-01.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/da-01.png
deleted file mode 100644
index 3f276db..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/da-01.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl1.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl1.png
deleted file mode 100644
index 3df0507..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl1.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl2.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl2.png
deleted file mode 100644
index 2f37217..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl2.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl3.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl3.png
deleted file mode 100644
index 7b1f342..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl3.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl4.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl4.png
deleted file mode 100644
index 71a3d89..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/iconl4.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl1.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl1.jpg
deleted file mode 100644
index 36e7c43..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl1.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl2.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl2.jpg
deleted file mode 100644
index ed1d3aa..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl2.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl3.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl3.png
deleted file mode 100644
index 27a5f35..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl3.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl4.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl4.png
deleted file mode 100644
index eb6ab24..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl4.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl5.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl5.png
deleted file mode 100644
index d6478e4..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/imgl5.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/nkt.jpg b/fzzy-igdss-web/src/main/resources/static/img/eoms/nkt.jpg
deleted file mode 100644
index c9a18e6..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/nkt.jpg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/rz-01.png b/fzzy-igdss-web/src/main/resources/static/img/eoms/rz-01.png
deleted file mode 100644
index d902d24..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/rz-01.png
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/zcl_logo.jpeg b/fzzy-igdss-web/src/main/resources/static/img/eoms/zcl_logo.jpeg
deleted file mode 100644
index 1465373..0000000
--- a/fzzy-igdss-web/src/main/resources/static/img/eoms/zcl_logo.jpeg
+++ /dev/null
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/czxx-bg_03.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/czxx-bg_03.png
new file mode 100644
index 0000000..0518265
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/czxx-bg_03.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-banli.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-banli.png
new file mode 100644
index 0000000..6a889d9
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-banli.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-cp.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-cp.png
new file mode 100644
index 0000000..2091bef
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-cp.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-h.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-h.png
new file mode 100644
index 0000000..3879609
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera-h.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera.png
new file mode 100644
index 0000000..af2e9df
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-camera.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-chengzhong.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-chengzhong.png
new file mode 100644
index 0000000..e433497
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-chengzhong.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-clear.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-clear.png
new file mode 100644
index 0000000..0f988ca
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-clear.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-date.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-date.png
new file mode 100644
index 0000000..cde2017
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-date.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/icon-dayin.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dayin.png
similarity index 100%
rename from fzzy-igdss-web/src/main/resources/static/img/eoms/icon-dayin.png
rename to fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dayin.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dengji.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dengji.png
new file mode 100644
index 0000000..6c1b924
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-dengji.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-fuwei.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-fuwei.png
new file mode 100644
index 0000000..5fcb4fd
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-fuwei.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-gree.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-gree.png
new file mode 100644
index 0000000..83cc621
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-gree.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/icon-hyd.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-hyd.png
similarity index 100%
rename from fzzy-igdss-web/src/main/resources/static/img/eoms/icon-hyd.png
rename to fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-hyd.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img-red.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img-red.png
new file mode 100644
index 0000000..acd070f
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img-red.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img.png
new file mode 100644
index 0000000..263d6eb
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-img.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/eoms/icon-ok.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-ok.png
similarity index 100%
rename from fzzy-igdss-web/src/main/resources/static/img/eoms/icon-ok.png
rename to fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-ok.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-red.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-red.png
new file mode 100644
index 0000000..27faf05
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-red.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-shuaxin2.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-shuaxin2.png
new file mode 100644
index 0000000..ed73427
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-shuaxin2.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-stop.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-stop.png
new file mode 100644
index 0000000..0805ebc
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-stop.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-xiehuo.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-xiehuo.png
new file mode 100644
index 0000000..2eeb4d9
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-xiehuo.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-zhijian.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-zhijian.png
new file mode 100644
index 0000000..c562c53
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/icon-zhijian.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/inout-img.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/inout-img.png
new file mode 100644
index 0000000..7d47ebf
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/inout-img.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/img/web/inout/rkbk-photo_03.png b/fzzy-igdss-web/src/main/resources/static/img/web/inout/rkbk-photo_03.png
new file mode 100644
index 0000000..c11a340
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/img/web/inout/rkbk-photo_03.png
Binary files differ
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-check.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-check.js
new file mode 100644
index 0000000..fab3441
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-check.js
@@ -0,0 +1,869 @@
+//褰撳墠鑺傜偣 鍏ュ簱璐ㄦ
+var layer;
+var laydate;
+var form;
+var table;
+var scanCodeTag = false;
+var page = 1;
+var limit = 10;
+var curCheckData = null;// 褰撳墠缂栬緫鏁版嵁
+var curCheckItems = null;// 褰撳墠鏁版嵁鐨勬鏌ラ」淇℃伅
+
+$(function () {
+    layui.use(['layer', 'laydate', 'form', 'table'], function () {
+        layer = layui.layer;
+        form = layui.form;
+        table = layui.table;
+        laydate = layui.laydate;
+
+        laydate.render({
+            elem: '#start',
+            theme: '#7b8e9f',
+            value: startTime
+        });
+
+        laydate.render({
+            elem: '#end',
+            theme: '#7b8e9f',
+            value: endTime
+        });
+
+        laydate.render({
+            elem: '#foodYear',
+            theme: '#7b8e9f',
+            value: foodYear,
+            type: 'year'
+        });
+
+        laydate.render({
+            elem: '#checkTime',
+            theme: '#7b8e9f',
+            format: 'yyyy-MM-dd HH:mm:ss',
+            type: 'datetime'
+        });
+
+        // 鍒濆鍖栬〃鍗曟暟鎹�
+        renderTable();
+
+        // 鐩戝惉琛屽伐鍏蜂簨浠�
+        table.on('tool(tableData)', function (obj) {
+            if (obj.event === 'edit') {
+                //鏇存柊浠撳簱涓嬫媺鍒楄〃
+                updateSelect();
+                //灞曠ず鏁版嵁
+                showDetail(obj.data);
+            }
+        });
+
+        //鐩戝惉绮鍝佺锛岃幏鍙栧寲楠岄」
+        layui.form.on('select(select_foodVariety)', function (data) {
+            updateFoodVariety(data.value);
+        });
+
+        //鐩戝惉绮绛夌骇锛岃幏鍙栫伯椋熷畾浠�
+        layui.form.on('select(select_foodLevel)', function (data) {
+            getPriceByFoodLevel(data.value);
+        });
+
+        //鐩戝惉鍖栭獙缁撴灉鍗曞~鍐欐暟鎹�,骞剁粰鍑烘彁绀虹粨鏋�
+        table.on('edit(tableCheckItem)', function (obj) {
+            getResult(obj);
+        });
+    });
+
+    //鏄剧ず鍏ュ簱娴佺▼
+    showProgress();
+});
+window.onbeforeunload = function () {
+}
+
+window.onunload = function () {
+}
+window.onload = function () {
+
+    //鎵弿鏋嚜鍔ㄥ洖杞︿簨浠�
+    $('#checkId').bind('keyup', function (event) {
+        if (event.keyCode == "13") {
+            // //鍘绘帀鐒︾偣锛岄槻姝㈠埛鏂伴〉闈�
+            // $('#checkId').blur();
+            getDataByCheckId();
+        }
+    });
+};
+
+// socket淇℃伅杩斿洖铏曠悊
+function socketOnMessage(packet) {
+    layer.alert(packet.data);
+    window.parent.sysNotify(packet.data);
+}
+
+//鎺у埗娴佺▼鐜妭鏄剧ず
+function showProgress() {
+    if (!inoutProgress) {
+        return;
+    }
+    if (inoutProgress.indexOf("REGISTER") == -1) {
+        $("#progress-register").css("display", "none");
+    }
+    if (inoutProgress.indexOf("CHECK") == -1) {
+        $("#progress-check").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 getResult(obj) {
+    var data = obj.data;
+    //濉啓鐨勬暟鎹��
+    var newValue = data.value;
+    //鏍囧噯鍊�
+    var limit = data.upperLimit;
+    //杩愮畻绗�
+    var symbol = data.operaSymbol;
+    if (symbol && limit) {
+        if (">=" == symbol) {
+            if (newValue < limit) {
+                data.result = "0";
+            } else {
+                data.result = "1";
+            }
+        }
+        if ("<=" == symbol) {
+            if (newValue > limit) {
+                data.result = "0";
+            } else {
+                data.result = "1";
+            }
+        }
+        if ("==" == symbol) {
+            if (newValue != limit) {
+                data.result = "0";
+            } else {
+                data.result = "1";
+            }
+        }
+    }
+    obj.update(data);
+    //鏍规嵁鍖栭獙缁撴灉鎻愰啋鏄惁鍚堟牸
+    updateCheckResultTip();
+}
+
+//鍔ㄦ�佹洿鎹粨搴撲笅鎷夊垪琛�
+function updateSelect() {
+    $('#depotId option').remove();
+    for (var i = 0; i < listDepot.length; i++) {
+        $('#depotId').append('<option value="' + listDepot[i].id + '">' + listDepot[i].name + '</option>');
+    }
+    //閲嶆柊娓叉煋
+    form.render('select');
+}
+
+//鏍规嵁鍝佺鑾峰彇鍖栭獙椤�
+function updateFoodVariety(foodVariety) {
+    if (null == foodVariety || "" == foodVariety) return;
+    form.val("form-detail", {
+        foodVariety: foodVariety
+    });
+    form.render();
+
+    flushCheckItem(foodVariety);
+}
+
+//鏍规嵁閫夋嫨浠撳簱鏄剧ず绮鍝佺
+function getPriceByFoodLevel(foodLevel) {
+    if (null == foodLevel || "" == foodLevel) return;
+    form.val("form-detail", {
+        foodLevel: foodLevel
+    });
+    form.render();
+    var data = form.val("form-detail");
+
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/get-price",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(data),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                $("#check-result-tip2").text("绮瀹氫环锛�" + result.data.price + "鍏�/鍏枻");
+            }
+        },
+        error: function () {
+            layer.msg("鍚庡彴寮傚父锛岃閲嶈瘯鎴栬�呰仈绯荤鐞嗗憳锛侊紒");
+        }
+    });
+}
+
+// 鏌ヨ
+function flushData() {
+    var index = layer.load();
+    var param = form.val("form-param");
+
+    table.reload('tableData', {
+        url: "../../basic/inout/page-check-data",
+        where: param,
+    });
+
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+    layer.close(index);
+};
+
+// 瀵煎嚭鏁版嵁-- 璺宠浆鏂伴〉闈㈠鐞�
+function exportData() {
+    // var url = "com.ld.igds.inout.ReportInoutCheck.d";
+    // window.parent.openTab(url, "鍖栭獙缁撴灉瀵煎嚭", "checkDataExport");
+};
+
+// 鎵︽牱鏈鸿В闄ゆ�ュ仠
+function checkResetStop() {
+    var param = JSON.stringify(checkDto);
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../api/check/reset-stop",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                layer.alert(result.msg);
+            } else {
+                layer.msg("鎿嶄綔鍛戒护鍙戦�佹垚鍔燂紒");
+            }
+        },
+        error: function () {
+            layer.close(index);
+            layer.alert("鍚庡彴寮傚父锛屾搷浣滃懡浠ゅ彂閫佸け璐ワ紒");
+        }
+    });
+};
+
+// 鏇存柊鍖栭獙缁撴灉鎻愰啋锛屽彧鍋氭彁閱掞紝涓嶅仛鑷姩鍒ゆ柇
+function updateCheckResultTip() {
+    if (!curCheckItems || curCheckItems.length == 0) {
+        return;
+    }
+    if (curCheckData.checkStatus != "NONE") {
+        return;
+    }
+    var msg;
+    $.each(curCheckItems, function (index, data) {
+        if (!data.result) {
+            return true;
+        }
+        if (data.result == "0") {
+            msg = "涓嶅悎鏍�";
+            return false;
+        }
+        if (data.result == "1") {
+            msg = "鍚堟牸";
+        }
+    });
+    if (msg) {
+        $("#check-result-tip").text("璐ㄦ缁撴灉锛�" + msg);
+    } else {
+        $("#check-result-tip").text("璐ㄦ缁撴灉锛�#");
+    }
+}
+
+/**
+ * 娓叉煋琛ㄦ牸
+ */
+function renderTableCheckItem() {
+    // 娓呯┖鏁版嵁
+    $("#tableCheckItem").empty();
+    table.render({
+        elem: '#tableCheckItem',
+        data: curCheckItems,
+        page: false,
+        // skin: 'line',
+        even: true,
+        cols: [[{
+            field: 'standardName',
+            title: '妫�楠岄」鐩�',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'value',
+            title: '妫�楠屽��',
+            align: 'center',
+            width: '10%',
+            edit: 'text'
+        }, {
+            field: 'operaSymbolValue',
+            title: '鏍囧噯鍊�',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'unit',
+            title: '鍗曚綅',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'deNum',
+            title: '鎵i噸',
+            align: 'center',
+            width: '10%',
+            edit: 'text'
+        }, {
+            field: 'addNum',
+            title: '澧為噸',
+            align: 'center',
+            width: '10%',
+            edit: 'text'
+        }, {
+            field: 'dePrice',
+            title: '鎵d环',
+            align: 'center',
+            width: '10%',
+            edit: 'text'
+        }, {
+            field: 'addPrice',
+            title: '澧炰环',
+            align: 'center',
+            width: '10%',
+            edit: 'text'
+        }, {
+            field: 'result',
+            title: '妫�楠岀粨鏋�',
+            align: 'center',
+            width: '10%',
+            templet: function (item) {
+                if (item.result == null) {
+                    return "";
+                }
+                if (item.result == '0') {
+                    return "涓嶅悎鏍�";
+                }
+                if (item.result == '1') {
+                    return "鍚堟牸";
+                }
+            }
+        }, {
+            field: 'remarks',
+            title: '澶囨敞璇存槑',
+            align: 'center',
+            edit: 'text'
+        }]],
+        limit: this.curCheckItems.length //鏄剧ず鐨勬暟閲�
+    });
+
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
+
+function showDetail(data) {
+    curCheckData = data;
+    if (!curCheckData.checkTime) {
+        curCheckData.checkTime = dateFtt("yyyy-MM-dd hh:mm:ss", new Date());
+    }
+    curCheckData.checkUser = checkUser;
+    // 璧嬪��
+    form.val("form-detail", curCheckData);
+    form.render();
+
+    layer.open({
+        type: 1,
+        title: "鍖栭獙鍗曟槑缁�",
+        area: ['1400px', '700px'],
+        shade: 0,
+        content: $('#checkDetail'),
+        btnAlign: 'c',
+        btn: ['浠呬繚瀛�', '淇濆瓨鎻愪氦', '鍏抽棴鍙栨秷'],
+        yes: function () {
+            // 鏇存柊鍒伴〉闈�
+            var data = form.val("form-detail");
+            // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
+            Object.assign(curCheckData, data);
+            saveCheckData();
+            if (scanCodeTag) {
+                showScanCode();
+            }
+        }, btn2: function () {
+            // 鏇存柊鍒伴〉闈�
+            var data = form.val("form-detail");
+            // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
+            Object.assign(curCheckData, data);
+            submit();
+            if (scanCodeTag) {
+                showScanCode();
+            }
+        }, btn3: function () {
+            parent.layer.closeAll();
+            if (scanCodeTag) {
+                showScanCode();
+            }
+        },
+        closeBtn: 0
+    });
+    //鍒ゆ柇鏄惁鍖栭獙锛岃嫢宸茬粡鍖栭獙锛屽垯涓嶆樉绀烘彁浜ゆ寜閽紝涓嶅厑璁镐慨鏀瑰寲楠岀粨鏋�
+    if (curCheckData.checkStatus != "NONE") {
+        $(".layui-layer-btn0").css('display', 'none');
+        $(".layui-layer-btn1").css('display', 'none');
+    }
+    // 鑾峰彇鍖栭獙椤逛俊鎭�
+    flushCheckItem(curCheckData.foodVariety);
+    getPriceByFoodLevel(curCheckData.foodLevel);
+}
+
+/**
+ * 鍒锋柊鍖栭獙缁撴灉椤�
+ */
+function flushCheckItem(foodVariety) {
+    curCheckItems = null;
+    $("#check-result-tip").text("妫�楠岀粨鏋滐細#");
+    $("#price-result-tip2").text("绮瀹氫环锛�#鍏�/鍏枻");
+    curCheckData.foodVariety = foodVariety;
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/get-check-item",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(curCheckData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                curCheckItems = result.data;
+                // 鏍规嵁鍖栭獙缁撴灉鎻愰啋鏄惁鍚堟牸
+                updateCheckResultTip();
+                // 椤甸潰娓叉煋妫�娴嬮」
+                renderTableCheckItem();
+                layer.close(index);
+            }
+        },
+        error: function () {
+            layer.close(index);
+            layer.msg("鍚庡彴寮傚父锛岃閲嶈瘯鎴栬�呰仈绯荤鐞嗗憳锛侊紒");
+        }
+    });
+};
+
+//浠呬繚瀛�
+function saveCheckData() {
+    if (!curCheckData.foodVariety) {
+        layer.alert("璇风‘璁ょ伯椋熷搧绉嶏紒锛�");
+        return;
+    }
+    curCheckData.checkItems = curCheckItems;
+    var index1 = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/submit-checkItem",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        async: false,
+        data: JSON.stringify(curCheckData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.close(index1);
+                notify(result.msg, result.data);
+            } else {
+                layer.closeAll();
+                curCheckData = null;
+                notify("鏁版嵁淇濆瓨鎴愬姛", result.data);
+                flushData();
+            }
+        },
+        error: function () {
+            layer.close(index1);
+            layer.alert("淇濆瓨澶辫触锛岃閲嶆柊灏濊瘯锛�");
+        }
+    });
+}
+
+//淇濆瓨鎻愪氦
+function submit() {
+
+    if (curCheckData.checkStatus == "NONE" || curCheckData.checkStatus == "NONE2") {
+        layer.alert("璇风‘璁ゅ寲楠岀粨鏋滐紒锛�");
+        return;
+    }
+    if (!curCheckData.foodVariety) {
+        layer.alert("璇风‘璁ょ伯椋熷搧绉嶏紒锛�");
+        return;
+    }
+    if (!curCheckData.foodLevel) {
+        layer.alert("璇风‘璁ょ伯椋熺瓑绾э紒锛�");
+        return;
+    }
+    if (!curCheckData.foodType) {
+        layer.alert("璇风‘璁ょ伯椋熸�ц川锛侊紒");
+        return;
+    }
+    if (!curCheckData.price) {
+        layer.alert("璇风‘璁ょ伯椋熷畾浠凤紝濡備笉鑰冭檻瀹氫环锛岃濉啓0.0");
+        return;
+    }
+    curCheckData.checkItems = curCheckItems;
+
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/submit-check",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        async: false,
+        data: JSON.stringify(curCheckData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.close(index);
+                notify(result.msg, result.data);
+            } else {
+                parent.layer.closeAll();
+                curCheckData = null;
+                notify("鏁版嵁鎻愪氦鎴愬姛", result.data);
+                flushData();
+            }
+        },
+        error: function () {
+            layer.close(index);
+            layer.alert("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯锛�");
+        }
+    });
+}
+
+//鎵爜寮圭獥
+function showScanCode() {
+    //娓呯┖琛ㄥ崟
+    $("#form-sacnCodeDetail")[0].reset();
+    form.render();
+
+    //鎵爜寮圭獥-璧嬪�紅rue
+    scanCodeTag = true;
+    layer.open({
+        type: 1,
+        title: "鎵爜淇℃伅",
+        area: ['700px', '320px'],
+        shade: 0,
+        content: $('#scanCodeDetail'),
+        success: function () {
+            document.getElementById('checkId').focus();
+        },
+        btnAlign: 'c',
+        btn: ['鏌ヨ', '鍏抽棴鍙栨秷'],
+        yes: function () {
+            getDataByCheckId();
+        }, btn2: function () {
+            scanCodeTag = false;
+            layer.closeAll();
+        },
+        closeBtn: 0
+    });
+}
+
+//鏍规嵁璐ㄦ鍗曞彿鑾峰彇淇℃伅
+function getDataByCheckId() {
+    var param = form.val("form-sacnCodeDetail");
+    if (!param.checkId) {
+        layer.alert("璐ㄦ鍗曞彿涓虹┖锛岃鎵爜鎴栬緭鍏ヨ川妫�鍗曞彿");
+    }
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/inout-check-scan-code",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(param),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.close(index);
+                $("#form-sacnCodeDetail")[0].reset();
+                form.render();
+                notify(result.msg, result.data);
+            } else {
+                updateSelect();
+                showDetail(result.data);
+            }
+        },
+        error: function () {
+            layer.close(index);
+            $("#form-sacnCodeDetail")[0].reset();
+            form.render();
+            alertError("淇濆瓨澶辫触锛岃閲嶆柊灏濊瘯锛�")
+        }
+    });
+}
+
+// 娓叉煋琛ㄥ崟鏁版嵁
+function renderTable() {
+    var param = form.val("form-param");
+    // 娓呯┖鏁版嵁
+    $("#tableData").empty();
+    table.render({
+        elem: '#tableData',
+        url: '../../basic/inout/page-check-data',
+        page: true,
+        limit: limit,
+        even: true,
+        method: 'POST',
+        contentType: "application/json;charset=UTF-8",
+        cols: [[{
+            field: 'checkId',
+            title: '璐ㄦ鍗曞彿',
+            width: '10%',
+            style: 'color: #f67d06;font-weight: bold'
+        }, {
+            field: 'plateNum',
+            title: '杞︾墝鍙�',
+            width: '9%',
+            style: 'font-weight: bold'
+        }, {
+            field: 'registerTime',
+            title: '鐧昏鏃堕棿',
+            width: '13%',
+            style: 'font-weight: bold'
+        }, {
+            field: 'sampleStatus',
+            title: '鏄惁鎵︽牱',
+            width: '10%',
+            templet: function (item) {
+                if (item.sampleStatus == null) {
+                    return "鏈墻鏍�";
+                }
+                if (item.sampleStatus == 'NONE') {
+                    return "鏈墻鏍�";
+                }
+                if (item.sampleStatus == 'SAMPLE') {
+                    return "宸叉墻鏍�";
+                }
+            }
+        }, {
+            field: 'sampleUser',
+            title: '鎵︽牱浜�',
+            width: '10%',
+            style: 'font-weight: bold'
+        }, {
+            field: 'sampleTime',
+            title: '鎵︽牱鏃堕棿',
+            width: '13%',
+            style: 'font-weight: bold'
+        }, {
+            field: 'foodVariety',
+            title: '绮鍝佺',
+            width: '9%',
+            templet: function (item) {
+                var result = item.foodVariety;
+                $.each(listFoodVariety, function (index, data) {
+                    if (item.foodVariety == data.code) {
+                        result = data.name;
+                        return true;
+                    }
+                });
+                return result == null ? "" : result;
+            }
+        }, {
+            field: 'depotId',
+            title: '瑁呭嵏浠撳簱',
+            width: '10%',
+            templet: function (item) {
+                var result = item.depotId;
+                $.each(listDepot, function (index, data) {
+                    if (item.depotId == data.id) {
+                        result = data.name;
+                        return true;
+                    }
+                });
+                return result == null ? "" : result;
+            }
+        }, {
+            field: 'checkStatus',
+            title: '妫�楠岀粨鏋�',
+            style: 'font-weight: bold',
+            templet: function (item) {
+                if (item.checkStatus == 'NONE') {
+                    return "鏈寲楠�";
+                }
+                if (item.checkStatus == 'PASS') {
+                    return "鍚堟牸";
+                }
+                if (item.checkStatus == 'UNPASS') {
+                    return "涓嶅悎鏍�";
+                }
+                return item.checkStatus == null ? "" : item.checkStatus;
+            }
+        }, {
+            field: '',
+            title: '鎿嶄綔',
+            width: '8%',
+            toolbar: "#barControl"
+        }]],
+        where: param,
+        parseData: function (res) {
+            if ("0000" == res.code) {
+                return {
+                    "code": "0",
+                    "msg": res.msg,
+                    "count": res.data.total,
+                    "data": res.data.records
+                }
+            } else {
+                return {
+                    "code": "1",
+                    "msg": res.msg
+                }
+            }
+        }
+    });
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
+
+// 琛ㄥ崟娓呯┖
+function resetForm() {
+    $("#form-param")[0].reset();
+    form.render();
+}
+
+// ---------------------------绮浜у湴 -寮�濮� -------------------//
+// 寮瑰嚭绮浜у湴涓嬫媺妗�
+function showFoodLocation() {
+    var index = layer.load();
+    // 娓叉煋寰�鏉ュ崟浣嶅垪琛�
+    table.render({
+        elem: '#tableFoodLoaction',
+        url: '../../basic/common/page-food-location',
+        page: false,
+        toolbar: '#toolbarFoodLocaton',
+        even: true,
+        method: 'POST',
+        contentType: "application/json;charset=UTF-8",
+        cols: [[{
+            field: 'code',
+            title: '缂栫爜',
+        }, {
+            field: 'simple',
+            title: '绠�鎷�',
+        }, {
+            field: 'name',
+            title: '鍚嶇О',
+            width: '60%'
+        }]],
+        where: {
+            "page": 1,
+            "limit": 100
+        },
+        parseData: function (res) {
+            if ("0000" == res.code) {
+                return {
+                    "code": "0",
+                    "msg": res.msg,
+                    "count": res.data.total,
+                    "data": res.data.records
+                }
+            } else {
+                return {
+                    "code": "1",
+                    "msg": res.msg
+                }
+            }
+        },
+        done: function (res) {
+            layer.close(index);
+        }
+    });
+
+    //鍙屽嚮鏄剧ず閫変腑鏁版嵁
+    table.on('rowDouble(tableFoodLoaction)', function (obj) {
+        var data = obj.data;
+        // 璧嬪��
+        form.val("form-detail", {
+            foodLocation: data.name,
+        });
+        // 鍏抽棴
+        layer.close(index2);
+    });
+
+    // 寮瑰嚭瀵硅瘽妗�
+    var index2 = layer.open({
+        type: 1,
+        title: "閫夋嫨绮骇鍦�",
+        area: ['600px', '600px'],
+        shade: 0,
+        content: $('#listFoodLocation'),
+        btn: 0,
+        btn: ['鍙栨秷'],
+        yes: function () {
+            // 鍏抽棴
+            layer.close(index2);
+        },
+        closeBtn: 0
+    });
+
+};
+
+// 鍒锋柊
+function flushFoodLocation() {
+    var key = $("#key2").val();
+    table.reload('tableFoodLoaction', {
+        url: "../../basic/common/page-food-location",
+        where: {
+            key: key
+        },
+        done: function (res) {
+            if (key) {
+                $("#key2").val(key);
+            }
+        }
+    });
+};
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @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));
+        }
+        $("#resultIntelCard").text(data.intelCard);
+
+        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/inout-common.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-common.js
new file mode 100644
index 0000000..6609900
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-common.js
@@ -0,0 +1,73 @@
+//鎺у埗娴佺▼鐜妭鏄剧ず
+function showProgress() {
+    if (!inoutProgress) {
+        return;
+    }
+    if (inoutProgress.indexOf("REGISTER") == -1) {
+        $("#progress-register").css("display", "none");
+    }
+    if (inoutProgress.indexOf("CHECK") == -1) {
+        $("#progress-check").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 alertError(msg) {
+    layer.alert(msg, {
+        icon: 5,
+        offset: ['300px', '300px']
+    });
+}
+
+function alertSuccess(msg) {
+    layer.alert(msg, {
+        icon: 1,
+        offset: ['300px', '300px']
+    });
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @param msg 鎻愰啋淇℃伅
+ * @param data 鏁版嵁淇℃伅锛屽彲鑳戒负绌�
+ */
+function notifyProgress(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));
+        }
+        $("#resultIntelCard").text(data.intelCard);
+        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 {
+        alertError(msg);
+    }
+}
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-print.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-print.js
new file mode 100644
index 0000000..56d0513
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-print.js
@@ -0,0 +1,53 @@
+/**
+ * 鎵撳嵃杩囩鍗�
+ */
+printWeight = function (htmlStr) {
+    // var LODOP = CLODOP
+    var LODOP = getLodop();
+    if ("5016" == companyId || "5326" == companyId || "5347" == companyId || "5352" == companyId) {
+        LODOP.PRINT_INIT("绉伴噸鍗�");
+        //鍊间负1--绾靛悜鎵撳嵃锛屽浐瀹氱焊寮�;
+        // 鍊间负2--妯悜鎵撳嵃锛屽浐瀹氱焊寮�;
+        // 鍊间负3--绾靛悜鎵撳嵃锛屽浐瀹氬搴︼紝楂樺害鎸夋墦鍗板唴瀹圭殑楂樺害鑷�傚簲;
+        LODOP.SET_PRINT_PAGESIZE(1, 1050, 1400, "");
+        LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
+        LODOP.PREVIEW();
+    } else {
+        LODOP.PRINT_INIT("杩囩鍗�");
+        //LODOP.SET_PRINT_PAGESIZE(1, 0, '90mm', "A4");
+        LODOP.SET_PRINT_PAGESIZE(1, '210mm', '140mm', "A4");
+        LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
+        //鎵撳嵃澶氫唤
+        // LODOP.SET_PRINT_COPIES(3);
+        LODOP.PREVIEW();
+    }
+};
+
+//鎵撳嵃鎵︽牱鍗曟潯褰㈢爜,checkId-鏉″舰鐮侊紝html-搴撳尯鍚嶇О鍜屾墻鏍锋椂闂�
+printBar = function (checkId, html) {
+    var LODOP = getLodop();
+
+    if(companyId && "5317" == companyId){
+        LODOP.PRINT_INIT("");
+        LODOP.SET_PRINT_PAGESIZE(1, '60mm', '40mm', '');
+
+        LODOP.ADD_PRINT_BARCODE(20, 30, '50mm', 80, "128A", checkId);
+        LODOP.ADD_PRINT_HTM(110, 20, '50mm', 80, html);
+        LODOP.SET_PRINT_STYLEA(0, "FontSize", 18);
+
+        LODOP.SET_PRINTER_INDEX("鏉$爜鎵撳嵃鏈�");//鎸囧畾鎵撳嵃鏈�
+        LODOP.PREVIEW();
+    }else {
+        LODOP.PRINT_INIT("");
+        LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '');
+
+        LODOP.ADD_PRINT_BARCODE(20, 30, '70mm', 80, "128A", checkId);
+        LODOP.ADD_PRINT_HTM(110, 10, '70mm', 80, html);
+        LODOP.SET_PRINT_STYLEA(0, "FontSize", 18);
+
+        LODOP.SET_PRINTER_INDEX("鏉$爜鎵撳嵃鏈�");//鎸囧畾鎵撳嵃鏈�
+        LODOP.PREVIEW();
+    }
+};
+
+
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-register.js b/fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
new file mode 100644
index 0000000..927611c
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
@@ -0,0 +1,699 @@
+//绉伴噸-鍖呮嫭绌鸿溅鍜屾弧杞︾О閲�
+var layer;
+var form;
+var table;
+var recordData = null;// 涓氬姟鏁版嵁淇℃伅
+var snapData;//绯荤粺鎶撴媿瀵硅薄淇℃伅
+var timerWeight;
+var paramIntelCard;//璁惧璇嗗埆缁撴灉
+var paramIdCard;//璁惧璇嗗埆缁撴灉
+var curCheckItems = null;// 褰撳墠鏁版嵁鐨勬鏌ラ」淇℃伅
+var step = 1;
+
+$(function () {
+    layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
+        var util = layui.util;
+        layer = layui.layer;
+        form = layui.form;
+        table = layui.table;
+        layui.laydate.render({
+            elem: '#test1',
+            theme: '#7b8e9f'
+        });
+        // 鍙充笅瑙掓坊鍔犲浐瀹氫俊鎭�
+        util.fixbar({
+            bar1: true,
+            css: {
+                left: 10,
+                bottom: 10
+            },
+            bgcolor: '#53adce',
+            click: function (type) {
+                if (type === 'bar1') {
+                    layer.closeAll();
+                    layer.open({
+                        type: 2,
+                        title: false,
+                        shadeClose: true,
+                        shade: 0.3,
+                        closeBtn: 2,
+                        offset: ['50px', '120px'],
+                        area: ['1000px', '640px'],
+                        content: '../../basic/inout/inout-progress?type=' + type + "&t=" + Math.random()
+                    });
+                }
+            }
+        });
+
+        //鐩戝惉閫夋嫨鏁版嵁浜嬩欢
+        table.on('tool(tableListProgressData)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'select') {
+                //娓呯┖琛ㄥ崟
+                resetForm();
+                flushData(data.intelCard, null);
+                layer.closeAll();
+            }
+        });
+
+    });
+
+    //鏄剧ず娴佺▼鐜妭
+    showProgress();
+
+    // 鐩戝惉閲嶉噺鍙樺寲
+    $(".weight").blur(function () {
+        deAutoByIn(this.name);
+    });
+
+    // 鍒濆鍖朩ebSocket
+    // initInoutWS(companyId, bizType, progress, userId);
+});
+
+window.onload = function () {
+    //鑷姩杩炴帴鍦扮淇℃伅锛�2.5绉掕幏鍙栦竴娆″湴纾呴噸閲忎俊鎭�
+    clearInterval(timerWeight);
+    timerWeight = setInterval(function () {
+        flushWeight();
+    }, 2500);
+
+    // 鍔犺浇瑙嗛
+    initVideo(snapDto1, snapDto2, snapDto3);
+
+    //璁剧疆鍦扮
+    $("#scaleName").val(weightDto.sort);
+
+    //鐩戝惉鍦扮閫夋嫨
+    $("#scaleName").change(function () {
+        layer.confirm('璋冩暣鍦扮闇�閲嶆柊鍔犺浇椤甸潰锛岀‘瀹氳皟鏁达紵', {
+            btn: ['纭畾', '鍙栨秷']
+        }, function () {
+            updateWeight();
+        });
+    });
+};
+
+// socket淇℃伅杩斿洖铏曠悊
+function socketOnMessage(packet) {
+    //鏆傛棤
+}
+
+//鐐瑰嚮绉伴噸
+function weight() {
+    // 娌℃湁涓氬姟鏁版嵁涓嶅彲鎵ц
+    if (!recordData) {
+        alertError("娌℃湁鏌ヨ鍒颁笟鍔℃暟鎹紝鎵ц琚嫆缁濓紒");
+        return;
+    }
+    // 濡傛灉鏄┖杞︾О閲�
+    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
+        form.val("form-data", {
+            emptyWeight: weightDto.weight
+        });
+        form.render();
+    }
+    // 濡傛灉鏄弧杞︾О閲�
+    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
+        form.val("form-data", {
+            fullWeight: weightDto.weight
+        });
+        form.render();
+    }
+
+    // 鐐瑰嚮绉伴噸鑷姩璋冪敤鎶撴媿
+    snapData = {
+        companyId: companyId,
+        deptId: deptId,
+        progress: recordData.progress,
+        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
+    };
+
+    //褰撳墠AJAX鏈嶅姟涓哄悓姝ユ湇鍔★紝杩斿洖鏁版嵁鍖呰鐓х墖淇℃伅
+    var index = layer.load();
+    $.ajax({
+        sync: false,
+        type: "POST",
+        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") {
+                alertError(result.msg);
+            } else {
+                snapData = result.data;
+            }
+        },
+        error: function () {
+            layer.close(index);
+            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()
+    };
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/list-only-progress",
+        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 flushWeight() {
+    var ip = "127.0.0.1";
+    if (weightDto.ip) {
+        ip = weightDto.ip;
+    }
+    var port = "9111";
+    if (weightDto.port) {
+        port = weightDto.port;
+    }
+    var sn = "WEIGHT";
+    if (weightDto.sn) {
+        sn = weightDto.sn;
+    }
+    var url = "http://" + ip + ":" + port + "/" + sn;
+    $.ajax({
+        type: "GET",
+        async: true,
+        timeout: 2000,
+        url: url,
+        data: {},
+        dataType: "json",
+        success: function (json) {
+            var data = json.content;
+            if (!data) data = 0.0;
+            weightDto.weight = data;
+            $("#weightValue").text(data);
+            $("#img_scale_statule").attr("src", "/img/web/inout/icon-gree.png");
+        },
+        error: function () {
+            weightDto.weight = 0.0;
+            $("#weightValue").text("0.0");
+            $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
+        }
+    });
+}
+
+
+// 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
+function printBill() {
+    if (!recordData) {
+        alertError("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝鎵撳嵃琚嫆缁濓紒");
+        return;
+    }
+    // 浠庡悗鍙拌幏鍙栨ā鐗堝苟鎵撳嵃
+    var data = form.val("form-data");
+    // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
+    Object.assign(recordData, data);
+
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/report/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 resetForm() {
+    $("#form-data")[0].reset();
+    form.render();
+    recordData = null;
+    weightDto.weight = 0.0;
+    $("#weightValue").text("0.0");
+    $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
+
+    $("#text-param").val(null);
+}
+
+function flushPage() {
+    layer.confirm('纭畾瑕佸埛鏂伴〉闈㈠悧锛�', {icon: 3, title: '鎻愮ず'}, function (index) {
+        resetForm();
+        layer.close(index);
+    });
+}
+
+
+//鐩戝惉琛ㄥ崟閲岀殑鏁板�煎彉鍖�
+document.getElementById('intelCard').addEventListener('input', function (event) {
+    var intelCard = $("#intelCard").val();
+    if (intelCard.length == 10) {
+        flushData(intelCard, null);
+    }
+});
+
+// --鏌ヨ鏂规硶,鑾峰彇韬唤璇佸彿銆佸崱鍙枫�佽溅鐗屽彿锛岃繘琛屾煡璇�
+function flushData(intelCard, userIdCard) {
+    var index = layer.load();
+    var userIdCard = userIdCard;
+    var intelCard = intelCard;
+    var plateNum = $("#plateNum").val();
+    var param = {
+        type: type,
+        progress: progress,
+        intelCard: intelCard,
+        userId: userIdCard,
+        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 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 (InoutProgress.WEIGHT_FULL == recordData.progress) {
+            $("#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);
+
+        $("#emptyWeight").addClass("rkbk-search-input");
+        $("#emptyWeight").attr("disabled", true);
+
+        $("#progress-hand").removeClass("active");
+        $("#progress-emptyWeight").removeClass("active");
+    }
+    //鏍规嵁閰嶇疆淇℃伅璁剧疆鍦扮鏄惁鍙紪杈�
+    if (weightEditTag && weightEditTag == 'N') {
+        $("#fullWeight").addClass("rkbk-search-input");
+        $("#fullWeight").attr("disabled", true);
+
+        $("#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("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
+        }
+    });
+}
+
+//鏄剧ず璐ㄦ淇℃伅
+function showCheck() {
+    if (!recordData) {
+        alertError("娌℃湁涓氬姟鏁版嵁淇℃伅锛屾墽琛岃鎷掔粷");
+        return;
+    }
+    // 鑾峰彇鍖栭獙椤逛俊鎭�
+    flushCheckItem();
+    layer.open({
+        type: 1,
+        title: "璐ㄦ璇︾粏",
+        offset: ['120px', '100px'],
+        area: ['1000px', '520px'],
+        shade: 0,
+        content: $('#checkDetail'),
+        btnAlign: 'c',
+        btn: ['鍙栨秷'],
+        yes: function () {
+            layer.closeAll();
+        },
+        closeBtn: 0
+    });
+}
+
+/**
+ * 鍒锋柊鍖栭獙缁撴灉椤�
+ */
+function flushCheckItem() {
+    curCheckItems = null;
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/get-check-item",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(recordData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                curCheckItems = result.data;
+
+                // 椤甸潰娓叉煋妫�娴嬮」
+                renderTableCheckItem();
+            }
+        },
+        error: function () {
+            layer.msg("鍚庡彴寮傚父锛岃閲嶈瘯鎴栬�呰仈绯荤鐞嗗憳锛侊紒");
+        }
+    });
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @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));
+        }
+        $("#resultIntelCard").text(data.intelCard);
+
+        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']});
+    }
+}
+
+/**
+ * 娓叉煋琛ㄦ牸
+ */
+function renderTableCheckItem() {
+    // 娓呯┖鏁版嵁
+    $("#tableCheckItem").empty();
+    table.render({
+        elem: '#tableCheckItem',
+        data: curCheckItems,
+        page: false,
+        even: true,
+        cols: [[{
+            field: 'standardName',
+            title: '妫�楠岄」鐩�',
+            align: 'center',
+            width: '13%'
+        }, {
+            field: 'value',
+            title: '妫�楠屽��',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'operaSymbolValue',
+            title: '鏍囧噯鍊�',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'unit',
+            title: '鍗曚綅',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'deNum',
+            title: '鎵i噸',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'addNum',
+            title: '澧為噸',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'dePrice',
+            title: '鎵d环',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'addPrice',
+            title: '澧炰环',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'result',
+            title: '妫�楠岀粨鏋�',
+            align: 'center',
+            width: '10%',
+            templet: function (item) {
+                if (item.result == null) {
+                    return "";
+                }
+                if (item.result == '0') {
+                    return "涓嶅悎鏍�";
+                }
+                if (item.result == '1') {
+                    return "鍚堟牸";
+                }
+            }
+        }, {
+            field: 'remarks',
+            title: '澶囨敞璇存槑',
+            align: 'center'
+        }]]
+    });
+
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
+
+function renderTableProgressData(list) {
+    // 娓呯┖鏁版嵁
+    $("#tableListProgressData").empty();
+    layer.open({
+        type: 1,
+        title: "閫夋嫨娴佺▼涓溅杈�",
+        offset: ['120px', '100px'],
+        area: ['1000px', '520px'],
+        shade: 0,
+        content: $('#listProgressData'),
+        closeBtn: 1
+    });
+    table.render({
+        elem: '#tableListProgressData',
+        data: list,
+        page: true,
+        even: true,
+        cols: [[
+            {type: 'numbers'}, {
+                field: 'id',
+                title: '鍗曟嵁鍙�',
+                align: 'center'
+            }, {
+                field: 'userName',
+                title: '鎵胯繍浜�',
+                align: 'center'
+            }, {
+                field: 'plateNum',
+                title: '杞︾墝鍙�',
+                align: 'center'
+            }, {fixed: 'right', title: '閫夋嫨鎿嶄綔', align: 'center', toolbar: '#barSelectProgress'}]]
+    });
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/inout-style.css b/fzzy-igdss-web/src/main/resources/static/inout/inout-style.css
new file mode 100644
index 0000000..10cfaf4
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-style.css
@@ -0,0 +1,956 @@
+@charset "utf-8";
+
+/*-----------------
+  Author:xq
+  update:2020
+ -------------------*/
+@font-face {
+	font-family: DINCond-Bold;
+	src: url('../fonts/DINCond-Bold.otf');
+}
+
+@font-face {
+	font-family: DigitalNumbers;
+	src: url(../fonts/DigitalNumbers.ttf);
+}
+
+body {
+	font-family: "寰蒋闆呴粦", Arial, sans-serif;
+	font-size: 14px;
+	background: #f3f5f8;
+}
+
+i, em {
+	font-style: normal;
+}
+
+
+.radius-3,
+.layui-btn,
+.layui-input {
+	-webkit-border-radius: 3px;
+	-moz-border-radius: 3px;
+	-ms-border-radius: 3px;
+	-o-border-radius: 3px;
+	border-radius: 3px;
+	border-color: #bfbfbf !important;
+}
+
+.radius-6,
+.rk-step li:before {
+	-webkit-border-radius: 6px;
+	-moz-border-radius: 6px;
+	-ms-border-radius: 6px;
+	-o-border-radius: 6px;
+	border-radius: 6px;
+}
+
+.rkbk-tit > i,
+.rkbk-tit > i:before,
+.rk-step-span,
+.ckdj-radiobox .layui-form-radio:after {
+	-webkit-border-radius: 50%;
+	-moz-border-radius: 50%;
+	-ms-border-radius: 50%;
+	-o-border-radius: 50%;
+	border-radius: 50%;
+}
+
+
+.box-shadow {
+	-webkit-box-shadow: 0px 0px 9px 3px rgba(230, 230, 230, 0.6);
+	-moz-box-shadow: 0px 0px 9px 3px rgba(230, 230, 230, 0.6);
+	box-shadow: 0px 0px 9px 3px rgba(230, 230, 230, 0.6);
+}
+
+.fl {
+	float: left;
+}
+
+.fr {
+	float: right;
+}
+
+input::-webkit-input-placeholder {
+	color: #b3babf
+}
+
+input::-moz-placeholder {
+	/* Mozilla Firefox 19+ */
+	color: #b3babf;
+}
+
+input:-moz-placeholder {
+	/* Mozilla Firefox 4 to 18 */
+	color: #b3babf;
+}
+
+input:-ms-input-placeholder {
+	/* Internet Explorer 10-11 */
+	color: #b3babf;
+}
+
+/*rk-bk*/
+
+
+.l-container {
+	width: 100%;
+	/*max-width: 1680px;*/
+	min-width: 1340px;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.rk-main {
+	margin: 0 20px;
+	position: relative;
+}
+
+.rkbk-quick {
+	height: 34px;
+	width: 100%;
+	margin: 30px 0;
+}
+
+.rkbk-quick-btn {
+	height: 34px;
+	/*width: 150px;*/
+	min-width: 100px;
+	display: inline-block;
+	line-height: 34px;
+	font-size: 16px;
+}
+
+.layui-btn {
+	background-color: #2ab5ad;
+}
+
+.layui-btn i {
+	display: inline-block;
+	width: 24px;
+	height: 24px;
+	position: relative;
+	top: -2px;
+}
+
+.layui-btn i img {
+	width: 100%;
+	height: 100%;
+}
+
+.rkbk-searchBox {
+	padding: 20px 40px;
+	background: #fff;
+}
+
+.rkbk-search-item {
+	height: 34px;
+	width: 28%;
+	margin-right: 8%;
+	position: relative;
+}
+
+.rkbk-search-item.mr-0 {
+	margin-right: 0;
+}
+
+.rkbk-search-tit,
+.rkbk-search-btn {
+	width: 80px;
+	height: 34px;
+	line-height: 34px;
+	font-size: 16px;
+	position: absolute;
+	top: 0;
+	z-index: 3;
+}
+
+.rkbk-search-tit {
+	left: 0;
+	color: #324251;
+	text-align: right;
+}
+
+.rkbk-search-btn {
+	right: 0;
+}
+
+.rkbk-search-inputbox {
+	margin: 0 90px;
+}
+
+.rkbk-search-input {
+	/* 	height: 34px; */
+	line-height: 34px;
+	padding-right: 10px;
+	font-size: 16px;
+	/*color: #666;*/
+	color: #000;
+	background: #eff4f6;
+	border-color: #eff4f6;
+}
+
+.layui-btn-normal {
+	background: #53adce;
+}
+
+.rkbk-con {
+	width: 100%;
+	overflow: hidden;
+	margin-top: 15px;
+}
+
+.rkbk-left-wrap {
+	width: 52%;
+}
+
+.rkbk-right-wrap {
+	width: 46%;
+}
+
+.rkbk-left-wrap,
+.rkbk-right-wrap {
+	/*background: #dee6ec;*/
+	background: #dee6ec;
+	min-height: 560px;
+}
+
+.rkbk-left {
+	padding: 0 40px 0 20px;
+}
+
+.rkbk-tit {
+	height: 30px;
+	line-height: 30px;
+	position: relative;
+	overflow: hidden;
+	margin-top: 10px;
+}
+
+.rkbk-tit h3 {
+	color: #324251;
+	font-size: 18px;
+	font-weight: bold;
+}
+
+.rkbk-tit > i {
+	width: 14px;
+	height: 14px;
+	display: inline-block;
+	background: #53adce;
+	position: relative;
+	float: left;
+	margin: 8px 10px 0 0;
+}
+
+.rkbk-tit > i:before {
+	display: block;
+	content: '';
+	width: 6px;
+	height: 6px;
+	background: #fff;
+	position: absolute;
+	left: 50%;
+	top: 50%;
+	margin-left: -3px;
+	margin-top: -3px;
+	z-index: 3;
+}
+
+
+.rkbk-form-box1 {
+	height: 304px;
+	position: relative;
+	padding-right: 315px;
+}
+
+.rkbk-photo {
+	position: absolute;
+	width: 270px;
+	height: 304px;
+	z-index: 9;
+	right: 0;
+	top: 0;
+}
+
+.rkbk-photo img {
+	width: 100%;
+	height: 100%;
+}
+
+.rkbk-left-form .layui-form-label,
+.qyzj-con-top .layui-form-label {
+	color: #324251;
+	font-size: 16px;
+	padding: 7px 15px;
+}
+
+
+.rkbk-search-input.bg-date {
+	background: #eff4f6 url(../img/web/inout/icon-date.png) 98% center no-repeat;
+}
+
+
+.rkbk-left-form .layui-form-item {
+	margin-bottom: 20px;
+}
+
+.rkbk-selBox .layui-form-select .layui-input {
+	height: 34px;
+	font-size: 16px;
+	line-height: 34px;
+	/*background: #eff4f6;*/
+	background: #FFFFFF;
+	border-color: #eff4f6;
+}
+
+.rkbk-selBox .layui-form-select dl {
+	top: 36px;
+}
+
+.rkbk-left-form .layui-input-block {
+	min-height: 34px;
+}
+
+.rkbk-form-box2,
+.rkbk-left-form {
+	margin-top: 20px;
+	width: 100%;
+}
+
+.rkbk-right-form .layui-input-block {
+	margin-right: 150px;
+}
+
+.rkbk-r-btn {
+	width: 130px;
+	height: 34px;
+	line-height: 34px;
+	font-size: 16px;
+}
+
+.rk-step-wrap {
+	padding: 8px 0 8px;
+	border-bottom: 1px solid #d1d7de;
+	text-align: center;
+}
+
+.rk-step {
+	height: 60px;
+	margin: 0 auto;
+	text-align: center;
+	overflow: hidden;
+}
+
+.rk-step li {
+	width: 60px;
+	height: 40px;
+	display: inline-block;
+	margin: 0 25px;
+	position: relative;
+}
+
+.rk-step-span {
+	display: inline-block;
+	width: 40px;
+	height: 40px;
+	line-height: 40px;
+	background: #c9d0d7;
+}
+
+.rk-step-span img {
+	width: 30px;
+	height: 30px;
+}
+
+.rk-step li p {
+	line-height: 16px;
+	font-size: 14px;
+	color: #000;
+	height: 16px;
+	overflow: hidden;
+	margin: 5px 0 0;
+	font-weight: bold;
+}
+
+.rk-step li:before {
+	display: block;
+	content: '';
+	width: 60px;
+	height: 6px;
+	background: #dee2e7;
+	position: absolute;
+	left: -57px;
+	z-index: 3;
+	top: 20px;
+}
+
+.rk-step li.rk-step-first:before {
+	display: none;
+}
+
+.rk-step li.active .rk-step-span {
+	background: #53adce;
+}
+
+.rk-step li.active:before {
+	background: #a3d1e3;
+}
+
+.btn-green {
+	background-color: #8bc16a;
+}
+
+.btn-violet {
+	background-color: #7494d1;
+}
+
+.btn-red {
+	background-color: #e37878;
+}
+
+.btn-blue {
+	background-color: #53adce;
+}
+
+.layui-btn-primary {
+	font-size: 16px;
+	color: #324251;
+	background: none;
+	border-color: #9fabb6;
+}
+
+.layui-btn.btn-sm {
+	width: 130px;
+}
+
+
+/*rk-ckdj*/
+.layui-text-center {
+	text-align: center;
+}
+
+.ckdj-radiobox .layui-form-item {
+	margin-bottom: 0;
+	margin-top: 20px;
+}
+
+.ckdj-radiobox .layui-form-label {
+	/*padding-left: 0;*/
+	/*padding-right: 0;*/
+	/*!*width: 100px;*!*/
+	/*text-align: left;*/
+}
+
+.ckdj-radiobox .layui-form-label,
+.ckdj-radiobox .layui-form-radio > div {
+	color: #324251;
+	font-size: 16px;
+}
+
+.ckdj-radiobox .layui-form-radio {
+	position: relative;
+}
+
+.ckdj-radiobox .layui-form-radio > i {
+	position: relative;
+	z-index: 9;
+}
+
+.ckdj-radiobox .layui-form-radio:after {
+	background: #fff;
+	width: 20px;
+	height: 20px;
+	overflow: hidden;
+	display: block;
+	content: '';
+	position: absolute;
+	left: 1px;
+	top: 4px;
+	z-index: 1;
+}
+
+.ckdj-radiobox .layui-form-radio > i:hover,
+.ckdj-radiobox .layui-form-radioed > i {
+	color: #5bb1d0;
+}
+
+.jiange-bowen img {
+	width: 100%;
+}
+
+.mb-20 {
+	margin-bottom: 20px;
+}
+
+.pl-20 {
+	padding-left: 20px;
+}
+
+.mr-30 {
+	margin-right: 30px;
+}
+
+/*rk-qyzj*/
+
+.qyzj-btnbox {
+	margin-top: 20px;
+	width: 100%;
+}
+
+.btn-34 {
+	height: 34px;
+	line-height: 34px;
+}
+
+.qyzj-btnbox .layui-btn {
+	margin-bottom: 0;
+}
+
+.qyzj-btn-sm {
+	padding: 0 11px;
+}
+
+.qyzj-btnbox .rkbk-quick {
+	margin: 0;
+	width: auto;
+}
+
+.qyzj-con {
+	padding: 20px;
+	background: #fff;
+	margin-top: 20px;
+}
+
+.qyzj-con-top .layui-input-block {
+	min-height: 34px;
+}
+
+.qyzj-top-btn {
+	/*width: 80px;*/
+	height: 34px;
+	line-height: 34px;
+	font-size: 16px;
+}
+
+.layui-text-right {
+	text-align: right;
+}
+
+.qyzj-tabBox {
+	margin-top: 15px;
+	overflow: hidden;
+	width: 100%;
+}
+
+.qyzj-tabBox td,
+.qyzj-tabBox th {
+	text-align: center;
+	color: #283a48;
+}
+
+.qyzj-tabBox .qyzj-table-tit {
+	border-bottom: 1px solid #53adce;
+	background: #eff4f6;
+}
+
+.qyzj-tabBox tbody tr:nth-child(2n) {
+	background: #f6f8f9;
+}
+
+.qyzj-page-wrap {
+	margin-top: 20px;
+	width: 100%;
+}
+
+.page-box1 {
+	color: #48536e;
+}
+
+.page-box1 a,
+.page-input {
+	display: inline-block;
+	width: 26px;
+	height: 26px;
+	text-align: center;
+	line-height: 26px;
+	border: 1px solid #bcc4cc;
+	font-size: 14px;
+	color: #9fabb6;
+	font-family: "arial";
+}
+
+.page-box1 a:hover,
+.page-box1 a.active {
+	border-color: #53adce;
+	color: #fff;
+	background: #53adce;
+}
+
+.page-box1 a:last-child,
+.page-box1 a:first-child {
+	font-family: "瀹嬩綋";
+	font-weight: bold;
+}
+
+.page-box2,
+.page-box3 {
+	margin-left: 30px;
+}
+
+.page-box2 select {
+	border: 1px solid #bcc4cc;
+	color: #9fabb6;
+	width: 94px;
+	font-size: 14px;
+	height: 28px;
+}
+
+.page-box3 {
+	line-height: 28px;
+	font-size: 14px;
+	color: #9fabb6;
+}
+
+.page-input {
+	font-family: "寰蒋闆呴粦";
+	margin: 0 10px;
+}
+
+
+/*rk-kccz*/
+
+.kccz-con {
+	width: 100%;
+	overflow: hidden;
+	margin: 20px 0;
+}
+
+.kccz-left {
+	width: 73%;
+}
+
+.kccz-right {
+	width: 26%;
+}
+
+.kccz-left,
+.kccz-right {
+	min-height: 560px;
+}
+
+.kccz-left-box1 {
+	/*background: #fff;*/
+	background:#dee6ec;
+	padding: 1px 20px 20px 20px;
+}
+
+.kccz-czxx-wrap {
+	padding-left: 24px;
+	/*margin-top: 20px;*/
+}
+
+.kccz-czxx-left .layui-form-item {
+	margin-bottom: 0;
+}
+
+.kccz-czxx-left .layui-form-label {
+	color: #324251;
+	font-size: 16px;
+	padding: 7px 0;
+	text-align: left;
+}
+
+.kccz-czxx-left .layui-input-block {
+	margin-left: 80px;
+	min-height: 34px;
+}
+
+
+.kccz-czxx-dl {
+	line-height: 24px;
+	overflow: hidden;
+}
+
+.kccz-czxx-dl dt,
+.kccz-czxx-dl dd {
+	float: left;
+	line-height: 24px;
+}
+
+.kccz-czxx-dl dt {
+	width: 80px;
+	height: 24px;
+	color: #000;
+	font-size: 18px;
+}
+
+.kccz-czxx-dl dt i {
+	width: 24px;
+	height: 24px;
+	display: inline-block;
+	margin-right: 5px;
+}
+
+.kccz-czxx-dl dt i img {
+	width: 100%;
+	height: 100%;
+	vertical-align: top;
+}
+
+.kccz-czxx-dl dd {
+	color: #9fabb6;
+	font-size: 14px;
+	margin-left: 30px;
+}
+
+.kccz-czxx-num {
+	height: 90px;
+	background: url(../img/web/inout/czxx-bg_03.png) center repeat-x;
+	text-align: center;
+	line-height: 90px;
+	margin-top: 15px;
+	color: #ff0000;
+}
+
+.kccz-czxx-num span {
+	font-size: 70px;
+	font-family: "DigitalNumbers";
+}
+
+.kccz-czxx-num em {
+	font-size: 50px;
+	margin-left: 10px;
+	font-family: "DINCond-Bold";
+}
+
+.kccz-r-item {
+	height: 220px;
+	background: #fff;
+	overflow: hidden;
+}
+
+.kccz-r-box {
+	padding: 0 10px;
+}
+
+.kccz-r-box .rkbk-tit {
+	margin: 5px 0;
+}
+
+.kccz-r-con {
+	height: 170px;
+	position: relative;
+}
+
+.kccz-r-vedio {
+	width: 100%;
+	height: 170px;
+	background: #dee6ec;
+}
+
+.kccz-r-vedio img,
+.kccz-r-vedio video {
+	width: 100%;
+	height: 100%;
+}
+
+
+.kccz-r-btnbox {
+	width: 110px;
+	position: absolute;
+	right: 0;
+	top: 0;
+	z-index: 99;
+}
+
+.kccz-r-btn {
+	display: block;
+	width: 110px;
+	height: 78px;
+	border: 1px solid #e7eaed;
+	text-align: center;
+}
+
+.kccz-r-div{
+	display: block;
+	height: 78px;
+	border: 1px solid #e7eaed;
+	background: #53adce;
+	text-align: center;
+}
+
+.kccz-r-div span{
+	display: inline-block;
+	width: 100px;
+	margin: 10px 0 0px;
+	height: 40px;
+    font-size: 18px;
+    font-weight: bold;
+    color: #FFF;
+}
+
+.kccz-r-div p {
+	color: #fff;
+}
+
+.kccz-r-btn span {
+	display: inline-block;
+	width: 30px;
+	height: 30px;
+	margin: 13px 0 0px;
+}
+
+
+.kccz-r-btn p {
+	color: #324251;
+	font-size: 14px;
+}
+
+.kccz-r-pz {
+	background: url(../img/web/inout/icon-camera.png) no-repeat;
+}
+
+.kccz-r-cp {
+	background: url(../img/web/inout/icon-camera-cp.png) no-repeat;
+}
+
+.kccz-r-img {
+	background: url(../img/web/inout/icon-img.png) no-repeat;
+}
+
+.kccz-r-img-red {
+	background: url(../img/web/inout/icon-img-red.png) no-repeat !important;
+}
+
+.kccz-r-btn:hover,
+.kccz-r-btn.active {
+	border-color: #53adce;
+}
+
+.kccz-r-btn1:hover,
+.kccz-r-btn1.active {
+	background: #53adce;
+}
+
+
+.kccz-r-btn1:hover .kccz-r-pz,
+.kccz-r-btn1.active .kccz-r-pz {
+	background: url(../img/web/inout/icon-camera-h.png) no-repeat;
+}
+
+.kccz-r-btn1:hover p,
+.kccz-r-btn1.active p {
+	color: #fff;
+}
+
+.mt-10 {
+	margin-top: 10px;
+}
+
+.mt-20 {
+	margin-top: 20px;
+}
+
+.kccz-left-box2 {
+	height: 680px;
+	padding: 1px 20px 0 20px;
+	/*background: #fff;*/
+	background: #dee6ec;
+}
+
+.kccz-data-form {
+	width: 100%;
+	margin-top: 20px;
+}
+
+.kccz-data-form .layui-form-label {
+	color: #324251;
+	font-size: 16px;
+	padding: 7px 15px;
+	font-weight: 600;
+}
+
+.kccz-data-form .layui-input-block {
+	min-height: 34px;
+}
+
+.kccz-data-group-sm .layui-input-block {
+	position: relative;
+	padding-right: 90px;
+}
+
+.kccz-data-btnbox .rkbk-search-btn {
+	position: relative;
+	margin-left: 10px;
+}
+
+.kccz-data-group-md .layui-input-block {
+	padding-right: 30%;
+	position: relative;
+}
+
+.kccz-data-bfb {
+	width: 27%;
+	z-index: 3;
+
+}
+
+.kccz-data-dw {
+	position: absolute;
+	right: 5px;
+	top: 1px;
+	z-index: 9;
+	line-height: 34px;
+	color: #324251;
+	font-size: 16px;
+	display: block;
+	height: 32px;
+	background: #eff4f6;
+	text-align: center;
+}
+
+.posi-r {
+	position: relative;
+}
+
+.bg-fff {
+	background: #fff;
+}
+
+
+.bg-ef {
+	background: #efefef;
+}
+
+@media all and (max-width: 1650px) {
+	.layui-input {
+		padding-left: 5px;
+		font-size: 14px;
+	}
+
+}
+
+.layui-layer-title{
+	font-weight: bold;
+}
+
+.line-container {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+}
+.line {
+	flex: 1;
+	height: 1px;
+	background-color: #0e9aef;
+}
+.line-text {
+	padding: 0 10px;
+	color: #0e9aef;
+}
+
+.layui-layer-title{
+	color: #FFF !important;
+	background-color: #0e9aef !important;
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..b91f605
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
@@ -0,0 +1,773 @@
+//绉伴噸-鍖呮嫭绌鸿溅鍜屾弧杞︾О閲�
+var layer;
+var form;
+var table;
+var recordData = null;// 涓氬姟鏁版嵁淇℃伅
+var snapData;//绯荤粺鎶撴媿瀵硅薄淇℃伅
+var timerWeight;
+var paramIntelCard;//璁惧璇嗗埆缁撴灉
+var paramIdCard;//璁惧璇嗗埆缁撴灉
+var curCheckItems = null;// 褰撳墠鏁版嵁鐨勬鏌ラ」淇℃伅
+var step = 1;
+
+$(function () {
+    layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
+        var util = layui.util;
+        layer = layui.layer;
+        form = layui.form;
+        table = layui.table;
+        layui.laydate.render({
+            elem: '#test1',
+            theme: '#7b8e9f'
+        });
+        // 鍙充笅瑙掓坊鍔犲浐瀹氫俊鎭�
+        util.fixbar({
+            bar1: true,
+            css: {
+                right: 10,
+                bottom: 20
+            },
+            bgcolor: '#53adce',
+            click: function (type) {
+                if (type === 'bar1') {
+                    layer.closeAll();
+                    layer.open({
+                        type: 2,
+                        title: false,
+                        shadeClose: true,
+                        shade: 0.3,
+                        closeBtn: 2,
+                        offset: ['50px', '120px'],
+                        area: ['1000px', '640px'],
+                        content: '../../basic/inout/inout-progress?type=' + type + "&t=" + Math.random()
+                    });
+                }
+            }
+        });
+
+        //鐩戝惉閫夋嫨鏁版嵁浜嬩欢
+        table.on('tool(tableListProgressData)', function (obj) {
+            var data = obj.data;
+            if (obj.event === 'select') {
+                //娓呯┖琛ㄥ崟
+                resetForm();
+                flushData(data.intelCard, null);
+                layer.closeAll();
+            }
+        });
+
+    });
+
+    //鏄剧ず娴佺▼鐜妭
+    showProgress();
+
+    // 鐩戝惉閲嶉噺鍙樺寲
+    $(".weight").blur(function () {
+        deAutoByIn(this.name);
+    });
+
+    // 鍒濆鍖朩ebSocket
+    // initInoutWS(companyId, bizType, progress, userId);
+});
+
+window.onload = function () {
+    //鑷姩杩炴帴鍦扮淇℃伅锛�2.5绉掕幏鍙栦竴娆″湴纾呴噸閲忎俊鎭�
+    clearInterval(timerWeight);
+    timerWeight = setInterval(function () {
+        flushWeight();
+    }, 2500);
+
+    // 鍔犺浇瑙嗛
+    initVideo(snapDto1, snapDto2, snapDto3);
+
+    //璁剧疆鍦扮
+    $("#scaleName").val(weightDto.sort);
+
+    //鐩戝惉鍦扮閫夋嫨
+    $("#scaleName").change(function () {
+        layer.confirm('璋冩暣鍦扮闇�閲嶆柊鍔犺浇椤甸潰锛岀‘瀹氳皟鏁达紵', {
+            btn: ['纭畾', '鍙栨秷']
+        }, function () {
+            updateWeight();
+        });
+    });
+};
+
+// socket淇℃伅杩斿洖铏曠悊
+function socketOnMessage(packet) {
+    //鏆傛棤
+}
+
+//鐐瑰嚮绉伴噸
+function weight() {
+    // 娌℃湁涓氬姟鏁版嵁涓嶅彲鎵ц
+    if (!recordData) {
+        alertError("娌℃湁鏌ヨ鍒颁笟鍔℃暟鎹紝鎵ц琚嫆缁濓紒");
+        return;
+    }
+    // 濡傛灉鏄┖杞︾О閲�
+    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
+        form.val("form-data", {
+            emptyWeight: weightDto.weight
+        });
+        form.render();
+    }
+    // 濡傛灉鏄弧杞︾О閲�
+    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
+        form.val("form-data", {
+            fullWeight: weightDto.weight
+        });
+        form.render();
+    }
+
+    // 鐐瑰嚮绉伴噸鑷姩璋冪敤鎶撴媿
+    snapData = {
+        companyId: companyId,
+        deptId: deptId,
+        progress: recordData.progress,
+        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
+    };
+
+    //褰撳墠AJAX鏈嶅姟涓哄悓姝ユ湇鍔★紝杩斿洖鏁版嵁鍖呰鐓х墖淇℃伅
+    var index = layer.load();
+    $.ajax({
+        sync: false,
+        type: "POST",
+        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") {
+                alertError(result.msg);
+            } else {
+                snapData = result.data;
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("鍚庡彴璋冪敤鎴浘澶辫触锛岃閲嶆柊灏濊瘯");
+        }
+    });
+    //濡傛灉鏄浜屾绉伴噸锛岄粯璁ゆ墽琛岃嚜鍔ㄨ绠�
+    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
+        deAutoByIn("emptyWeight");
+    }
+}
+
+//璇绘櫤鎱у崱
+function flushICCard() {
+    if (!cardDto.protocol) {
+        flushICCard1();
+    } else {
+        flushICCard2();
+    }
+}
+
+/**
+ * 鍗忚璇诲彇鏅烘収鍗�
+ */
+function flushICCard2() {
+    var index = layer.load();
+    var param = JSON.stringify(cardDto);
+    $.ajax({
+        type: "POST",
+        url: "../../inout/api/get-icCard",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: param,
+        success: function (result) {
+            layer.close(index);
+            if (result.code != "0000") {
+                alertError(result.msg);
+            } else {
+                resultData = result.data;
+                paramIntelCard = resultData.icCardNo;
+                $("#text-param").text("璇嗗埆鍗″彿锛�" + paramIntelCard);
+                flushData(paramIntelCard, null);
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("IC鍗¤鍙栧け璐�");
+        }
+    });
+}
+
+/**
+ * 鏈湴璇诲彇鏅烘収鍗�
+ */
+function flushICCard1() {
+    var index = layer.load();
+    $("#text-param").val(null);
+    $("#form-data")[0].reset();
+    form.render();
+    recordData = null;
+    $.ajax({
+        type: "GET",
+        async: true,
+        url: "http://127.0.0.1:9111/ICCARD",
+        data: {},
+        dataType: "json",
+        // jsonp: "callback",
+        // jsonpCallback: "jsonpCallback",
+        success: function (json) {
+            var data = json;
+            layer.close(index);
+            if (data.code === "200" || data.code == 200) {
+                paramIntelCard = data.no;
+                $("#text-param").text("璇嗗埆鍗″彿锛�" + paramIntelCard);
+                flushData(paramIntelCard, null);
+            } else {
+                alertError("璇烽噸鏂拌鍗★紒");
+            }
+        },
+        error: function () {
+            layer.close(index);
+            alertError("IC鍗¤鍙栧嚭閿欙紒");
+        }
+    });
+}
+
+// 浣跨敤鎻掍欢鑾峰彇韬唤璇�
+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()
+    };
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/list-only-progress",
+        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 flushWeight() {
+    var ip = "127.0.0.1";
+    if (weightDto.ip) {
+        ip = weightDto.ip;
+    }
+    var port = "9111";
+    if (weightDto.port) {
+        port = weightDto.port;
+    }
+    var sn = "WEIGHT";
+    if (weightDto.sn) {
+        sn = weightDto.sn;
+    }
+    var url = "http://" + ip + ":" + port + "/" + sn;
+    $.ajax({
+        type: "GET",
+        async: true,
+        timeout: 2000,
+        url: url,
+        data: {},
+        dataType: "json",
+        success: function (json) {
+            var data = json.content;
+            if (!data) data = 0.0;
+            weightDto.weight = data;
+            $("#weightValue").text(data);
+            $("#img_scale_statule").attr("src", "/img/web/inout/icon-gree.png");
+        },
+        error: function () {
+            weightDto.weight = 0.0;
+            $("#weightValue").text("0.0");
+            $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
+        }
+    });
+}
+
+
+// 鐐瑰嚮鎵撳嵃锛岀郴缁熷垽鏂槸鍚﹀凡缁忔墽琛屽畬鎴愶紝濡傛灉宸茬粡瀹屾垚锛岀洿鎺ユ墦鍗帮紝濡傛灉鏈畬鎴愬垯鍏堟墽琛屽畬鎴�
+function printBill() {
+    if (!recordData) {
+        alertError("娌℃湁鑾峰彇鍒颁笟鍔℃暟鎹紝鎵撳嵃琚嫆缁濓紒");
+        return;
+    }
+    // 浠庡悗鍙拌幏鍙栨ā鐗堝苟鎵撳嵃
+    var data = form.val("form-data");
+    // 鍚堝苟鏇存柊鐣跺墠缂栬緫鏁版嵁
+    Object.assign(recordData, data);
+
+    var index = layer.load();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/report/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 resetForm() {
+    $("#form-data")[0].reset();
+    form.render();
+    recordData = null;
+    weightDto.weight = 0.0;
+    $("#weightValue").text("0.0");
+    $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
+
+    $("#text-param").val(null);
+}
+
+function flushPage() {
+    layer.confirm('纭畾瑕佸埛鏂伴〉闈㈠悧锛�', {icon: 3, title: '鎻愮ず'}, function (index) {
+        resetForm();
+        layer.close(index);
+    });
+}
+
+
+//鐩戝惉琛ㄥ崟閲岀殑鏁板�煎彉鍖�
+document.getElementById('intelCard').addEventListener('input', function (event) {
+    var intelCard = $("#intelCard").val();
+    if (intelCard.length == 10) {
+        flushData(intelCard, null);
+    }
+});
+
+// --鏌ヨ鏂规硶,鑾峰彇韬唤璇佸彿銆佸崱鍙枫�佽溅鐗屽彿锛岃繘琛屾煡璇�
+function flushData(intelCard, userIdCard) {
+    var index = layer.load();
+    var userIdCard = userIdCard;
+    var intelCard = intelCard;
+    var plateNum = $("#plateNum").val();
+    var param = {
+        type: type,
+        progress: progress,
+        intelCard: intelCard,
+        userId: userIdCard,
+        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 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 (InoutProgress.WEIGHT_FULL == recordData.progress) {
+            $("#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);
+
+        $("#emptyWeight").addClass("rkbk-search-input");
+        $("#emptyWeight").attr("disabled", true);
+
+        $("#progress-hand").removeClass("active");
+        $("#progress-emptyWeight").removeClass("active");
+    }
+    //鏍规嵁閰嶇疆淇℃伅璁剧疆鍦扮鏄惁鍙紪杈�
+    if (weightEditTag && weightEditTag == 'N') {
+        $("#fullWeight").addClass("rkbk-search-input");
+        $("#fullWeight").attr("disabled", true);
+
+        $("#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("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯");
+        }
+    });
+}
+
+//鏄剧ず璐ㄦ淇℃伅
+function showCheck() {
+    if (!recordData) {
+        alertError("娌℃湁涓氬姟鏁版嵁淇℃伅锛屾墽琛岃鎷掔粷");
+        return;
+    }
+    // 鑾峰彇鍖栭獙椤逛俊鎭�
+    flushCheckItem();
+    layer.open({
+        type: 1,
+        title: "璐ㄦ璇︾粏",
+        offset: ['120px', '100px'],
+        area: ['1000px', '520px'],
+        shade: 0,
+        content: $('#checkDetail'),
+        btnAlign: 'c',
+        btn: ['鍙栨秷'],
+        yes: function () {
+            layer.closeAll();
+        },
+        closeBtn: 0
+    });
+}
+
+/**
+ * 鍒锋柊鍖栭獙缁撴灉椤�
+ */
+function flushCheckItem() {
+    curCheckItems = null;
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/get-check-item",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(recordData),
+        success: function (result) {
+            if (result.code != "0000") {
+                layer.msg(result.msg);
+            } else {
+                curCheckItems = result.data;
+
+                // 椤甸潰娓叉煋妫�娴嬮」
+                renderTableCheckItem();
+            }
+        },
+        error: function () {
+            layer.msg("鍚庡彴寮傚父锛岃閲嶈瘯鎴栬�呰仈绯荤鐞嗗憳锛侊紒");
+        }
+    });
+}
+
+/**
+ * 寮瑰嚭鎻愰啋妗�
+ * @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));
+        }
+        $("#resultIntelCard").text(data.intelCard);
+
+        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']});
+    }
+}
+
+/**
+ * 娓叉煋琛ㄦ牸
+ */
+function renderTableCheckItem() {
+    // 娓呯┖鏁版嵁
+    $("#tableCheckItem").empty();
+    table.render({
+        elem: '#tableCheckItem',
+        data: curCheckItems,
+        page: false,
+        even: true,
+        cols: [[{
+            field: 'standardName',
+            title: '妫�楠岄」鐩�',
+            align: 'center',
+            width: '13%'
+        }, {
+            field: 'value',
+            title: '妫�楠屽��',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'operaSymbolValue',
+            title: '鏍囧噯鍊�',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'unit',
+            title: '鍗曚綅',
+            align: 'center',
+            width: '10%'
+        }, {
+            field: 'deNum',
+            title: '鎵i噸',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'addNum',
+            title: '澧為噸',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'dePrice',
+            title: '鎵d环',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'addPrice',
+            title: '澧炰环',
+            align: 'center',
+            width: '9%'
+        }, {
+            field: 'result',
+            title: '妫�楠岀粨鏋�',
+            align: 'center',
+            width: '10%',
+            templet: function (item) {
+                if (item.result == null) {
+                    return "";
+                }
+                if (item.result == '0') {
+                    return "涓嶅悎鏍�";
+                }
+                if (item.result == '1') {
+                    return "鍚堟牸";
+                }
+            }
+        }, {
+            field: 'remarks',
+            title: '澶囨敞璇存槑',
+            align: 'center'
+        }]]
+    });
+
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
+
+function renderTableProgressData(list) {
+    // 娓呯┖鏁版嵁
+    $("#tableListProgressData").empty();
+    layer.open({
+        type: 1,
+        title: "閫夋嫨娴佺▼涓溅杈�",
+        offset: ['120px', '100px'],
+        area: ['1000px', '520px'],
+        shade: 0,
+        content: $('#listProgressData'),
+        closeBtn: 1
+    });
+    table.render({
+        elem: '#tableListProgressData',
+        data: list,
+        page: true,
+        even: true,
+        cols: [[
+            {type: 'numbers'}, {
+                field: 'id',
+                title: '鍗曟嵁鍙�',
+                align: 'center'
+            }, {
+                field: 'userName',
+                title: '鎵胯繍浜�',
+                align: 'center'
+            }, {
+                field: 'plateNum',
+                title: '杞︾墝鍙�',
+                align: 'center'
+            }, {fixed: 'right', title: '閫夋嫨鎿嶄綔', align: 'center', toolbar: '#barSelectProgress'}]]
+    });
+    $("thead tr").css({
+        "border-bottom": "2px solid #53adce",
+        "background": "#eff4f6"
+    });
+}
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
new file mode 100644
index 0000000..3a37c09
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
@@ -0,0 +1,346 @@
+var playNum = 1;
+var playUrl = null;
+var videoId = null;
+let webrtc1;
+let mediaStream1;
+let webrtc2;
+let mediaStream2;
+let webrtc3;
+let mediaStream3;
+/**
+ * 椤甸潰鏈�澶氬悓鏃惰皟鐢ㄤ笁涓棰戯紝涓�涓溅鐗岃瘑鍒紝鎶撴媿锛屼笁涓『搴忔墽琛�
+ * @param lprParam 杞︾墝璇嗗埆鍙傛暟
+ * @param snapParam1 鎶撴媿鍙傛暟1
+ * @param snapPram2 鎶撴媿鍙傛暟2
+ */
+function initVideo(snapParam1, snapParam2, snapPram3) {
+
+    //杞︾墝璇嗗埆鎾斁
+    if (snapParam1) {
+        $.ajax({
+            type: "POST",
+            url: "../../inout/api/inout-video-play",
+            dataType: "json",
+            contentType: "application/json;charset=UTF-8",
+            data: JSON.stringify(snapParam1),
+            success: function (result) {
+                if (result.code != "SUCCESS") {
+                    layer.msg(result.msg);
+                } else {
+                    initSnapVideo(result, 1);
+                }
+                //鎵ц绗簩涓�
+                initVideo2(snapParam2, snapPram3);
+            },
+            error: function () {
+                layer.msg("杩囩▼1鎽勫儚澶撮厤缃け璐モ�︹��");
+                //鎵ц绗簩涓�
+                initVideo2(snapParam2, snapPram3);
+            }
+        });
+    } else {
+        initVideo2(snapParam2, snapPram3);
+    }
+}
+
+function initVideo2(snapParam2, snapParam3) {
+    if (snapParam2) {
+        $.ajax({
+            type: "POST",
+            url: "../../inout/api/inout-video-play",
+            dataType: "json",
+            contentType: "application/json;charset=UTF-8",
+            data: JSON.stringify(snapParam2),
+            success: function (result) {
+                if (result.code != "SUCCESS") {
+                    layer.msg(result.msg);
+                } else {
+                    initSnapVideo(result, 2);
+                }
+                //鎵ц绗笁涓�
+                initVideo3(snapParam3)
+            },
+            error: function () {
+                layer.msg("杩囩▼2鎽勫儚澶撮厤缃け璐モ�︹��");
+                //鎵ц绗笁涓�
+                initVideo3(snapParam3);
+            }
+        });
+    } else {
+        initVideo3(snapParam3);
+    }
+}
+
+function initVideo3(snapParam3) {
+    if (!snapParam3) return;
+    $.ajax({
+        type: "POST",
+        url: "../../inout/api/inout-video-play",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(snapParam3),
+        success: function (result) {
+            if (result.code != "SUCCESS") {
+                layer.msg(result.msg);
+            } else {
+                initSnapVideo(result, 3);
+            }
+        },
+        error: function () {
+            layer.msg("杩囩▼3鎽勫儚澶撮厤缃け璐モ�︹��");
+        }
+    });
+}
+
+
+/**
+ * 瑙嗛鎾斁
+ * @param data
+ * @param order
+ */
+function initSnapVideo(data, order) {
+    var htm = "";
+    //娴峰悍web4.0鎾斁
+    if (PlayType.HIK_WEB4 == data.playType) {
+        var url = "../../inout/api/iframe-hik?id=" + data.id;
+        if (ship && ship == "ship") { //鑸硅繍绉伴噸椤甸潰
+            url += "&length=340&width=195";
+        } else { //绉伴噸椤甸潰
+            url += "&length=310&width=170";
+        }
+        htm = '<iframe src=' + url + ' style="width: 100%;height: 100%"></iframe>';
+    }
+    //VLC鎾斁
+    if (PlayType.VLC == data.playType) {
+        htm = "<object type='application/x-vlc-plugin' "
+            + "events='true' width='100%' height='100%'"
+            + "pluginspage='http://www.videolan.org'"
+            + "th:codebase='@{../../static/plugins/vlc/npapi-vlc-2.2.2.tar.xz}'>\n"
+            + "<param name='mrl' value='" + data.playUrl + "'/>\n"
+            + "<param name='volume' value='50'/>\n"
+            + "<param name='autoplay' value='true'/>\n"
+            + "<param name='loop' value='false'/>\n"
+            + "<param name='fullscreen' value='true'/>\n"
+            + "<param name='toolbar' value='false'/>\n" + "</object>";
+    }
+    //web-rtc鎾斁鏂瑰紡
+    if (PlayType.PLAY_TYPE_WEB_RTC_DH == data.playType || PlayType.PLAY_TYPE_WEB_RTC_HIK == data.playType) {
+        playUrl = data.playUrl;
+        playNum = order;
+        videoId = data.cameraId;
+        htm = '<video class="video" id="video' + playNum + '" autoplay="" muted="" playsinline=""></video>';
+    }
+
+    if (1 == order) {
+        $("#kccz-r-video1").append(htm);
+    }
+    if (2 == order) {
+        $("#kccz-r-video2").append(htm);
+    }
+    if (3 == order) {
+        $("#kccz-r-video3").append(htm);
+    }
+    if (PlayType.PLAY_TYPE_WEB_RTC_DH == data.playType || PlayType.PLAY_TYPE_WEB_RTC_HIK == data.playType) {
+        if (1 == order) {
+            webRtcToPlay1();
+        }
+        if (2 == order) {
+            webRtcToPlay2();
+        }
+        if (3 == order) {
+            webRtcToPlay3();
+        }
+    }
+}
+
+/*============= webRtc瑙嗛鎾斁1 ----- 寮�濮� ===============*/
+/**
+ * 寮�濮嬫挱鏀�
+ * @param winTag  鎾斁绐楀彛
+ * @returns {Promise<void>}
+ */
+async function webRtcToPlay1() {
+    if (playUrl) {
+        mediaStream1 = new MediaStream();
+        $("#video" + playNum)[0].srcObject = mediaStream1;
+        webrtc1 = new RTCPeerConnection({
+            iceServers: [{
+                urls: ["stun:stun.l.google.com:19302"]
+            }],
+            sdpSemantics: "unified-plan"
+        });
+        webrtc1.onsignalingstatechange = signalingstatechange1;
+
+        webrtc1.ontrack = ontrack1
+        let offer = await webrtc1.createOffer({
+
+            offerToReceiveAudio: true,
+            offerToReceiveVideo: true
+        });
+        await webrtc1.setLocalDescription(offer);
+    }
+}
+
+function ontrack1(event) {
+    mediaStream1.addTrack(event.track);
+}
+
+async function signalingstatechange1() {
+    switch (webrtc1.signalingState) {
+        case 'have-local-offer':
+            // let uuid = $('#uuid').val();
+            let url = playUrl + "?uuid=" + videoId + "&channel=0";
+            $.post(url, {
+                data: btoa(webrtc1.localDescription.sdp)
+            }, function (data) {
+                try {
+                    console.log(data);
+                    webrtc1.setRemoteDescription(new RTCSessionDescription({
+                        type: 'answer',
+                        sdp: atob(data)
+                    }))
+                } catch (e) {
+                    console.warn(e);
+                }
+
+            });
+            break;
+        case 'stable':
+            break;
+        case 'closed':
+            break;
+        default:
+            console.log(`unhandled signalingState is ${webrtc1.signalingState}`);
+            break;
+    }
+}
+
+/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
+
+/*============= webRtc瑙嗛鎾斁2 ----- 寮�濮� ===============*/
+/**
+ * 寮�濮嬫挱鏀�
+ * @param winTag  鎾斁绐楀彛
+ * @returns {Promise<void>}
+ */
+async function webRtcToPlay2() {
+    if (playUrl) {
+        mediaStream2 = new MediaStream();
+        $("#video" + playNum)[0].srcObject = mediaStream2;
+        webrtc2 = new RTCPeerConnection({
+            iceServers: [{
+                urls: ["stun:stun.l.google.com:19302"]
+            }],
+            sdpSemantics: "unified-plan"
+        });
+        webrtc2.onsignalingstatechange = signalingstatechange2;
+
+        webrtc2.ontrack = ontrack2
+        let offer = await webrtc2.createOffer({
+
+            offerToReceiveAudio: true,
+            offerToReceiveVideo: true
+        });
+        await webrtc2.setLocalDescription(offer);
+    }
+}
+
+function ontrack2(event) {
+    mediaStream2.addTrack(event.track);
+}
+
+async function signalingstatechange2() {
+    switch (webrtc2.signalingState) {
+        case 'have-local-offer':
+            // let uuid = $('#uuid').val();
+            let url = playUrl + "?uuid=" + videoId + "&channel=0";
+            $.post(url, {
+                data: btoa(webrtc2.localDescription.sdp)
+            }, function (data) {
+                try {
+                    console.log(data);
+                    webrtc2.setRemoteDescription(new RTCSessionDescription({
+                        type: 'answer',
+                        sdp: atob(data)
+                    }))
+                } catch (e) {
+                    console.warn(e);
+                }
+
+            });
+            break;
+        case 'stable':
+            break;
+        case 'closed':
+            break;
+        default:
+            console.log(`unhandled signalingState is ${webrtc2.signalingState}`);
+            break;
+    }
+}
+
+/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
+
+/*============= webRtc瑙嗛鎾斁3 ----- 寮�濮� ===============*/
+/**
+ * 寮�濮嬫挱鏀�
+ * @param winTag  鎾斁绐楀彛
+ * @returns {Promise<void>}
+ */
+async function webRtcToPlay3() {
+    if (playUrl) {
+        mediaStream3 = new MediaStream();
+        $("#video" + playNum)[0].srcObject = mediaStream3;
+        webrtc3 = new RTCPeerConnection({
+            iceServers: [{
+                urls: ["stun:stun.l.google.com:19302"]
+            }],
+            sdpSemantics: "unified-plan"
+        });
+        webrtc3.onsignalingstatechange = signalingstatechange3;
+
+        webrtc3.ontrack = ontrack3
+        let offer = await webrtc3.createOffer({
+
+            offerToReceiveAudio: true,
+            offerToReceiveVideo: true
+        });
+        await webrtc3.setLocalDescription(offer);
+    }
+}
+
+function ontrack3(event) {
+    mediaStream3.addTrack(event.track);
+}
+
+async function signalingstatechange3() {
+    switch (webrtc3.signalingState) {
+        case 'have-local-offer':
+            // let uuid = $('#uuid').val();
+            let url = playUrl + "?uuid=" + videoId + "&channel=0";
+            $.post(url, {
+                data: btoa(webrtc3.localDescription.sdp)
+            }, function (data) {
+                try {
+                    console.log(data);
+                    webrtc3.setRemoteDescription(new RTCSessionDescription({
+                        type: 'answer',
+                        sdp: atob(data)
+                    }))
+                } catch (e) {
+                    console.warn(e);
+                }
+
+            });
+            break;
+        case 'stable':
+            break;
+        case 'closed':
+            break;
+        default:
+            console.log(`unhandled signalingState is ${webrtc3.signalingState}`);
+            break;
+    }
+}
+
+/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/weight.js b/fzzy-igdss-web/src/main/resources/static/inout/weight.js
new file mode 100644
index 0000000..e01add9
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/inout/weight.js
@@ -0,0 +1,381 @@
+/**
+ * 鍏ュ簱-绉伴噸鑷姩璁$畻
+ * @param name 瑙﹀彂浜嬩欢鐨勫睘鎬у悕绉�
+ */
+function deAutoByIn(name) {
+    var curData = form.val("form-data");
+    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
+        return;
+    }
+    // 鍑�閲�
+    var netWeight = curData.fullWeight - curData.emptyWeight;
+    if (netWeight <= 0) {
+        alertError("鍑�閲�<=0锛屽綋鍓嶇幆鑺傚瓨鍦ㄩ�昏緫閿欒锛岃鏍稿");
+        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);
+
+    netWeight = netWeight.toFixed(1);
+    recordWeight = recordWeight.toFixed(1);
+    settleWeight = settleWeight.toFixed(1);
+
+    form.val("form-data", {
+        netWeight: netWeight,
+        settleWeight: settleWeight,
+        recordWeight: recordWeight
+    });
+    form.render();
+}
+
+
+/**
+ * 鍑哄簱-绉伴噸鑷姩璁$畻
+ * 1銆佸噣閲� = 姣涢噸 - 鐨噸 锛� 鎬绘墸閲� = 璐ㄦ鎵i噸  + 鍏朵粬鎵i噸
+ * 2銆佺粨绠楅噸閲� = 鍑�閲� - 鎬绘墸閲� + 璐ㄦ鎵i噸锛� 鍏ュ簱閲嶉噺 = 鍑�閲� - 鎬绘墸閲�
+ * 娉ㄦ剰锛氬鏋滄槸鎵嬪姩淇敼浜嗘按鍒嗗拰鏉傝川鐨勬墸閲嶏紝鍒欎笉鎸夌収閰嶇疆瑙勫垯杩涜澧炴墸閲嶈绠�
+ * @param name 瑙﹀彂浜嬩欢鐨勫睘鎬у悕绉�
+ */
+function deAutoByOut(name) {
+    var curData = form.val("form-data");
+    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
+        return;
+    }
+    // 鍑�閲�
+    var netWeight = curData.fullWeight - curData.emptyWeight;
+    if (netWeight <= 0) {
+        alertError("鍑�閲�<=0锛屽綋鍓嶇幆鑺傚瓨鍦ㄩ�昏緫閿欒锛岃鏍稿");
+        return;
+    }
+    //鍏朵粬淇℃伅
+    var dePackage = curData.dePackage, deOther = curData.deOther, settleWeight = 0,
+        recordWeight = 0, deSum = 0, deCheck = curData.deCheck, addCheck = curData.addCheck;
+
+    recordWeight = Number(netWeight) - Number(dePackage) - Number(deOther) - Number(deCheck);
+    settleWeight = Number(recordWeight) + Number(addCheck);
+
+    deSum = Number(deOther) + Number(deCheck)
+
+    netWeight = netWeight.toFixed(1);
+    recordWeight = recordWeight.toFixed(1);
+    settleWeight = settleWeight.toFixed(1);
+    deSum = deSum.toFixed(1);
+
+    form.val("form-data", {
+        netWeight: netWeight,
+        settleWeight: settleWeight,
+        recordWeight: recordWeight,
+        deSum: deSum
+    });
+    form.render();
+}
+
+// function deAutoByOut(name) {
+//     var curData = form.val("form-data");
+//
+//     if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
+//         return;
+//     }
+//     //姹囨�荤粨鏋�
+//     var deSum = 0, addSum = 0, settleWeight = 0, recordWeight = 0;
+//     // 鍑�閲�
+//     var netWeight = curData.fullWeight - curData.emptyWeight;
+//     //鎵f按鏉�
+//     var deWet = curData.deWet, deImpurity = curData.deImpurity;
+//
+//     if (netWeight <= 0) {
+//         layer.alert("鍑�閲嶅皬浜�0锛屽綋鍓嶇О閲嶅瓨鍦ㄩ�昏緫闂");
+//         return;
+//     }
+//
+//     var deBase = 0, multiple = 0;
+//     //姘村垎鏉傝川锛屾洿鏀规瘮渚嬪苟涓旀按鍒嗘墸閲嶈繕娌¤绠楁儏鍐典笅
+//     if ("fullWeight" == name || null == deWet) {
+//         var checkItem = this.getCheckItem(recordData.checkItems, CHECK_ST.C01, CHECK_ST.C020101);
+//         if (checkItem) {
+//             deBase = Number(curData.wet) - Number(checkItem.upperLimit);
+//             if (deBase == 0) return;
+//             multiple = parseInt(deBase / checkItem.ruleNum);//鍊嶆暟
+//             deWet = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
+//         }
+//     }
+//     //鏉傝川
+//     if ("fullWeight" == name || null == deImpurity) {
+//         checkItem = this.getCheckItem(recordData.checkItems, CHECK_ST.C02, CHECK_ST.C01010301);
+//         if (checkItem) {
+//             deBase = Number(curData.impurity) - Number(checkItem.upperLimit);
+//             if (deBase == 0) return;
+//             multiple = parseInt(deBase / checkItem.ruleNum);
+//             deImpurity = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
+//         }
+//     }
+//
+//     /** 鎬绘墸閲嶏紝涓嶅惈澧為噸*/
+//     deSum = Number(curData.deOther) + Number(curData.deHandle);
+//
+//
+//     if (Number(deWet) > 0) {//澧為噸
+//         addSum = addSum + Number(deWet);
+//     } else {
+//         deSum = deSum + Number(deWet);
+//     }
+//
+//     if (Number(deImpurity) > 0) {//鎵i噸
+//         deSum = deSum + Number(deImpurity);
+//     } else {
+//         addSum = addSum + Number(deImpurity);
+//     }
+//
+//     deSum = deSum.toFixed(0);
+//     /** 澧為噸杞鏁帮紝渚夸簬璁$畻  */
+//     addSum = Math.abs(addSum).toFixed(0);
+//     /** 鍏ュ簱閲嶉噺 = 鍑�閲� - 鎬绘墸閲�  */
+//     recordWeight = Number(netWeight) - Number(deSum);
+//     /** 缁撶畻閲嶉噺 = 鍑�閲� - 鎬绘墸閲� + 澧為噸 */
+//     settleWeight = Number(netWeight) - Number(deSum) + Number(addSum);
+//
+//     form.val("form-data", {
+//         netWeight: netWeight,
+//         deImpurity: deImpurity,
+//         deWet: deWet,
+//         deSum: deSum,
+//         settleWeight: settleWeight,
+//         recordWeight: recordWeight
+//     });
+//     form.render();
+// }
+
+/**
+ * 鏍规嵁鍖栭獙椤瑰拰浼犻�掕繃鏉ョ殑鍙傛暟鑾峰彇褰撳墠鍙傛暟鐨勯厤缃俊鎭�
+ * @param checkItems
+ * @param code1 绯荤粺鍙傛暟ID
+ * @param code2 鍥芥爣鍙傛暟ID
+ * @returns {undefined}
+ */
+function getCheckItem(checkItems, code1, code2) {
+    var checkData = null;
+    if (!checkItems) return checkData;
+    $.each(checkItems, function (index, checkItem) {
+        if (checkItem.standardId == code1 || checkItem.standardId == code2) {
+            if (checkItem.ruleNum && checkItem.upperLimit > 0.0) {
+                checkData = checkItem;
+                return true;
+            }
+        }
+    });
+    return checkData;
+}
+
+
+/**
+ * 鏇存柊鐢ㄦ埛閫夋嫨鍦扮
+ */
+function updateWeight() {
+    var scale = $("#scaleName").val();
+    $.ajax({
+        type: "POST",
+        url: "../../basic/inout/update-select-weight",
+        dataType: "json",
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify({"key": scale}),
+        success: function (result) {
+            if (result.code != "0000") {
+                notify(result.msg, result.data);
+            } else {
+                window.location.reload();
+            }
+        },
+        error: function () {
+            notify("鎻愪氦澶辫触锛岃閲嶆柊灏濊瘯", null);
+        }
+    });
+}
+
+// ---------------------------閫氱煡鍗�-寮�濮� -------------------//
+// 寮瑰嚭寰�鏉ュ崟浣嶄笅鎷夋
+function showNotice() {
+    var titleCustomer = "閫佽揣鍗曚綅";
+    var url = "../../basic/inout/list-notice-in";
+    if ("OUT" == type) {
+        titleCustomer = "鏀惰揣鍗曚綅";
+        url = "../../basic/inout/list-notice-out"
+    }
+    var index = layer.load();
+    var param = {
+        type: type
+    };
+
+    console.log(url);
+
+    table.render({
+        elem: '#tableNotice',
+        url: url,
+        page: false,
+        even: true,
+        method: 'POST',
+        contentType: "application/json;charset=UTF-8",
+        cols: [[{
+            field: 'name',
+            title: '閫氱煡鍗曞悕绉�',
+            width: '15%'
+        }, {
+            field: 'customerName',
+            title: titleCustomer
+        }, {
+            field: 'foodVarietyName',
+            title: '绮鍝佺',
+            width: '10%'
+        }, {
+            field: 'year',
+            title: '骞翠唤',
+            width: '8%'
+        }, {
+            field: 'depotName',
+            title: "鎵�娑変粨搴�"
+        }, {
+            field: 'contractName',
+            title: '鎵�灞炲悎鍚�'
+        }]],
+        where: param,
+        parseData: function (res) {
+            if ("0000" == res.code) {
+                return {
+                    "code": "0",
+                    "msg": res.msg,
+                    "data": res.data
+                }
+            } else {
+                return {
+                    "code": "1",
+                    "msg": res.msg
+                }
+            }
+        },
+        done: function (res) {
+            layer.close(index);
+        }
+    });
+    //鍙屽嚮鏄剧ず閫変腑鏁版嵁
+    table.on('rowDouble(tableNotice)', function (obj) {
+        var data = obj.data;
+        console.log(data)
+        form.val("form-data", {
+            customerName: data.customerName,
+            noticeId: data.id,
+            foodYear: data.year,
+            depotId: data.depotId,
+            foodVariety: data.foodVariety
+        });
+        layer.closeAll();
+    });
+    // 寮瑰嚭瀵硅瘽妗�
+    layer.open({
+        type: 1,
+        offset: ['100px', '250px'],
+        title: "閫氱煡鍗曞垪琛紙鍙屽嚮閫変腑锛�",
+        area: ['900px', '600px'],
+        shade: 0,
+        content: $('#listNotice'),
+        btn: 0,
+        btn: ['鍙栨秷'],
+        yes: function () {
+            layer.closeAll();
+        },
+        closeBtn: 0
+    });
+}
+
+// ---------------------------绮浜у湴-寮�濮� -------------------//
+function showFoodLocation() {
+    var index = layer.load();
+    table.render({
+        elem: '#tableFoodLoaction',
+        url: '../../basic/inout/page-dicArea',
+        page: false,
+        toolbar: '#toolbarFoodLocaton',
+        even: true,
+        method: 'POST',
+        contentType: "application/json;charset=UTF-8",
+        cols: [[{
+            field: 'code',
+            title: '缂栫爜',
+        }, {
+            field: 'simple',
+            title: '绠�鎷�',
+        }, {
+            field: 'name',
+            title: '鍚嶇О',
+            width: '60%'
+        }]],
+        where: {
+            "page": 1,
+            "limit": 100
+        },
+        parseData: function (res) {
+            if ("0000" == res.code) {
+                return {
+                    "code": "0",
+                    "msg": res.msg,
+                    "count": res.data.total,
+                    "data": res.data.records
+                }
+            } else {
+                return {
+                    "code": "1",
+                    "msg": res.msg
+                }
+            }
+        },
+        done: function (res) {
+            layer.close(index);
+        }
+    });
+
+    //鍙屽嚮鏄剧ず閫変腑鏁版嵁
+    table.on('rowDouble(tableFoodLoaction)', function (obj) {
+        var data = obj.data;
+        // 璧嬪��
+        form.val("form-data", {
+            foodLocation: data.name,
+            foodLocationId: data.code
+        });
+        // 鍏抽棴
+        layer.closeAll();
+    });
+
+    // 寮瑰嚭瀵硅瘽妗�
+    layer.open({
+        type: 1,
+        title: "閫夋嫨绮骇鍦�",
+        area: ['600px', '600px'],
+        shade: 0,
+        content: $('#listFoodLocation'),
+        btn: 0,
+        btn: ['鍙栨秷'],
+        yes: function () {
+            layer.closeAll();
+        },
+        closeBtn: 0
+    });
+}
+
+// 鍒锋柊
+function flushFoodLocation() {
+    var key = $("#key2").val();
+    table.reload('tableFoodLoaction', {
+        url: "../../basic/inout/page-dicArea",
+        where: {
+            key: key
+        },
+        done: function (res) {
+            if (key) {
+                $("#key2").val(key);
+            }
+        }
+    });
+}
+
+// ---------------------------绮浜у湴 -缁撴潫 -------------------//
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/static/js/plugins/lodop/LodopFuncs.js b/fzzy-igdss-web/src/main/resources/static/js/plugins/lodop/LodopFuncs.js
new file mode 100644
index 0000000..a59c63b
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/js/plugins/lodop/LodopFuncs.js
@@ -0,0 +1,141 @@
+锘縱ar CreatedOKLodop7766 = null, CLodopIsLocal;
+
+//====鍒ゆ柇鏄惁闇�瑕� Web鎵撳嵃鏈嶅姟CLodop:===
+//===(涓嶆敮鎸佹彃浠剁殑娴忚鍣ㄧ増鏈渶瑕佺敤瀹�)===
+function needCLodop() {
+    try {
+        var ua = navigator.userAgent;
+        if (ua.match(/Windows\sPhone/i))
+            return true;
+        if (ua.match(/iPhone|iPod|iPad/i))
+            return true;
+        if (ua.match(/Android/i))
+            return true;
+        if (ua.match(/Edge\D?\d+/i))
+            return true;
+
+        var verTrident = ua.match(/Trident\D?\d+/i);
+        var verIE = ua.match(/MSIE\D?\d+/i);
+        var verOPR = ua.match(/OPR\D?\d+/i);
+        var verFF = ua.match(/Firefox\D?\d+/i);
+        var x64 = ua.match(/x64/i);
+        if ((!verTrident) && (!verIE) && (x64))
+            return true;
+        else if (verFF) {
+            verFF = verFF[0].match(/\d+/);
+            if ((verFF[0] >= 41) || (x64))
+                return true;
+        } else if (verOPR) {
+            verOPR = verOPR[0].match(/\d+/);
+            if (verOPR[0] >= 32)
+                return true;
+        } else if ((!verTrident) && (!verIE)) {
+            var verChrome = ua.match(/Chrome\D?\d+/i);
+            if (verChrome) {
+                verChrome = verChrome[0].match(/\d+/);
+                if (verChrome[0] >= 41)
+                    return true;
+            }
+        }
+        return false;
+    } catch (err) {
+        return true;
+    }
+}
+
+//====椤甸潰寮曠敤CLodop浜戞墦鍗板繀椤荤殑JS鏂囦欢,鐢ㄥ弻绔彛(8000鍜�18000锛夐伩鍏嶅叾涓煇涓鍗犵敤锛�====
+if (needCLodop()) {
+    var src1 = "http://localhost:8000/CLodopfuncs.js?priority=1";
+    var src2 = "http://localhost:18000/CLodopfuncs.js?priority=0";
+
+    var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;
+    var oscript = document.createElement("script");
+    oscript.src = src1;
+    head.insertBefore(oscript, head.firstChild);
+    oscript = document.createElement("script");
+    oscript.src = src2;
+    head.insertBefore(oscript, head.firstChild);
+    CLodopIsLocal = !!((src1 + src2).match(/\/\/localho|\/\/127.0.0./i));
+}
+
+//====鑾峰彇LODOP瀵硅薄鐨勪富杩囩▼锛�====
+function getLodop(oOBJECT, oEMBED) {
+    var strHtmInstall = "<br><font color='#FF00FF'>鎵撳嵃鎺т欢鏈畨瑁�!鐐瑰嚮杩欓噷<a href='install_lodop32.exe' target='_self'>鎵ц瀹夎</a>,瀹夎鍚庤鍒锋柊椤甸潰鎴栭噸鏂拌繘鍏ャ��</font>";
+    var strHtmUpdate = "<br><font color='#FF00FF'>鎵撳嵃鎺т欢闇�瑕佸崌绾�!鐐瑰嚮杩欓噷<a href='install_lodop32.exe' target='_self'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤閲嶆柊杩涘叆銆�</font>";
+    var strHtm64_Install = "<br><font color='#FF00FF'>鎵撳嵃鎺т欢鏈畨瑁�!鐐瑰嚮杩欓噷<a href='install_lodop64.exe' target='_self'>鎵ц瀹夎</a>,瀹夎鍚庤鍒锋柊椤甸潰鎴栭噸鏂拌繘鍏ャ��</font>";
+    var strHtm64_Update = "<br><font color='#FF00FF'>鎵撳嵃鎺т欢闇�瑕佸崌绾�!鐐瑰嚮杩欓噷<a href='install_lodop64.exe' target='_self'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤閲嶆柊杩涘叆銆�</font>";
+    var strHtmFireFox = "<br><br><font color='#FF00FF'>锛堟敞鎰忥細濡傛浘瀹夎杩嘗odop鏃х増闄勪欢npActiveXPLugin,璇峰湪銆愬伐鍏枫��->銆愰檮鍔犵粍浠躲��->銆愭墿灞曘�戜腑鍏堝嵏瀹冿級</font>";
+    var strHtmChrome = "<br><br><font color='#FF00FF'>(濡傛灉姝ゅ墠姝e父锛屼粎鍥犳祻瑙堝櫒鍗囩骇鎴栭噸瀹夎鑰屽嚭闂锛岄渶閲嶆柊鎵ц浠ヤ笂瀹夎锛�</font>";
+    var strCLodopInstall_1 = "<br><font color='#FF00FF'>Web鎵撳嵃鏈嶅姟CLodop鏈畨瑁呭惎鍔紝鐐瑰嚮杩欓噷<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>涓嬭浇鎵ц瀹夎</a>";
+    var strCLodopInstall_2 = "<br>锛堣嫢姝ゅ墠宸插畨瑁呰繃锛屽彲<a href='CLodop.protocol:setup' target='_self'>鐐硅繖閲岀洿鎺ュ啀娆″惎鍔�</a>锛�";
+    var strCLodopInstall_3 = "锛屾垚鍔熷悗璇峰埛鏂版湰椤甸潰銆�</font>";
+    var strCLodopUpdate = "<br><font color='#FF00FF'>Web鎵撳嵃鏈嶅姟CLodop闇�鍗囩骇!鐐瑰嚮杩欓噷<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>鎵ц鍗囩骇</a>,鍗囩骇鍚庤鍒锋柊椤甸潰銆�</font>";
+    var LODOP;
+    try {
+        var ua = navigator.userAgent;
+        var isIE = !!(ua.match(/MSIE/i)) || !!(ua.match(/Trident/i));
+        if (needCLodop()) {
+            try {
+                LODOP = getCLodop();
+            } catch (err) {}
+            if (!LODOP && document.readyState !== "complete") {
+                alert("缃戦〉杩樻病涓嬭浇瀹屾瘯锛岃绋嶇瓑涓�涓嬪啀鎿嶄綔.");
+                return;
+            }
+            if (!LODOP) {
+                document.body.innerHTML = strCLodopInstall_1 + (CLodopIsLocal ? strCLodopInstall_2 : "") + strCLodopInstall_3 + document.body.innerHTML;                
+                return;
+            } else {
+                if (CLODOP.CVERSION < "3.0.9.2") {
+                    document.body.innerHTML = strCLodopUpdate + document.body.innerHTML;
+                }
+                if (oEMBED && oEMBED.parentNode)
+                    oEMBED.parentNode.removeChild(oEMBED);
+                if (oOBJECT && oOBJECT.parentNode)
+                    oOBJECT.parentNode.removeChild(oOBJECT);
+            }
+        } else {
+            var is64IE = isIE && !!(ua.match(/x64/i));
+            //=====濡傛灉椤甸潰鏈塋odop灏辩洿鎺ヤ娇鐢紝娌℃湁鍒欐柊寤�:==========
+            if (oOBJECT || oEMBED) {
+                if (isIE)
+                    LODOP = oOBJECT;
+                else
+                    LODOP = oEMBED;
+            } else if (!CreatedOKLodop7766) {
+                LODOP = document.createElement("object");
+                LODOP.setAttribute("width", 0);
+                LODOP.setAttribute("height", 0);
+                LODOP.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;");
+                if (isIE)
+                    LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA");
+                else
+                    LODOP.setAttribute("type", "application/x-print-lodop");
+                document.documentElement.appendChild(LODOP);
+                CreatedOKLodop7766 = LODOP;
+            } else
+                LODOP = CreatedOKLodop7766;
+            //=====Lodop鎻掍欢鏈畨瑁呮椂鎻愮ず涓嬭浇鍦板潃:==========
+            if ((!LODOP) || (!LODOP.VERSION)) {
+                if (ua.indexOf('Chrome') >= 0)
+                    document.body.innerHTML = strHtmChrome + document.body.innerHTML;
+                if (ua.indexOf('Firefox') >= 0)
+                    document.body.innerHTML = strHtmFireFox + document.body.innerHTML;
+                document.body.innerHTML = (is64IE ? strHtm64_Install : strHtmInstall) + document.body.innerHTML;
+                return LODOP;
+            }
+        }
+        if (LODOP.VERSION < "6.2.2.6") {
+            if (!needCLodop())
+                document.body.innerHTML = (is64IE ? strHtm64_Update : strHtmUpdate) + document.body.innerHTML;
+        }
+        //===濡備笅绌虹櫧浣嶇疆閫傚悎璋冪敤缁熶竴鍔熻兘(濡傛敞鍐岃鍙ャ�佽瑷�閫夋嫨绛�):==
+
+
+
+        //=======================================================
+        return LODOP;
+    } catch (err) {
+        alert("getLodop鍑洪敊:" + err);
+    }
+}
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/inout-check.html b/fzzy-igdss-web/src/main/resources/templates/inout/inout-check.html
new file mode 100644
index 0000000..c477bcc
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/inout-check.html
@@ -0,0 +1,595 @@
+<!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" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
+
+    <style type="text/css">
+        .qyzj-tabBox {
+            margin-top: 0px !important;
+            overflow: hidden;
+            width: 100%;
+        }
+
+        #layui-table-page1 {
+            text-align: right !important;
+        }
+
+        .display-none {
+            display: none;
+        }
+
+        .control-btn {
+            height: 35px;
+            line-height: 30px;
+            background-color: #f67d06;
+        }
+
+        .tip-red {
+            text-align: right;
+            padding-left: 40px;
+            font-size: 16px;
+            color: red;
+            font-weight: bold;
+        }
+
+        thead span {
+            font-weight: bold
+        }
+
+        #label1, #label4, #label5 {
+            color: red;
+        }
+
+        .layui-select-disabled .layui-disabled {
+            color: #000 !important;
+        }
+
+        .layui-table td {
+            font-weight: bold;
+        }
+
+        .rk-step-wrap {
+            padding: 0px;
+            border-bottom: 0px;
+            text-align: center;
+        }
+
+        .qyzj-btnbox {
+            margin-top: 10px;
+        }
+
+        .qyzj-btnbox .rkbk-quick {
+            margin-top: 13px;
+        }
+
+        .qyzj-con {
+            margin-top: 10px;
+            background: #dee6ec;
+        }
+
+        .rkbk-search-input {
+            background: #FFF !important;
+        }
+
+        .rkbk-search-input.bg-date {
+            background: #FFF !important;
+        }
+
+        thead span {
+            font-weight: bold
+        }
+
+        .red {
+            color: red;
+            font-weight: bold;
+        }
+
+        .layui-select-disabled .layui-disabled {
+            color: #000 !important;
+        }
+
+        .layui-table td {
+            font-weight: bold;
+        }
+
+        .layui-elem-quote {
+            padding: 10px;
+            color: blue;
+            margin-bottom: unset;
+        }
+
+        .input_ba {
+            background: #e7eaec !important;
+        }
+
+        .layui-layer-btn .layui-layer-btn1 {
+            border-color: #53adce;
+            background-color: #53adce;
+            color: #fff;
+        }
+    </style>
+
+</head>
+
+<body>
+<div class="l-container layui-clear">
+    <div class="rk-main">
+
+        <div class="qyzj-btnbox layui-clear">
+            <!--娴佺▼寮曞-->
+            <div class="rk-step-wrap fr">
+                <ul class="rk-step">
+                    <li id="progress-register" class="active rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+                        </span>
+                        <p>鍏ュ簱鐧昏</p>
+                    </li>
+                    <li id="progress-fullWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>婊¤溅绉伴噸</p>
+                    </li>
+                    <li id="progress-hand">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
+                        </span>
+                        <p>鍏ュ簱鍊间粨</p>
+                    </li>
+                    <li id="progress-emptyWeight">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
+                        </span>
+                        <p>绌鸿溅绉伴噸</p>
+                    </li>
+                </ul>
+            </div>
+            <!--娴佺▼寮曞缁撴潫-->
+        </div>
+        <!--qyzj-btnbox end-->
+
+
+        <div class="qyzj-con radius-6">
+            <div class="qyzj-con-top layui-row">
+                <form class="layui-form" action="" id="form-param"
+                      lay-filter="form-param">
+                    <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-form-item display-none">
+                        <label class="layui-form-label">闅愯棌-娴佺▼</label>
+                        <div class="layui-input-block">
+                            <input type="text" name="progress" th:value="${progress}"
+                                   autocomplete="off" class="layui-input rkbk-search-input">
+                        </div>
+                    </div>
+                    <div class="layui-col-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">璐ㄦ鍗曞彿</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="checkId" placeholder="璇疯緭鍏�"
+                                       autocomplete="off" class="layui-input rkbk-search-input">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-col-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">绮鍝佺</label>
+                            <div class="layui-input-block rkbk-selBox">
+                                <select name="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-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">璧峰鏃堕棿</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="start" placeholder="璇疯緭鍏�" autocomplete="off"
+                                       class="layui-input rkbk-search-input bg-date" id="start">
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="layui-col-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">鎴鏃堕棿</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="end" placeholder="璇疯緭鍏�" autocomplete="off"
+                                       class="layui-input rkbk-search-input bg-date" id="end">
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="layui-col-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">瑁呭嵏浠撳簱</label>
+                            <div class="layui-input-block rkbk-selBox">
+                                <select name="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-xs3">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">鏄惁鍖栭獙</label>
+                            <div class="layui-input-block rkbk-selBox">
+                                <select name="checkStatus">
+                                    <option value="NONE" selected>鏈寲楠�</option>
+                                    <option value="CHECK">宸插寲楠�</option>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="layui-col-xs3 layui-text-right">
+                        <input type="button" value="鏌ヨ/鍒锋柊"
+                               class="qyzj-top-btn layui-btn btn-blue" onclick="flushData()"/>
+                        <input type="button" value="娓呯┖鏉′欢"
+                               class="qyzj-top-btn layui-btn btn-red" onclick="resetForm()"/>
+                    </div>
+
+                </form>
+            </div>
+            <!--qyzj-con-oop end-->
+
+            <div class="qyzj-tabBox">
+                <table class="layui-table" lay-skin="nob" id="tableData"
+                       lay-filter="tableData">
+                    <colgroup>
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="10%">
+                        <col width="">
+                        <col width="10%">
+                    </colgroup>
+                    <thead>
+                    <tr class="qyzj-table-tit">
+                        <th>璐ㄦ鍗曞彿</th>
+                        <th>鐧昏鏃堕棿</th>
+                        <th>鎵︽牱鐘舵��</th>
+                        <th>鎵︽牱浜�</th>
+                        <th>鎵︽牱鏃堕棿</th>
+                        <th>绮鍝佺</th>
+                        <th>瑁呭嵏浠撳簱</th>
+                        <th>妫�楠岀粨鏋�</th>
+                        <th>鎿嶄綔</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script th:inline="javascript">
+    var progress = [[${progress}]];
+    var listDepot = [[${listDepot}]];
+    //涓氬姟姝ラ
+    var bizType = [[${bizType}]];
+    //鍑哄叆搴撶被鍨�
+    var type = [[${type}]];
+    //userId
+    var userId = [[${loginUser.loginName}]];
+
+    var checkUser = [[${loginUser.userName}]];
+
+    var companyId = [[${loginUser.companyId}]];
+    //鍝佺
+    var listFoodVariety = [[${listFoodVariety}]];
+    //鎬ц川
+    var listFoodType = [[${listFoodType}]];
+    var startTime = [[${startTime}]];
+    var endTime = [[${endTime}]];
+    var foodYear = [[${foodYear}]];
+    //鎵︽牱鏈轰俊鎭�
+    var checkDto = [[${checkDto}]];
+
+    //鎵�灞炲垎搴�
+    var deptId = [[${deptId}]];
+
+    var inoutProgress = [[${inoutProgress}]];
+
+</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="@{/web/inout/inout-check.js}"></script>
+
+<script type="text/html" id="barControl">
+    <a class="layui-btn control-btn" lay-event="edit">缁撴灉褰曞叆</a>
+</script>
+</body>
+
+<!-- 鎵爜寮圭獥 -->
+<div class="layui-tab-content" id="scanCodeDetail" style="display: none;" 慰nsubmit="return false;">
+    <!-- 琛ㄥ崟鍩烘湰淇℃伅 -->
+    <form class="layui-form" id="form-sacnCodeDetail" lay-filter="form-sacnCodeDetail">
+        <div class="layui-col-xs12">
+            <div class="layui-form-item">
+                <label class="layui-form-label">璐ㄦ鍗曞彿</label>
+                <div class="layui-input-block">
+                    <input type="text" id="checkId" name="checkId" placeholder="璇锋壂鐮侊紝涔熷彲鎵嬪姩杈撳叆" class="layui-input">
+                    <!--杩欒浠g爜涓嶈兘鍒�-->
+                    <!--褰揻orm琛ㄥ崟涓彧鏈変竴涓猧nput鏃舵寜鍥炶溅鎸夐敭浼氬埛鏂伴〉闈紝鍥犳娣诲姞涓�涓猧nput骞堕殣钘忥紝涓嶈兘浣跨敤type="hidden"鏂瑰紡闅愯棌-->
+                    <input type="text" id="hiddenText" name="hiddenText" style="display:none"/>
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-col-xs12" style="margin-bottom: 10px">
+            <div style="padding-left: 50px; color: #2ab5ad;">
+                <span style="font-weight: bold; margin-right: 10px;">澶囨敞锛氳川妫�鍗曞彿鍙互鎵爜锛屼篃鍙互鎵嬪姩杈撳叆锛屾墜鍔ㄨ緭鍏ュ悗闇�瑕佺偣鍑绘煡璇�</span>
+            </div>
+        </div>
+    </form>
+</div>
+
+
+<!-- 鎵嬪姩褰曞彇鍖栭獙淇℃伅寮圭獥 -->
+<div class="layui-tab-content" id="checkDetail" style="display: none;">
+
+    <!-- 琛ㄥ崟鍩烘湰淇℃伅 -->
+    <form class="layui-form" id="form-detail" lay-filter="form-detail">
+
+        <div class="layui-col-xs12" style="display: none;">
+            <div class="layui-form-item">
+                <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>
+
+        <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="checkId" autocomplete="off"
+                           class="layui-input input_ba" disabled="">
+                </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="sampleUser" autocomplete="off"
+                           class="layui-input input_ba" disabled="">
+                </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="sampleTime" autocomplete="off"
+                           class="layui-input input_ba" disabled="">
+                </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="checkUser" autocomplete="off"
+                           class="layui-input">
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs4">
+            <div class="layui-form-item">
+                <label class="layui-form-label red">瑁呭嵏浠撳簱</label>
+                <div class="layui-input-block">
+                    <select name="depotId" id="depotId" lay-filter="select_depot">
+                    </select>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs4">
+            <div class="layui-form-item">
+                <label class="layui-form-label red">绮鍝佺</label>
+                <div class="layui-input-block">
+                    <select name="foodVariety" style="font-weight: bold"
+                            id="foodVariety" lay-filter="select_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">璐ㄦ鏃堕棿</label>
+                <div class="layui-input-block">
+                    <input type="text" name="checkTime" 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="price" id="price"
+                           class="layui-input rkbk-search-input" placeholder="鏍规嵁绮绛夌骇甯﹀叆/鎵嬪姩褰曞叆">
+                    <em class="kccz-data-dw">鍏�/鍏枻</em>
+                </div>
+            </div>
+        </div>
+
+        <div class="layui-col-xs4">
+            <div class="layui-form-item">
+                <label class="layui-form-label red">绮绛夌骇</label>
+                <div class="layui-input-block">
+                    <select id="foodLevel" name="foodLevel" lay-filter="select_foodLevel">
+                        <option value=""></option>
+                        <option th:each="dic,dicSet:${listFoodLevel}"
+                                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">绮骞翠唤</label>
+                <div class="layui-input-block">
+                    <input type="text" name="foodYear" placeholder="璇疯緭鍏�" autocomplete="off"
+                           class="layui-input rkbk-search-input bg-date" id="foodYear">
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs4">
+            <div class="layui-form-item">
+                <label class="layui-form-label red">绮鎬ц川</label>
+                <div class="layui-input-block">
+                    <select id="foodType" name="foodType" lay-filter="select_foodType">
+                        <option value=""></option>
+                        <option th:each="dic,dicSet:${listFoodType}"
+                                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 red">鍖栭獙缁撴灉</label>
+                <div class="layui-input-block">
+                    <select name="checkStatus" id="checkStatus">
+                        <option value="NONE">鏈寲楠�</option>
+                        <option value="PASS">鍚堟牸</option>
+                        <option value="UNPASS">涓嶅悎鏍�</option>
+                    </select>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-xs12">
+            <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-xs12" style="margin-bottom: 10px">
+            <div style="padding-left: 50px; color: #2ab5ad;">
+                <span style="font-weight: bold; margin-right: 10px;">澶囨敞璇存槑锛�1.缁撴灉鍒ゅ畾锛氱郴缁熸牴鎹悇鍖栭獙椤圭粨鏋滃垽瀹氾紝鏈�鍚庡寲楠岀粨鏋滈渶鎵嬪姩閫夋嫨纭锛�2.鏍哥畻瀹氫环锛氭牴鎹寲楠岄」閰嶇疆璁$畻鐩稿叧澧炴墸浠凤紝鏈�鍚庡崟浠烽渶鎵嬪姩纭銆�</span>
+            </div>
+        </div>
+        <div class="layui-col-xs6">
+            <blockquote class="layui-elem-quote" style="width: 95%;float: left;">
+                <div>
+                    <span style="font-weight: bold; margin-right: 10px;">缁撴灉鍒ゅ畾锛�</span>
+                    <span id="check-result-tip" style="margin-right: 25px;">鍖栭獙缁撴灉锛�</span>
+                </div>
+            </blockquote>
+        </div>
+        <div class="layui-col-xs6">
+            <blockquote class="layui-elem-quote" style="width: 95%;float: right;">
+                <div>
+                    <span style="font-weight: bold; margin-right: 10px;">瀹氫环鍒ゅ畾锛�</span>
+                    <span id="check-result-tip2" style="margin-right: 25px;">鏀剁伯鍗曚环锛�#鍏�/鍏枻</span>
+                </div>
+            </blockquote>
+        </div>
+    </form>
+
+    <!-- 鍖栭獙缁撴灉淇℃伅 -->
+    <table class="layui-table tableCheckItem" id="tableCheckItem"
+           lay-filter="tableCheckItem">
+        <colgroup>
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="10%">
+            <col width="">
+        </colgroup>
+        <thead>
+        <tr class="qyzj-table-tit">
+            <th>妫�楠岄」鐩�</th>
+            <th>妫�楠屽��</th>
+            <th>鏍囧噯鍊�</th>
+            <th>鍗曚綅</th>
+            <th>鎵i噸</th>
+            <th>澧為噸</th>
+            <th>鎵d环</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>
+        <tr>
+            <td>鏅烘収鍗″彿</td>
+            <td id="resultIntelCard" style="font-weight: bold;"></td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+</html>
diff --git a/fzzy-igdss-web/src/main/resources/templates/inout/inout-register.html b/fzzy-igdss-web/src/main/resources/templates/inout/inout-register.html
new file mode 100644
index 0000000..5eebf37
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/inout-register.html
@@ -0,0 +1,739 @@
+<!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" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
+
+    <!--浣跨敤鎵撳嵃鎻掍欢 闅愯棌褰撳墠鎻掍欢 -->
+    <script th:src="@{/js/plugins/lodop/LodopFuncs.js}"></script>
+
+    <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: 400px;
+        }
+
+        .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-360 {
+            right: 360px;
+        }
+        .r-240 {
+            right: 240px;
+        }
+        .r-120 {
+            right: 120px;
+        }
+        .rkbk-search-input {
+            background: #FFF !important;
+        }
+
+        .rkbk-search-input.bg-date {
+            background: #FFF !important;
+        }
+
+        #scaleName {
+            width: 130px;
+            height: 28px;
+        }
+        .layui-table, .layui-table-view {
+            margin: 0 0;
+        }
+        .layui-table-body {
+            max-height: 350px;
+        }
+        .video {
+            width: 100%;
+            height: 100%;
+        }
+        .layui-form-radio {
+            margin: unset;
+            margin-top: 5px;
+            padding-right: unset;
+        }
+        .rk-step li {
+            width: 60px;
+            height: 40px;
+            display: inline-block;
+            margin: 0 20px;
+            position: relative;
+        }
+
+        .kccz-r-box .rkbk-tit {
+            margin: 6px 0;
+            float: left;
+            width: 5%;
+            height: 100%;
+            text-align: center;
+            margin-left: 6px;
+        }
+        .kccz-r-con {
+            height: 215px;
+            position: relative;
+            float: right;
+            width: 90%;
+            margin: 10px 0;
+        }
+        .kccz-r-vedio {
+            width: 100%;
+            height: 100%;
+            background: #dee6ec;
+        }
+        .kccz-r-item {
+            height: 235px;
+        }
+    </style>
+
+</head>
+
+<body>
+
+<div class="l-container layui-clear">
+    <div class="rk-main">
+        <div class="kccz-con">
+            <div class="kccz-left fl">
+                <div class="kccz-left-box1 radius-6">
+                    <div class="rkbk-tit">
+                        <i></i>
+                        <div>
+                            <h3 style="width: 150px; float: left;">鐧昏淇℃伅</h3>
+                            <div style="float: right;margin-top: -5px">
+                                <button class="rkbk-quick-btn layui-btn btn-blue" onclick="weight()">
+                                    <i><img th:src="@{/img/web/inout/icon-hyd.png}"/></i>姝ラ1锛氳溅鐗岃瘑鍒�
+                                </button>
+                                <button class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
+                                    <i><img th:src="@{/img/web/inout/icon-ok.png}"/></i>姝ラ2锛氱櫥璁版彁浜�
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="kccz-data-form layui-row">
+                        <form class="layui-form" action="" id="form-data-regster"
+                              lay-filter="form-data-regster">
+                            <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">
+                                    </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="userId1" id="userId1" 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="plateNum1" id="plateNum1" 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>
+                    <!--kccz-czxx-wrap end-->
+
+                </div>
+                <div class="kccz-left-box1 radius-6" style="margin-top: 10px">
+                    <div class="rkbk-tit">
+                        <i></i>
+                        <div>
+                            <h3 style="width: 150px; float: left;">绉伴噸淇℃伅</h3>
+                            <div style="float: right;">
+                                <div class="kccz-czxx-left fl">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">褰撳墠鍦扮</label>
+                                        <div class="layui-input-block">
+                                            <select name="depotId" id="scaleName" lay-filter="select_scaleName">
+                                                <option th:each="dto,weightSet:${listWeight}"
+                                                        th:value="${dto.sort}" th:text="${dto.name}"></option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="kccz-czxx-right fr">
+                                    <dl class="kccz-czxx-dl" style="padding-left: 15px;">
+                                        <dt>
+                                            <i><img id="img_scale_statule"
+                                                    th:src="@{/img/web/inout/icon-red.png}"/></i>
+                                        </dt>
+                                    </dl>
+
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="kccz-czxx-wrap">
+                        <div class="kccz-czxx-num">
+                            <span id="weightValue">0.00</span><em>KG</em>
+                        </div>
+
+                    </div>
+                    <!--kccz-czxx-wrap end-->
+
+                </div>
+                <!--kccz-left-box1 end-->
+
+                <div class="kccz-left-box2 mt-10 radius-6">
+                    <div class="rkbk-tit">
+                        <i></i>
+                        <h3>绉伴噸鏁版嵁<span id="text-param"></span></h3>
+                        <div style="float: right;margin-top: -35px">
+                            <button class="rkbk-quick-btn layui-btn" onclick="selectByHand()">
+                                <i><img th:src="@{/img/web/inout/icon-hyd.png}"/></i>閫夋嫨杞﹁締
+                            </button>
+                            <button class="rkbk-quick-btn layui-btn btn-blue" onclick="weight()">
+                                <i><img th:src="@{/img/web/inout/icon-chengzhong.png}"/></i>姝ラ1锛氱О閲嶅強鎶撴媿
+                            </button>
+                            <button class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
+                                <i><img th:src="@{/img/web/inout/icon-ok.png}"/></i>姝ラ2锛氬畬鎴愮О閲�
+                            </button>
+                            <button class="rkbk-quick-btn layui-btn btn-blue" onclick="printBill()">
+                                <i><img th:src="@{/img/web/inout/icon-dayin.png}"/></i>姝ラ3锛氭墦鍗拌繃纾呭崟
+                            </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>
+                    <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="id">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="progress">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="type">
+                            </div>
+                            <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">
+                                <input type="text" name="foodType">
+                            </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 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">
+                                        <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="userName" placeholder="鑷姩甯﹀叆锛屼笉鍙紪杈�" class="layui-input"
+                                               disabled>
+                                    </div>
+                                </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="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">韬唤璇佸彿</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">
+                                        <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">姘村垎</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">鎵i噸</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">鍗曚环</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">鏉傝川</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>
+                        </form>
+                    </div>
+                </div>
+                <!--kccz-left-box2 end-->
+
+            </div>
+            <!--kccz-left end-->
+            <div class="kccz-right fr">
+                <ul class="rk-step" style="background-color: #FFFFFF;border-radius: 6px;margin-bottom: 10px;padding: 10px 0;">
+                    <li id="progress-register" class="active rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
+                        </span>
+                        <p>鍏ュ簱鐧昏</p>
+                    </li>
+                    <li id="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="">
+                        <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>
+                    </li>
+                </ul>
+                <div class="kccz-r-item radius-6">
+                    <div class="kccz-r-box">
+                        <div class="rkbk-tit">
+                            <i style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞︾墝璇嗗埆瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video1">
+                            </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 style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞﹂《鎶撴媿瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video2">
+
+
+                            </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 style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞﹀熬鎶撴媿瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video3">
+
+
+                            </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 progress = [[${progress}]];
+    var deptId = [[${deptId}]];
+    var listDepot = [[${listDepot}]];
+    var weightEditTag = [[${weightEditTag}]];
+    //userId
+    var userId = [[${loginUser.loginName}]];
+    //鍑哄叆搴撶被鍨�
+    var type = [[${type}]];
+    var companyId = [[${loginUser.companyId}]];
+
+    //鍦扮淇℃伅
+    var weightDto = [[${weightDto}]];
+
+    //杩囩▼鎽勫儚澶�
+    var snapDto1 = [[${snapDto1}]];
+    var snapDto2 = [[${snapDto2}]];
+    var snapDto3 = [[${snapDto3}]];
+
+</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-print.js}"></script>
+<script th:src="@{/inout/video-play.js}"></script>
+<script th:src="@{/inout/weight.js}"></script>
+<script th:src="@{/inout/inout-register.js}"></script>
+
+</body>
+
+<!-- 寮瑰嚭閫氱煡鍗� -->
+<div class="layui-tab-content" id="listNotice" style="display: none;">
+    <table class="layui-table" lay-skin="nob" id="tableNotice"
+           lay-filter="tableNotice" style="margin: 0px;"></table>
+</div>
+
+<!-- 寮瑰嚭绮浜у湴 -->
+<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="checkDetail" style="display: none;">
+    <!-- 鍖栭獙缁撴灉淇℃伅 -->
+    <table class="layui-table tableCheckItem" id="tableCheckItem"
+           lay-filter="tableCheckItem">
+        <colgroup><col><col><col><col><col><col><col><col><col><col>
+        </colgroup>
+        <thead>
+        <tr class="qyzj-table-tit">
+            <th>妫�楠岄」鐩�</th>
+            <th>妫�楠屽��</th>
+            <th>鏍囧噯鍊�</th>
+            <th>鍗曚綅</th>
+            <th>鎵i噸</th>
+            <th>澧為噸</th>
+            <th>鎵d环</th>
+            <th>澧炰环</th>
+            <th>妫�楠岀粨鏋�</th>
+            <th>澶囨敞</th>
+        </tr>
+        </thead>
+        <tbody>
+        </tbody>
+    </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>
+        </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>
+        <tr>
+            <td>鏅烘収鍗″彿</td>
+            <td id="resultIntelCard" style="font-weight: bold;"></td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+
+<script type="text/html" id="toolbarFoodLocaton">
+    <div class="">
+        <div class="layui-col-xs6">
+            <input type="text" id="key2" placeholder="杈撳叆缂栫爜鎴栬�呭悕绉扳�︹��" class="layui-input">
+        </div>
+        <div class="layui-col-xs6" style="padding-left: 10px;">
+            <button class="layui-btn layui-btn-sm" onclick="flushFoodLocation()">鏌ヨ</button>
+        </div>
+    </div>
+</script>
+
+<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/inout-weight.html b/fzzy-igdss-web/src/main/resources/templates/inout/inout-weight.html
new file mode 100644
index 0000000..b7abdb7
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/inout/inout-weight.html
@@ -0,0 +1,684 @@
+<!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" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
+    <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
+
+    <!--浣跨敤鎵撳嵃鎻掍欢 闅愯棌褰撳墠鎻掍欢 -->
+    <script th:src="@{/js/plugins/lodop/LodopFuncs.js}"></script>
+
+    <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-360 {
+            right: 360px;
+        }
+        .r-240 {
+            right: 240px;
+        }
+        .r-120 {
+            right: 120px;
+        }
+        .rkbk-search-input {
+            background: #FFF !important;
+        }
+
+        .rkbk-search-input.bg-date {
+            background: #FFF !important;
+        }
+
+        #scaleName {
+            width: 130px;
+            height: 28px;
+        }
+        .layui-table, .layui-table-view {
+            margin: 0 0;
+        }
+        .layui-table-body {
+            max-height: 350px;
+        }
+        .video {
+            width: 100%;
+            height: 100%;
+        }
+        .layui-form-radio {
+            margin: unset;
+            margin-top: 5px;
+            padding-right: unset;
+        }
+
+        .kccz-r-box .rkbk-tit {
+            margin: 6px 0;
+            float: left;
+            width: 5%;
+            height: 100%;
+            text-align: center;
+            margin-left: 6px;
+        }
+        .kccz-r-con {
+            height: 215px;
+            position: relative;
+            float: right;
+            width: 90%;
+            margin: 10px 0;
+        }
+        .kccz-r-vedio {
+            width: 100%;
+            height: 100%;
+            background: #dee6ec;
+        }
+        .kccz-r-item {
+            height: 235px;
+        }
+    </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 btn-blue"
+                        onclick="weight()">
+                    <i><img th:src="@{/img/web/inout/icon-chengzhong.png}"/></i>姝ラ1锛氱О閲嶇‘璁ゅ強鎶撴媿
+                </button>
+                <button class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
+                    <i><img th:src="@{/img/web/inout/icon-ok.png}"/></i>姝ラ2锛氬畬鎴愮О閲�
+                </button>
+                <button class="rkbk-quick-btn layui-btn btn-blue" onclick="printBill()">
+                    <i><img th:src="@{/img/web/inout/icon-dayin.png}"/></i>姝ラ3锛氭墦鍗拌繃纾呭崟
+                </button>
+                <button class="rkbk-quick-btn layui-btn" onclick="showCheck()">
+                    <i><img th:src="@{/img/web/inout/icon-hyd.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">
+                    <li id="progress-register" class="active rk-step-first">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-dengji.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="">
+                        <span class="rk-step-span">
+                            <img th:src="@{/img/web/inout/icon-chengzhong.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-box1 radius-6">
+                    <div class="rkbk-tit">
+                        <i></i>
+                        <div>
+                            <h3 style="width: 150px; float: left;">绉伴噸淇℃伅</h3>
+                            <div style="float: right;">
+                                <div class="kccz-czxx-left fl">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">褰撳墠鍦扮</label>
+                                        <div class="layui-input-block">
+                                            <select name="depotId" id="scaleName" lay-filter="select_scaleName">
+                                                <option th:each="dto,weightSet:${listWeight}"
+                                                        th:value="${dto.sort}" th:text="${dto.name}"></option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="kccz-czxx-right fr">
+                                    <dl class="kccz-czxx-dl" style="padding-left: 15px;">
+                                        <dt>
+                                            <i><img id="img_scale_statule"
+                                                    th:src="@{/img/web/inout/icon-red.png}"/></i>
+                                        </dt>
+                                    </dl>
+
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="kccz-czxx-wrap">
+                        <div class="kccz-czxx-num">
+                            <span id="weightValue">0.00</span><em>KG</em>
+                        </div>
+
+                    </div>
+                    <!--kccz-czxx-wrap end-->
+
+                </div>
+                <!--kccz-left-box1 end-->
+
+                <div class="kccz-left-box2 mt-10 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="id">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="progress">
+                            </div>
+                            <div class="layui-form-item display-none">
+                                <input type="text" name="type">
+                            </div>
+                            <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">
+                                <input type="text" name="foodType">
+                            </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 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">
+                                        <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="userName" placeholder="鑷姩甯﹀叆锛屼笉鍙紪杈�" class="layui-input"
+                                               disabled>
+                                    </div>
+                                </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="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">韬唤璇佸彿</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">
+                                        <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">姘村垎</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">鎵i噸</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">鍗曚环</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">鏉傝川</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>
+                        </form>
+                    </div>
+                </div>
+                <!--kccz-left-box2 end-->
+
+            </div>
+            <!--kccz-left end-->
+            <div class="kccz-right fr">
+                <div class="kccz-r-item radius-6">
+                    <div class="kccz-r-box">
+                        <div class="rkbk-tit">
+                            <i style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞︾墝璇嗗埆瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video1">
+                            </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 style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞﹂《鎶撴媿瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video2">
+
+
+                            </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 style="margin: 8px 3px 0 3px"></i>
+                            <h3>杞﹀熬鎶撴媿瑙嗛</h3>
+                        </div>
+                        <div class="kccz-r-con">
+                            <div class="kccz-r-vedio" id="kccz-r-video3">
+
+
+                            </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 progress = [[${progress}]];
+    var deptId = [[${deptId}]];
+    var listDepot = [[${listDepot}]];
+    //涓氬姟姝ラ
+    var bizType = [[${bizType}]];
+    var weightEditTag = [[${weightEditTag}]];
+    //userId
+    var userId = [[${loginUser.loginName}]];
+    //鍑哄叆搴撶被鍨�
+    var type = [[${type}]];
+    var companyId = [[${loginUser.companyId}]];
+    //鍝佺
+    var listFoodVariety = [[${listFoodVariety}]];
+
+    //鍦扮淇℃伅
+    var weightDto = [[${weightDto}]];
+
+    //杩囩▼鎽勫儚澶�
+    var snapDto1 = [[${snapDto1}]];
+    var snapDto2 = [[${snapDto2}]];
+    var snapDto3 = [[${snapDto3}]];
+    var gateDto = [[${gateDto}]];
+    //鏅烘収鍗�
+    var cardDto = [[${cardDto}]];
+
+    var ship = null; //鏄惁鑸硅繍椤甸潰鏍囪瘑
+</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-print.js}"></script>
+<script th:src="@{/inout/video-play.js}"></script>
+<script th:src="@{/inout/weight.js}"></script>
+<script th:src="@{/web/inout/inout-weight.js}"></script>
+
+</body>
+
+<!-- 寮瑰嚭閫氱煡鍗� -->
+<div class="layui-tab-content" id="listNotice" style="display: none;">
+    <table class="layui-table" lay-skin="nob" id="tableNotice"
+           lay-filter="tableNotice" style="margin: 0px;"></table>
+</div>
+
+<!-- 寮瑰嚭绮浜у湴 -->
+<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="checkDetail" style="display: none;">
+    <!-- 鍖栭獙缁撴灉淇℃伅 -->
+    <table class="layui-table tableCheckItem" id="tableCheckItem"
+           lay-filter="tableCheckItem">
+        <colgroup><col><col><col><col><col><col><col><col><col><col>
+        </colgroup>
+        <thead>
+        <tr class="qyzj-table-tit">
+            <th>妫�楠岄」鐩�</th>
+            <th>妫�楠屽��</th>
+            <th>鏍囧噯鍊�</th>
+            <th>鍗曚綅</th>
+            <th>鎵i噸</th>
+            <th>澧為噸</th>
+            <th>鎵d环</th>
+            <th>澧炰环</th>
+            <th>妫�楠岀粨鏋�</th>
+            <th>澶囨敞</th>
+        </tr>
+        </thead>
+        <tbody>
+        </tbody>
+    </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>
+        </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>
+        <tr>
+            <td>鏅烘収鍗″彿</td>
+            <td id="resultIntelCard" style="font-weight: bold;"></td>
+        </tr>
+        </tbody>
+    </table>
+</div>
+
+<script type="text/html" id="toolbarFoodLocaton">
+    <div class="">
+        <div class="layui-col-xs6">
+            <input type="text" id="key2" placeholder="杈撳叆缂栫爜鎴栬�呭悕绉扳�︹��" class="layui-input">
+        </div>
+        <div class="layui-col-xs6" style="padding-left: 10px;">
+            <button class="layui-btn layui-btn-sm" onclick="flushFoodLocation()">鏌ヨ</button>
+        </div>
+    </div>
+</script>
+
+<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/register.html b/fzzy-igdss-web/src/main/resources/templates/register.html
index f3a2c62..7bb3ac5 100644
--- a/fzzy-igdss-web/src/main/resources/templates/register.html
+++ b/fzzy-igdss-web/src/main/resources/templates/register.html
@@ -75,6 +75,6 @@
 <script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
 <script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
 <script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=4.7.8}"></script>
-<script src="../static/ruoyi/register.js" th:src="@{/ruoyi/register.js}"></script>
+<script src="../static/ruoyi/register.js" th:src="@{/ruoyi/inout-register.js}"></script>
 </body>
 </html>

--
Gitblit v1.9.3