czt
9 天以前 52ea5fd92596267379be7924deb27de6cb10632b
称重及值仓页面及逻辑
已重命名2个文件
已添加20个文件
已修改17个文件
4273 ■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/task/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDept.view.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/bstek/dorado/core/DoradoAbout.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/banner.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-check.js 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-register.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js 526 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js 592 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/weight.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/check.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/handle.html 632 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/register.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/weight.html 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/weight2.html 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/bill/InoutBill.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.fzzy.igds.bill;
/**
 * @Description å‡ºå…¥åº“的表单模版
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
public class InoutBill {
    /**
     * é»˜è®¤å…¥åº“过磅单
     */
    public static String IN_WEIGHT_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>入库过磅单</title><style>body {text-align: center;padding: 10px}  .tit {margin: 10px;font-size: 24px;font-family: '宋体';padding-top: 15px}  .div-tit {padding-top: 10px}  table {width: 100%;border-right: 1px solid;border-bottom: 1px solid;font-size: 14px}  table td {border-left: 1px solid;border-top: 1px solid;height: 38px}  .sp1 {width: 50%;float: left;padding-bottom: 10px}  .sp2 {width: 25%;float: left;text-align: center}</style></head><body><h1 class='tit'>billTitle</h1><div id=\"print_main\" class='div-tit'><span class='sp1'>完成时间:<a>completeTime</a></span><span class='sp1'>单号:serId</span></div><table cellspacing='0' cellpadding='0'><tr><td width='12.5%'>发货单位</td><td colspan='3' width='37.5%'>customerName</td><td width='12.5%'>收货单位</td><td colspan='3' `width`='37.5%'>deptName</td></tr><tr><td width='12.5%'>承运人</td><td width='12.5%'>driverName</td><td width='12.5%'>粮食品种</td><td width='12.5%'>foodVariety</td><td width='12.5%'>装卸仓库</td><td width='12.5%'>depotName</td><td width='12.5%'>粮食产地</td><td width='12.5%'>foodLocation</td></tr><tr><td>承运车牌</td><td>plateNum</td><td>毛重(KG)</td><td>fullWeight</td><td>皮重(KG)</td><td>emptyWeight</td><td>净重(KG)</td><td>netWeight</td></tr><tr><td>质检扣重(KG)</td><td>deCheck</td><td>质检增重(KG)</td><td>addCheck</td><td>值仓扣重(KG)</td><td>deHandle</td><td>其他扣重(KG)</td><td>deOther</td></tr><tr><td>质检结果</td><td colspan='3'>checkStatus</td><td>入库重量(KG)</td><td>recordWeight</td><td>结算重量(KG)</td><td>settleWeight</td></tr><tr><td>备注</td><td colspan='7'>remark</td></tr></table><div class='div-tit'><span class='sp2'>司磅员:</span><span class='sp2'>监磅员:</span><span class='sp2'>保管员:handleUser</span><span class='sp2'>承运人:driverName</span></div></br><div style=\"padding-top: 10px\"><span></span></div><div style=\"text-align: left;font-size: 12px\"><span>注:</span></div><div style=\"text-align: left;font-size: 12px\"><span>1.净重=毛重-皮重;质检增扣重根据质检详细填写;</span></div><div style=\"text-align: left;font-size: 12px\"><span>2.入库重量=净重-扣重;结算重量=入库重量+质检增重;</span></div><div style=\"text-align: left;font-size: 12px\"><span>3.白联(存根),红联(记账),黄联(客户保留)</span></div></body></html>";
    /**
     * é»˜è®¤å‡ºåº“过磅单
     */
    public static String OUT_WEIGHT_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>出库称重单</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'宋体';padding-top:15px}.div-tit{padding-top:10px}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:25%;float:left;text-align:center}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>完成时间:completeTime</span><span class='sp1'>出库单号:serId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>发货单位</td><td colspan='3'width='37.5%'>deptName</td><td width='12.5%'>收货单位</td><td colspan='3'width='37.5%'>customerName</td></tr><tr><td width='12.5%'>承运人</td><td width='12.5%'>driverName</td><td width='12.5%'>粮食品种</td><td width='12.5%'>foodVariety</td><td width='12.5%'>出库仓库</td><td width='12.5%'>depotName</td><td width='12.5%'>粮食产地</td><td width='12.5%'>foodLocation</td></tr><tr><td>承运车牌</td><td>plateNum</td><td>毛重(KG)</td><td>fullWeight</td><td>皮重(KG)</td><td>emptyWeight</td><td>净重(KG)</td><td>netWeight</td></tr><tr><td>其他扣重(KG)</td><td>deOther</td><td>值仓扣重(KG)</td><td>deHandle</td><td>出库重量(KG)</td><td>recordWeight</td><td>结算重量(KG)</td><td>settleWeight</td></tr><tr><td>备注</td><td colspan='7'>remark</td></tr></table><div class='div-tit'><span class='sp2'>司磅员:</span><span class='sp2'>监磅员:</span><span class='sp2'>保管员:handleUser</span><span class='sp2'>承运人:driverName</span></div><br></body><div style=\"padding-top: 10px\"><span></span></div><div style=\"text-align: left;font-size: 12px\"><span>注:</span></div><div style=\"text-align: left;font-size: 12px\"><span>1.净重=毛重-皮重;</span></div><div style=\"text-align: left;font-size: 12px\"><span>2.出库重量=净重-总扣重;结算重量=净重-总扣重;</span></div><div style=\"text-align: left;font-size: 12px\"><span>3.白联(存根),红联(记账),黄联(客户保留)</span></div></html>";
    /**
     * é»˜è®¤ç»“算单
     */
    public static String IN_SETTLE_DEFAULT = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type'content='text/html;charset=UTF-8'><title>入库过磅单</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'宋体';padding-top:15px}.div-tit{padding-top:10px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:50%;float:left;padding-bottom:10px}.sp2{width:50%;float:left;text-align:center}</style></head><body><h1 class='tit'>billTitle</h1><div class='div-tit'><span class='sp1'>结算时间:payTime</span><span class='sp1'>入库单号:serId</span></div><table cellspacing='0'cellpadding='0'><tr><td width='12.5%'>发货单位</td><td colspan='3'width='37.5%'>customerName</td><td width='12.5%'>收货单位</td><td colspan='3'width='37.5%'>deptName</td></tr><tr><td width='12.5%'>开户银行</td><td colspan='3'width='37.5%'>bank</td><td>毛重(KG)</td><td>fullWeight</td><td>皮重(KG)</td><td>emptyWeight</td></tr><tr><td width='12.5%'>银行卡号</td><td colspan='3'width='37.5%'>banNum</td><td>净重(KG)</td><td>netWeight</td><td>总扣重(KG)</td><td>deSum</td></tr><tr><td>入库仓库</td><td>depotName</td><td>粮食品种</td><td>foodVariety</td><td>粮食单价</td><td>payPrice</td><td>结算重量</td><td>settleWeight</td></tr><tr><td>保管员</td><td>keeperName</td><td>承运人</td><td>driverName</td><td>其他费用</td><td>otherSum</td><td>结算费用</td><td>paySum</td></tr><tr><td>备注</td><td colspan='3'>remark</td><td>大写金额</td><td colspan='3'>moneyName</td></tr></table><div class='div-tit'><span class=\"sp2\">收货单位签字:</span><span class=\"sp2\">客户签字:</span></div></body></html>";
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.fzzy.igds.data;
import lombok.Data;
import java.io.Serializable;
/**
 * @Description èŽ·å–ç›‘æŽ§æ’­æ”¾ä¿¡æ¯å°è£…ç±»
 * @Author CZT
 * @Date 2024/12/11 10:10
 */
@Data
public class ApiCameraData implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * ç»„织编码
     */
    private String companyId;
    /**
     * åˆ†åº“编码
     */
    private String deptId;
    /**
     * ç›‘控ID
     */
    private String cameraId;
    /**
     * ç›‘控名称
     */
    private String cameraName;
    /**
     * IP
     */
    private String ip;
    /**
     * æŽ§åˆ¶ç«¯å£
     */
    private Integer controlPort;
    /**
     * æ’­æ”¾æ–¹å¼
     */
    private String playType;
    /**
     * æŠ“拍方式
     **/
    private String snapType;
    /**
     * ç›‘控SN
     */
    private String sn;
    /**
     * é€šé“号
     */
    private Integer channel;
    /**
     * ç™»å½•名
     */
    private String loginId;
    /**
     * å¯†ç 
     */
    private String pwd;
    /**
     * äº‘台速度
     */
    private int speed = 129;//速度(0-255 é»˜è®¤129)
    /**
     * äº‘台控制命令 1=上,2=下,3=左,4=右,5=左上,6=左下,7=右上,8=右下,0=停止,9=变倍小,10 = å˜å€åŠ 
     * é¢„置位命令 1=设置,2=执行,3=删除
     */
    private String command;
    /**
     * é¢„置位编号1~255
     */
    private String preset;
    /**
     * RTSP地址
     */
    private String mediaAddr;
    /**
     * å†…网播放地址
     */
    private String urlIn;
    /**
     * å¤–网播放地址
     */
    private String urlOut;
    /**
     * è¯·æ±‚æ–¹IP,用于判断是内网播放,还是外网播放
     */
    private String requireIp;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiCameraResp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.fzzy.igds.data;
import lombok.Data;
/**
 * @Description è§†é¢‘播放封装信息
 * @Author CZT
 * @Date 2024/12/11 09:59
 */
@Data
public class ApiCameraResp {
    public static String CODE_SUCCESS = "SUCCESS";
    public static String CODE_ERROR = "ERROR";
    private String code = CODE_SUCCESS;
    private String msg;
    /**
     * æ’­æ”¾ä¿¡æ¯
     */
    private String cameraId;  //监控ID
    private String cameraName;  //视频名称
    private String playUrl;  //播放地址
    private String playType; //播放方式
    private String snapType; //播放方式
    private String appkey; //安防平台appKey
    private String secret; //安防平台秘钥
    private String ip;     //设备IP
    private Integer port;   //设备端口
    private String sn;     //设备序列号
    /**
     * æŠ“拍附件名称
     */
    private String fileName;
    public ApiCameraResp() {
    }
    public ApiCameraResp(String playUrl) {
        this.code = CODE_SUCCESS;
        this.msg = "成功";
        this.playUrl = playUrl;
    }
    public ApiCameraResp(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public ApiCameraResp(String appkey, String secret, String ip, Integer port, String sn) {
        this.code = CODE_SUCCESS;
        this.msg = "成功";
        this.appkey = appkey;
        this.secret = secret;
        this.ip = ip;
        this.port = port;
        this.sn = sn;
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/ApiInoutData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
package com.fzzy.igds.data;
import com.fzzy.igds.domain.InoutConf;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * å‡ºå…¥åº“流程过程中,车牌失败,读卡器等设备的公共参数和传递对象
 */
@Data
public class ApiInoutData implements Serializable {
    private static final long serialVersionUID = 1L;
    private String id;
    private String companyId;
    private String deptId;
    /**
     * å‡ºå…¥åº“配套序号
     */
    private String sort = "1";
    /**
     * è®¾å¤‡åç§°
     */
    private String name;
    /**
     * è®¾å¤‡åºåˆ—号/设备编码
     */
    private String sn;
    private String ip;
    private Integer port;
    private String loginId;
    private String pwd;
    private int chanNum = 1;
    private Integer portCtrl;
    private String type;
    private String status;
    private String protocol;
    private String playType;
    private String snapType;
    /**
     * è½¦ç‰Œè¯†åˆ«æŠ“拍-适用于风正致远API-HTTP协议
     */
    private String plateSnapType;
    private String mediaAddr;
    private String videoPath;
    private String videoName;
    private String errorMsg = "ERROR";
    // è½¦ç‰Œå·
    private String plateNum;
    // ç”¨æˆ·Id
    private String userId;
    private Date time = new Date();
    //信息
    private String msg;
    //信息播放次数
    private int repeat = 1;
    //智慧卡号
    private String icCardNo;
    //称重信息
    private double weight = 0.0;
    //动作编码:0=关闭/红灯,1=打开/路灯
    private String actionCode;
    //设备编号
    private int deviceCode;
    public ApiInoutData() {
        super();
    }
    public ApiInoutData(InoutConf conf) {
        this.id = conf.getId();
        this.companyId = conf.getCompanyId();
        this.deptId = conf.getDeptId();
        this.sort = conf.getSort();
        this.name = conf.getName();
        this.sn = conf.getSn();
        this.ip = conf.getIp();
        this.port = conf.getPort();
        this.loginId = conf.getLoginId();
        this.pwd = conf.getPwd();
        this.chanNum = conf.getChanNum();
        this.portCtrl = conf.getPortCtrl();
        this.type = conf.getType();
        this.status = conf.getStatus();
        this.protocol = conf.getProtocol();
        this.playType = conf.getPlayType();
        this.snapType = conf.getSnapType();
        this.mediaAddr = conf.getMediaAddr();
        this.deviceCode = conf.getInOrder();
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutCameraDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.fzzy.igds.data;
import com.fzzy.igds.domain.InoutConf;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
 * å‡ºå…¥åº“视频
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class InoutCameraDto extends InoutConf implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * è§†é¢‘播放地址,根据不同的播放方式生成不同的播放地址
     */
    private String playAddr;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.fzzy.igds.data;
import com.fzzy.igds.domain.FileInfo;
import com.fzzy.igds.domain.InoutRecord;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
 * @Description
 * @Author CZT
 * @Date 2025/12/4 14:04
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class InoutData extends InoutRecord implements Serializable {
    //提交的相关附件信息,例如照片。
    private List<FileInfo> files;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java
@@ -19,6 +19,8 @@
    private String progress;
    private String progressTag; //表示未完成的单据
    private String weightTag;
    private String type;
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutPrintBill.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.fzzy.igds.data;
import lombok.Data;
import java.io.Serializable;
/**
 * ç§°é‡å•信息封装
 *
 * @author chen
 */
@Data
public class InoutPrintBill implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private String billTitle = "称重单";
    private String companyId = "";
    //登记时间
    private String registerTime = "";
    //完成时间
    private String completeTime = "";
    //完成时间
    private String fullTime = "";
    //完成时间
    private String emptyTime = "";
    //流水单号
    private String serId = "";
    //往来单位(入库为发货单位,出库为收货单位)
    private String customerName = "";
    //往来单位(出库为发货单位,入库为收货单位)
    private String unitName = "";
    private String noticeId = "";
    private String deptId = "";
    private String deptName = "";
    private String weightUser = "";//称重人
    private String keeperUser = "";//保管员
    //承运人
    private String driverName = "";
    private String userId = "";
    private String userContact = "";
    private String userAddress = "";
    //粮食品种
    private String foodVariety = "";
    //仓库名称
    private String depotName = "";
    //粮食产地
    private String foodLocation = "";
    private String foodLevel = "";
    //承运车牌
    private String plateNum = "";
    //毛重
    private double fullWeight = 0.0;
    //皮重
    private double emptyWeight = 0.0;
    //净重
    private double netWeight = 0.0;
    //质检扣重
    private double deCheck = 0.0;
    //质检增重
    private double addCheck = 0.0;
    //包装扣重
    private double dePackage = 0.0;
    //质检结果
    private String checkStatus;
    //入库重量
    private double recordWeight = 0.0;
    //水分增扣重
    private double deWet = 0.0;
    //杂质增扣重
    private double deImpurity = 0.0;
    //水分
    private String wet = "";
    //杂质
    private String impurity = "";
    //值仓扣重
    private double deHandle = 0.0;
    //其他扣重
    private double deOther = 0.0;
    //总扣重
    private double deSum = 0.0;
    //结算金额
    private String settleMoney = "";
    //结算重量
    private double settleWeight = 0.0;
    //单价
    private String price = "";
    //大写金额
    private String moneyName = "";
    //备注
    private String remark = "";
    //保管员
    private String handleUser = "";
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/SnapImgDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.fzzy.igds.data;
import com.fzzy.igds.constant.Constant;
import lombok.Data;
/**
 * @Description æŠ“拍对象封装,支持出入库和系统配置
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@Data
public class SnapImgDto {
    private String companyId;
    private String deptId;
    //外键ID--用于保存文件数据库使用
    private String bizId;
    // ä¸šåŠ¡ç¬¬äºŒä¸ªæ ‡ç­¾
    private String progress;
    //业务类型
    private String bizType = Constant.TYPE_IN;
    //出入库车牌号
    private String plateNum;
    //配置信息ID1
    private String id1;
    //配置信息ID2
    private String id2;
    //配置信息ID2
    private String id3;
    private String fileName1;
    private String fileName2;
    private String fileName3;
    private String sort;
    private double weight;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/FileInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.fzzy.igds.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @Description é™„件信息
 * @Author CZT
 * @Date 2025/12/4 13:56
 */
@Data
@Entity
@Table(name = "d_file")
@TableName("d_file")
@EqualsAndHashCode(callSuper = false)
public class FileInfo extends BizBaseEntity implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '附件ID'")
    @TableField("id")
    private String fileId;
    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '所属库区'")
    @TableField("dept_id")
    private String deptId;
    @Column(name = "biz_id", columnDefinition = "varchar(40) COMMENT '业务ID'")
    @TableField("biz_id")
    private String bizId;
    @Column(name = "biz_tag", columnDefinition = "varchar(40) COMMENT '业务标签'")
    @TableField("biz_tag")
    private String bizTag;
    @Column(name = "file_name", columnDefinition = "varchar(200) COMMENT '文件路径及名称'")
    @TableField("file_name")
    private String fileName;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/Patrol.java
@@ -11,12 +11,6 @@
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @Description ç”µå­å·¡é€»è®°å½•主表
 * @Author sgj
 * @Date 2025/12/04 11:38
 */
@Data
@Entity
@Table(name = "d_patrol")
@@ -29,29 +23,20 @@
     */
    private static final long serialVersionUID = 1L;
    //生成规则 å¹´æœˆæ—¥
    @Id
    @Column(name = "id", columnDefinition = "varchar(40) COMMENT '主键'")
    @TableField("id")
    private String id;
    @Id
    @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '班次编号'")
    @TableField("batch_id")
    private String batchId;
    @Id
    @Column(name = "user_id", columnDefinition = "varchar(40) COMMENT '巡逻人账号'")
    @TableField("user_id")
    private String userId;
    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '巡逻人'")
    @TableField("user_name")
    private String userName;
    @Column(name = "dept_id", columnDefinition = "varchar(40) COMMENT '所属库区'")
    @TableField("dept_id")
    private String deptId;
    @Column(name = "batch_id", columnDefinition = "varchar(40) COMMENT '班次编号'")
    @TableField("batch_id")
    private String batchId;
    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '巡逻人'")
    @TableField("user_name")
    private String userName;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolConf.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,13 +10,7 @@
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description ç”µå­å·¡é€»é…ç½®
 * @Author sgj
 * @Date 2025/12/04 11:38
 */
@Data
@Entity
@Table(name = "d_patrol_conf")
@@ -39,15 +32,8 @@
    @TableField("batch_name")
    private String batchName;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "start_time", columnDefinition = "datetime COMMENT '巡逻开始时间'")
    @TableField("start_time")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "end_time", columnDefinition = "datetime COMMENT '巡逻结束时间'")
    @TableField("end_time")
    private Date endTime;
    @Column(name = "user_name", columnDefinition = "varchar(40) COMMENT '巡逻人'")
    @TableField("user_name")
    private String userName;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/PatrolRecord.java
@@ -2,14 +2,16 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description ç”µå­å·¡é€»è®°å½•子表
 * @Description ç”µå­å·¡é€»
 * @Author CZT
 * @Date 2025/11/25 19:38
 */
@@ -40,6 +42,11 @@
    @TableField("point_name")
    private String pointName;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "create_time", columnDefinition = "datetime COMMENT '巡逻时间'")
    @TableField("create_time")
    private Date createTime;
    @Column(name = "longitude", columnDefinition = "decimal(20,6) COMMENT '经度'")
    @TableField("longitude")
    private String longitude;
@@ -51,11 +58,16 @@
    /**
     * --------鸟瞰图信息--------
     **/
    @Column(name = "img_id", columnDefinition = "varchar(50) COMMENT '巡更照片'")
    @TableField("img_id")
    private String imgId;
    @Column(name = "file_name", columnDefinition = "varchar(50) COMMENT '巡更照片'")
    @TableField("file_name")
    private String imgName;
    //巡更照片全路径
    @Transient
    private String imgPath;
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
@@ -68,6 +68,16 @@
    }
    /**
     * æ ¹æ®ID查询库区信息
     * @param id
     * @return
     */
    public Dept getDeptById(String id) {
        return coreDeptMapper.selectById(id);
    }
    /**
     * æ–°å¢žæˆ–更新库区信息
     * @param sysDept
     * @param isAdd
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.fzzy.igds.service;
import com.ruoyi.common.config.FrameworkConfig;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;
import java.io.File;
import java.util.Date;
/**
 * @Description
 * @Author CZT
 * @Date 2025/12/4 17:36
 */
@Service
public class FileService {
    /**
     * èŽ·å–å‡ºå…¥åº“æ–‡ä»¶è·¯å¾„
     * @param date
     * @return
     */
    public String getInoutFilePath(Date date) {
        if (null == date) date = new Date();
        String basePath = FrameworkConfig.getProfile() + "INOUT/" + DateFormatUtils.format(date, "yyyyMM") + "/";
        File file = new File(basePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return basePath;
    }
    /**
     * èŽ·å–åº“åŒºè·¯å¾„ä¸‹æ–‡ä»¶
     * @param companyId
     * @return
     */
    public String getDeptFilePath(String companyId) {
        if (StringUtils.isEmpty(companyId)){
            companyId = FrameworkConfig.getCompanyId();
        }
        String basePath = FrameworkConfig.getProfile() + "IMG/"+ companyId + "/SECURITY/";
        File file = new File(basePath);
        if (!file.exists()) {
            file.mkdirs();
        }
        return basePath;
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -38,6 +38,12 @@
     * @param param
     */
    public void listPageInout(Page<InoutRecord> page, InoutParam param) {
        if(StringUtils.isBlank(param.getCompanyId())){
            param.setCompanyId(ContextUtil.getCompanyId());
        }
        if(StringUtils.isBlank(param.getDeptId())){
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
        inoutRecordMapper.selectPage(page, queryWrapper);
    }
@@ -47,7 +53,14 @@
     * @param param
     */
    public List<InoutRecord> listInout(InoutParam param) {
        if(StringUtils.isBlank(param.getCompanyId())){
            param.setCompanyId(ContextUtil.getCompanyId());
        }
        if(StringUtils.isBlank(param.getDeptId())){
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
        return inoutRecordMapper.selectList(queryWrapper);
    }
@@ -57,16 +70,32 @@
     */
    public QueryWrapper<InoutRecord> getQueryWrapper(InoutParam param) {
        QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
        param.setCompanyId(ContextUtil.getCompanyId());
        param.setDeptId(ContextUtil.subDeptId(null));
        queryWrapper.eq("company_id", param.getCompanyId());
        queryWrapper.eq("dept_id", param.getDeptId());
        if (StringUtils.isNotBlank(param.getCompanyId())) {
            queryWrapper.eq("company_id", param.getCompanyId());
        }
        if (StringUtils.isNotBlank(param.getDeptId())) {
            queryWrapper.eq("dept_id", param.getDeptId());
        }
        if (StringUtils.isNotBlank(param.getCustomerName())) {
            queryWrapper.like("customer_name", param.getCustomerName());
        }
        if (StringUtils.isNotBlank(param.getId())) {
            queryWrapper.eq("id", param.getId());
        }
        if (StringUtils.isNotBlank(param.getPlateNum())) {
            queryWrapper.eq("plate_num", param.getPlateNum());
        }
        if (StringUtils.isNotBlank(param.getWeightTag())) {
            //查询待称重的
            queryWrapper.likeRight("progress", param.getWeightTag());
        }
        if (StringUtils.isNotBlank(param.getProgressTag())) {
            //未完成的
            queryWrapper.ne("progress", param.getProgressTag());
        }
        if (StringUtils.isNotBlank(param.getProgress())) {
            queryWrapper.eq("progress", param.getProgress());
        }
        if (StringUtils.isNotBlank(param.getFoodVariety())) {
            queryWrapper.eq("food_variety", param.getFoodVariety());
@@ -94,16 +123,17 @@
    /**
     * æ ¹æ®id查询数据
     * @param id
     * æŸ¥è¯¢æ•°æ®
     * @param param
     * @return
     */
    public InoutRecord selectById(String id) {
        if(StringUtils.isBlank(id)){
            return null;
    public InoutRecord selectOne(InoutParam param) {
        if(StringUtils.isBlank(param.getCompanyId())){
            param.setCompanyId(ContextUtil.getCompanyId());
        }
        return inoutRecordMapper.selectById(id);
        QueryWrapper<InoutRecord> queryWrapper = getQueryWrapper(param);
        return inoutRecordMapper.selectOne(queryWrapper);
    }
    /**
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/NumberUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.fzzy.igds.utils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
/**
 * æ•°å­—格式化工具类
 */
public class NumberUtil {
    /**
     * å¯¹double类型的数值保留指定位数的小数。<br>
     * è¯¥æ–¹æ³•舍入模式:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。<br>
     * <b>注意:</b>如果精度要求比较精确请使用 keepPrecision(String number, int precision)方法
     * @param number  è¦ä¿ç•™å°æ•°çš„æ•°å­—
     * @param precision å°æ•°ä½æ•°
     * @return double å¦‚果数值较大,则使用科学计数法表示
     */
    public static double keepPrecision(Double number, int precision) {
        if(null == number || 0.0 == number ) return 0.0;
        BigDecimal bg = new BigDecimal(number);
        return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).doubleValue();
    }
    /**
     * å¯¹float类型的数值保留指定位数的小数。<br>
     * è¯¥æ–¹æ³•舍入模式:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。<br>
     * <b>注意:</b>如果精度要求比较精确请使用 keepPrecision(String number, int precision)方法
     * @param number  è¦ä¿ç•™å°æ•°çš„æ•°å­—
     * @param precision å°æ•°ä½æ•°
     * @return float å¦‚果数值较大,则使用科学计数法表示
     */
    public static float keepPrecision(Float number, int precision) {
        if(null == number) return 0f;
        BigDecimal bg = new BigDecimal(number);
        return bg.setScale(precision, BigDecimal.ROUND_HALF_UP).floatValue();
    }
    /**
     * double转字符串,避免出现科学计数法
     * @param d
     * @return
     */
    public static String doubleToStr(Double d) {
        if(null == d) return "";
        DecimalFormat df = new DecimalFormat("0.0");
        return df.format(d);
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/task/package-info.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
package com.fzzy.task;
fzzy-igdss-view/src/main/java/com/fzzy/igds/SelectDept.view.xml
@@ -32,7 +32,7 @@
    </DataType>
  </Model>
  <View>
    <Property name="packages">font-awesome</Property>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsCompany">
      <Property name="dataType">[dtCompany]</Property>
      <Property name="dataProvider">selectDeptPR#listCompany</Property>
fzzy-igdss-web/src/main/java/com/bstek/dorado/core/DoradoAbout.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
/*
 * This file is part of Dorado 7.x (http://dorado7.bsdn.org).
 *
 * Copyright (c) 2002-2012 BSTEK Corp. All rights reserved.
 *
 * This file is dual-licensed under the AGPLv3 (http://www.gnu.org/licenses/agpl-3.0.html)
 * and BSDN commercial (http://www.bsdn.org/licenses) licenses.
 *
 * If you are unsure which license is appropriate for your use, please contact the sales department
 * at http://www.bstek.com/contact.
 */
package com.bstek.dorado.core;
import java.rmi.dgc.VMID;
import org.apache.commons.lang.StringUtils;
/**
 *
 *
 *调整显示信息
 *
 * ç”¨äºŽèŽ·å–å„ç§Dorado基本信息的工具类。
 * @author Benny Bao (mailto:benny.bao@bstek.com)
 * @since Feb 27, 2007
 */
public class DoradoAbout {
    private static String instanceId = new VMID().toString();
    private static long instantiationTime = System.currentTimeMillis();
    /**
     * è¿”回产品名称。
     */
    public static String getProductTitle() {
        return "dorado";
    }
    /**
     * è¿”回产品提供商。
     */
    public static String getVendor() {
        return "dorado";
    }
    /**
     * è¿”回产品版本号。
     */
    public static String getVersion() {
        Package pkg = DoradoAbout.class.getPackage();
        String version = null;
        if (pkg != null) version = pkg.getImplementationVersion();
        if (StringUtils.isEmpty(version)) version = instanceId;
        return version;
    }
    /**
     * è¿”回dorado的实例id。
     */
    public static String getInstanceId() {
        return instanceId;
    }
    /**
     * è¿”回该dorado的实例的创建时间。
     */
    public static long getInstantiationTime() {
        return instantiationTime;
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/file/FileController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.fzzy.sys.controller.file;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.sys.manager.file.FileManager;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
/**
 * @Description å‡ºå…¥åº“设备相关功能
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@Slf4j
@Controller
@RequestMapping("basic/file")
public class FileController {
    @Resource
    private FileManager fileManager;
    /**
     * é¸Ÿçž°å›¾é¢„览页面
     *
     * @return
     */
    @RequestMapping("/dept-img")
    public String deptImg(@RequestParam(value = "id", required = true) String id,
                          ModelMap view) {
        if(StringUtils.isNotEmpty(id)){
            String imgPath = fileManager.getDeptFile(id);;
            view.put("imgPath", imgPath);
        }
        return "web/common/preview-img";
    }
    /**
     * é•¿ä¼  å‡ºå…¥åº“图片
     *
     * @param file
     * @param request
     * @return
     * @throws IOException
     */
    @RequestMapping("/update-file")
    @ResponseBody
    public PageResponse<String> updateFile(
            @RequestParam(value = "file", required = true) MultipartFile file,
            HttpServletRequest request) throws IOException {
        String plateNum = request.getParameter("plateNum");
        return fileManager.upLoadInoutHandleImg(file, plateNum);
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutApiController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
package com.fzzy.sys.controller.inout;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.*;
import com.fzzy.igds.utils.SystemUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
 * @Description å‡ºå…¥åº“设备相关功能
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@RestController
@RequestMapping("inout/api")
public class InoutApiController {
    /**
     * èŽ·å–è½¦ç‰Œè¯†åˆ«ä¿¡æ¯
     *
     * @param param è½¦ç‰Œè¯†åˆ«æ•°æ®ä¿¡æ¯
     * @return
     */
    @ResponseBody
    @RequestMapping("/get-plateNum")
    public PageResponse<ApiInoutData> getPlateNum(@RequestBody ApiInoutData param) {
        if (null == param.getIp()) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "出入库配置中没有配置如入登记的车牌识别");
        }
        if (StringUtils.isEmpty(param.getProtocol())) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "当前车牌识别未配置通讯协议,无法执行");
        }
//        param = inoutEventControl.getPlateNum(param);
        //TODO å¾…实现,后续根据需求进行实现
        if (StringUtils.isEmpty(param.getErrorMsg())) {
            return new PageResponse<>(RespCodeEnum.CODE_0000, param);
        }
        return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg());
    }
    /**
     * å‡ºå…¥åº“抓拍
     *
     * @param param
     * @return
     */
    @RequestMapping("/snap-img")
    public @ResponseBody
    PageResponse<SnapImgDto> cutImg(@RequestBody SnapImgDto param) {
        //TODO å¾…实现,后续根据需求进行实现
//        param = inoutApiManager.snapImg(param);
        return new PageResponse<>(RespCodeEnum.CODE_0000, param);
    }
    /**
     * å‡ºå…¥åº“视频
     *
     * @return
     */
    @RequestMapping("/inout-video-play")
    @ResponseBody
    public ApiCameraResp inoutVideoPlay(HttpServletRequest request, @RequestBody InoutCameraDto param) {
        //获取请求方IP
        String ip = SystemUtil.getIP(request);
//        return inoutEventControl.inoutVideoPlay(param, ip);
        //TODO å¾…实现,后续根据需求进行实现
        return null;
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/inout/InoutController.java
@@ -4,10 +4,7 @@
import com.fzzy.common.dto.BaseParam;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.data.InoutParam;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.igds.data.*;
import com.fzzy.igds.domain.*;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
@@ -144,6 +141,61 @@
    }
    /**
     * å‡ºå…¥åº“值仓
     * @param httpRequest
     * @param sort
     * @param type
     * @param view
     * @return
     */
    @RequestMapping("/handle")
    public String handle(HttpServletRequest httpRequest,
                           @RequestParam(value = "sort", required = false) String sort,
                           @RequestParam(value = "type", required = false) String type,
                           ModelMap view) {
        //如果没有指定地磅,从用户上一个选择中获取
        if (StringUtils.isEmpty(sort)) {
            sort = "1";
        }
        if (StringUtils.isEmpty(sort)) {
            sort = inoutManager.getInoutWeightByClient(httpRequest);
        }
        if (StringUtils.isEmpty(type)) {
            //默认入库
            type = Constant.TYPE_IN;
        }
        view.put("type", type);
        SysUser user = ContextUtil.getLoginUser();
        view.put(Constant.MODEL_KEY_LOGIN_USER, user);
        String deptId = ContextUtil.subDeptId(user);
        view.put("deptId", deptId);
        // å½“前流程标签
        view.put("progress", Constant.PROGRESS_HANDLE);
        //入库流程配置
        String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, type);
        view.put("inoutProgress", inoutProgress);
        // ç±»åž‹
        List<SysDictData> listInoutType = commonManager.getInoutType();
        view.put("listInoutType", listInoutType);
        // ä»“库列表做下拉框使用
        List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
        view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
        // ç²®é£Ÿå“ç§ä¸‹æ‹‰æ¡†
        List<SysDictData> listFoodVariety = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
        view.put("listFoodVariety", listFoodVariety);
        return prefix + "/handle";
    }
    /**
     * å…¥åº“称重操作,包括空车称重和满车称重,共用一个页面
     *
     * @param sort è¡¨ç¤ºä½¿ç”¨çš„出入库设备配套号,不传递默认为1
@@ -265,15 +317,26 @@
    }
    /**
     * å‡ºå…¥åº“数据查询,根据条件查询数据,出入库数据信息
     * èŽ·å–å¾…å€¼ä»“çš„æ•°æ®
     *
     * @param param
     * @return
     */
    @RequestMapping("/list-handle-data")
    @ResponseBody
    public PageResponse<List<InoutRecord>> listHandleData(@RequestBody InoutParam param) {
        return inoutManager.listHandleData(param);
    }
    /**
     * æ ¹æ®æ¡ä»¶æŸ¥è¯¢å¾…称重的数据
     * @param param
     * @return
     */
    @RequestMapping("/inout-query")
    @ResponseBody
    public PageResponse<InoutRecord> inoutQuery(@RequestBody InoutParam param) {
        if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId());
        return inoutManager.inoutQuery(param);
    }
@@ -286,7 +349,7 @@
     */
    @RequestMapping("/submit-register")
    @ResponseBody
    public PageResponse<InoutRecord> submitRegister(@RequestBody InoutRecord data) {
    public PageResponse<InoutData> submitRegister(@RequestBody InoutData data) {
        return inoutManager.submitRegister(data);
    }
@@ -298,7 +361,7 @@
     */
    @RequestMapping("/submit-check")
    @ResponseBody
    public PageResponse<InoutRecord> submitCheck(@RequestBody InoutRecord data) {
    public PageResponse<InoutData> submitCheck(@RequestBody InoutData data) {
        return inoutManager.submitCheck(data);
    }
@@ -310,7 +373,7 @@
     */
    @RequestMapping("/submit-weight")
    @ResponseBody
    public PageResponse<InoutRecord> submitWeight(@RequestBody InoutRecord data) {
    public PageResponse<InoutData> submitWeight(@RequestBody InoutData data) {
        return inoutManager.submitWeight(data);
    }
@@ -325,7 +388,7 @@
    @RequestMapping("/submit-handle")
    @Transactional
    @ResponseBody
    public PageResponse<InoutRecord> submitHandle(@RequestBody InoutRecord data) {
    public PageResponse<InoutData> submitHandle(@RequestBody InoutData data) {
        log.debug("-------------submitHandle------------------");
        return inoutManager.submitHandle(data);
fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/print/PrintController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.fzzy.sys.controller.print;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.InoutData;
import com.fzzy.igds.data.InoutParam;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.igds.domain.InoutRecord;
import com.fzzy.igds.service.InoutRecordService;
import com.fzzy.sys.manager.print.PrintManager;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * @Description å•据打印
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@Slf4j
@RestController
@RequestMapping("basic/print")
public class PrintController {
    @Resource
    private PrintManager reportManager;
    @Resource
    private InoutRecordService inoutRecordService;
    /**
     * èŽ·å–å‡ºåº“ç§°é‡æ‰“å°å•
     *
     * @param data
     * @return
     */
    @RequestMapping("/bill-weight")
    public PageResponse<String> inoutWeightBill(@RequestBody InoutData data) {
        try {
            InoutParam inoutParam = new InoutParam();
            inoutParam.setId(data.getId());
            InoutRecord inoutData = inoutRecordService.selectOne(inoutParam);
            if (inoutData.getProgress().equals(Constant.PROGRESS_WEIGHT_FULL)
                    || inoutData.getProgress().equals(Constant.PROGRESS_WEIGHT_EMPTY)
                    || inoutData.getProgress().equals(Constant.PROGRESS_HANDLE)) {
                return new PageResponse<>(RespCodeEnum.CODE_1008.getCode(), "操作异常:" + "请先完成称重");
            }
            String html;
            if (Constant.TYPE_IN.equals(data.getType())) {
                html = reportManager.inWeightBill(inoutData);
            } else {
                html = reportManager.outWeightBill(inoutData);
            }
            return new PageResponse<>(RespCodeEnum.CODE_0000, html);
        } catch (Exception e) {
            log.error("后台异常:{}", e);
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "后台异常:" + e.getMessage());
        }
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/file/FileManager.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
package com.fzzy.sys.manager.file;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.service.CoreDeptService;
import com.fzzy.igds.service.FileService;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
/**
 * @Description å‡ºå…¥åº“设备相关功能
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@Slf4j
@Component("file.fileManager")
public class FileManager {
    @Resource
    private CoreDeptService coreDeptService;
    @Resource
    private FileService fileService;
    /**
     * æ ¹æ®å•位ID获取单位信息
     *
     * @param deptId
     * @return
     */
    public String getDeptFile(String deptId) {
        if (StringUtils.isEmpty(deptId)) {
            return null;
        }
        String imgBathPath = "未上传";
        Dept dept = coreDeptService.getDeptById(deptId);
        if (StringUtils.isNotEmpty(dept.getImgName())) {
            File imgFile = new File(dept.getImgName());
            if (imgFile.exists()) {
                imgBathPath = dept.getImgName();
            }
        }
        return imgBathPath;
    }
    /**
     * å‡ºå…¥åº“的附件上次,参数是车牌号
     *
     * @param file
     * @return
     * @throws IOException
     */
    public PageResponse<String> upLoadInoutHandleImg(MultipartFile file, String plateNum)
            throws IOException {
        log.debug("上传出入库的附件……");
        // èŽ·å–é»˜è®¤ç¼–ç çš„å­—èŠ‚æ•°ç»„
        byte[] fileByte = file.getBytes();
        // èŽ·å–æ–‡ä»¶çš„æºæ–‡ä»¶åç§°
        String oldFileName = file.getOriginalFilename();
        // èŽ·å–æ–‡ä»¶ä¿å­˜è·¯å¾„
        String filePath = fileService.getInoutFilePath(new Date());
        // èŽ·å–æ–°çš„ID
        String newFileName = ContextUtil.generateId();
        // æ–‡ä»¶åŽç¼€å
        String suffixName = oldFileName.substring(oldFileName.lastIndexOf("."));
        // åˆæˆæ–°çš„æ–‡ä»¶å
        if (StringUtils.isEmpty(plateNum)) {
            newFileName = newFileName + suffixName;
        } else {
            newFileName = plateNum + "_" + newFileName + suffixName;
        }
        // æ–‡ä»¶ä¸Šä¼ 
        boolean flag = uploadFile(fileByte, filePath, newFileName);
        // åˆ¤æ–­æ–‡ä»¶ä¸Šä¼ æ˜¯å¦æˆåŠŸ,成功返回文件名
        if (flag) {
            return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(),
                    newFileName);
        } else {
            return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
                    "上传失败");
        }
    }
    /**
     * æ–‡ä»¶æµä¸Šä¼ æ–‡ä»¶
     *
     * @param file
     * @param filePath
     * @param fileName
     * @return
     */
    private static boolean uploadFile(byte[] file, String filePath, String fileName) throws IOException {
        // é»˜è®¤æ–‡ä»¶ä¸Šä¼ æˆåŠŸ
        boolean flag = true;
        // new一个文件对象实例
        File targetFile = new File(filePath);
        // å¦‚果当前文件目录不存在就自动创建该文件或者目录
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        // åˆ›å»ºæ–‡ä»¶æµ
        FileOutputStream fileOutputStream = new FileOutputStream(filePath + fileName);
        try {
            fileOutputStream.write(file);
        } catch (FileNotFoundException e) {
            flag = false;
        } catch (IOException ioException) {
            flag = false;
        } finally {
            fileOutputStream.flush();
            fileOutputStream.close();
        }
        return flag;
    }
}
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/inout/InoutManager.java
@@ -3,10 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.data.InoutParam;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.data.PageResponse;
import com.fzzy.igds.data.*;
import com.fzzy.igds.domain.*;
import com.fzzy.igds.service.DicAreaService;
import com.fzzy.igds.service.InoutConfService;
@@ -18,7 +15,9 @@
import com.ruoyi.common.core.redis.RedisCache;
import lombok.extern.slf4j.Slf4j;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@@ -125,6 +124,7 @@
    /**
     * æ ¹æ®é…ç½®èŽ·å–å‡ºå…¥åº“çš„é…ç½®å‚æ•°
     *
     * @param listInoutConf
     * @param type
     * @return
@@ -142,6 +142,7 @@
    /**
     * æ ¹æ®é…ç½®èŽ·å–å‡ºå…¥åº“çš„é…ç½®å‚æ•°
     *
     * @param listInoutConf
     * @param sort
     * @param type
@@ -179,18 +180,17 @@
    }
    /**
     * å‡ºå…¥åº“注册数据提交,出入库登记使用同一个方法
     * å‡ºå…¥åº“注册数据提交,出入库登记使用同一个方法,包含称重时直接登记
     *
     * @param data
     * @return
     */
    public PageResponse<InoutRecord> submitRegister(InoutRecord data) {
        SysUser user = ContextUtil.getLoginUser();
    public PageResponse<InoutData> submitRegister(InoutData data) {
        if (StringUtils.isEmpty(data.getCompanyId())) {
            data.setCompanyId(user.getCompanyId());
            data.setCompanyId(ContextUtil.getCompanyId());
        }
        if (StringUtils.isEmpty(data.getDeptId())) {
            data.setDeptId(ContextUtil.subDeptId(user));
            data.setDeptId(ContextUtil.subDeptId(null));
        }
        int num = inoutRecordService.checkExist(data.getCompanyId(), data.getPlateNum());
@@ -218,7 +218,7 @@
            data.setUserName(data.getUserName().trim());
        }
        //登记人及登记时间
        data.setRegisterUser(user.getUserName());
        data.setRegisterUser(ContextUtil.getLoginUserName());
        data.setRegisterTime(new Date());
        num = inoutRecordService.addInoutRecord(data);
@@ -227,22 +227,19 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "登记失败!", data);
        }
        //TODO é™„件处理
//        List<FileData> files = data.getFiles();
//        if (null != files && files.size() > 0) {
//            // æ‰§è¡Œé™„件信息
//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
//        }
        //附件处理
        saveInoutFiles(data.getFiles(), data.getId(), curProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "登记成功!", data);
    }
    /**
     * åŒ–验信息提交
     *
     * @param data
     * @return
     */
    public PageResponse<InoutRecord> submitCheck(InoutRecord data) {
    public PageResponse<InoutData> submitCheck(InoutData data) {
        SysUser user = ContextUtil.getLoginUser();
        if (StringUtils.isEmpty(data.getCompanyId())) {
            data.setCompanyId(user.getCompanyId());
@@ -267,12 +264,25 @@
    /**
     * ç§°é‡æäº¤ï¼ŒåŒ…含称重登记提交及单独称重提交
     *
     * @param data
     * @return
     */
    public PageResponse<InoutRecord> submitWeight(InoutRecord data) {
    public PageResponse<InoutData> submitWeight(InoutData data) {
        if (Constant.PROGRESS_WEIGHT_EMPTY.equals(data.getProgress())) {
            data.setEmptyWeightTime(new Date());
            data.setEmptyWeightUser(ContextUtil.getLoginUserName());
        }
        if (Constant.PROGRESS_WEIGHT_FULL.equals(data.getProgress())) {
            data.setFullWeightTime(new Date());
            data.setFullWeightUser(ContextUtil.getLoginUserName());
        }
        if (StringUtils.isBlank(data.getId())) {
            //表示称重时直接登记
            return submitRegister(data);
        }
        // èŽ·å–ç³»ç»Ÿå‚æ•°é…ç½®
        //获取系统参数配置
        InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
        if (null == inoutSysConf) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "提示:当前系统中流程配置异常,请联系管理员", data);
@@ -283,55 +293,26 @@
        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
        data.setProgress(nextProgress);
        int num;
        if(StringUtils.isBlank(data.getId())){
            data.setRegisterTime(new Date());
            data.setRegisterUser(ContextUtil.getLoginUserName());
            //设置初次提交时称重时间信息
            if(data.getFullWeight() > 0){
                data.setFullWeightUser(ContextUtil.getLoginUserName());
                data.setFullWeightTime(new Date());
            }
            if(data.getEmptyWeight() > 0){
                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
                data.setEmptyWeightTime(new Date());
            }
            //称重登记
            num = inoutRecordService.addInoutRecord(data);
        }else {
            if (Constant.PROGRESS_WEIGHT_EMPTY.equals(curProgress)) {
                data.setEmptyWeightTime(new Date());
                data.setEmptyWeightUser(ContextUtil.getLoginUserName());
            }
            if (Constant.PROGRESS_WEIGHT_FULL.equals(curProgress)) {
                data.setFullWeightTime(new Date());
                data.setFullWeightUser(ContextUtil.getLoginUserName());
            }
            //称重更新
            num = inoutRecordService.updateInoutRecord(data);
        }
        //称重数据更新
        int num = inoutRecordService.updateInoutRecord(data);
        if (num == 0) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "提交失败!", data);
        }
        //TODO é™„件处理
//        List<FileData> files = data.getFiles();
//        if (null != files && files.size() > 0) {
//            // æ‰§è¡Œé™„件信息
//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
//        }
        //附件处理
        saveInoutFiles(data.getFiles(), data.getId(), curProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
    /**
     * å€¼ä»“信息提交
     *
     * @param data
     * @return
     */
    public PageResponse<InoutRecord> submitHandle(InoutRecord data) {
    public PageResponse<InoutData> submitHandle(InoutData data) {
        // èŽ·å–ç³»ç»Ÿå‚æ•°é…ç½®
        InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(data.getCompanyId(), data.getDeptId());
@@ -353,14 +334,29 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "提交失败!", data);
        }
        //TODO é™„件处理
//        List<FileData> files = data.getFiles();
//        if (null != files && files.size() > 0) {
//            // æ‰§è¡Œé™„件信息
//            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
//        }
        //附件处理
        saveInoutFiles(data.getFiles(), data.getId(), curProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "提交成功", data);
    }
    /**
     * å¼‚步执行附件保存
     * @param files     é™„件信息
     * @param bizId     ä¸šåŠ¡id
     * @param progress  æµç¨‹èŠ‚ç‚¹
     */
    @Async
    public void saveInoutFiles(List<FileInfo> files, String bizId, String progress) {
        if (null == files || files.isEmpty()) {
            return;
        }
        //TODO é™„件逻辑待处理
    }
    /**
@@ -393,6 +389,7 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢æ•°æ®
     *
     * @param param
     * @return
     */
@@ -403,6 +400,8 @@
        if (StringUtils.isEmpty(param.getDeptId())) {
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        param.setProgressTag(Constant.PROGRESS_RECORD);
        Page<InoutRecord> corePage = new Page<>(param.getPage(), param.getLimit());
        inoutRecordService.listPageInout(corePage, param);
@@ -415,7 +414,8 @@
    }
    /**
     * åˆ†é¡µæŸ¥è¯¢æ•°æ®
     * æŸ¥è¯¢å¾…称重的数据
     *
     * @param param
     * @return
     */
@@ -440,16 +440,54 @@
    }
    /**
     * æŸ¥è¯¢å¾…值仓的数据
     *
     * @param param
     * @return
     */
    public PageResponse<List<InoutRecord>> listHandleData(InoutParam param) {
        if (StringUtils.isEmpty(param.getCompanyId())) {
            param.setCompanyId(ContextUtil.getCompanyId());
        }
        if (StringUtils.isEmpty(param.getDeptId())) {
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        List<InoutRecord> inoutRecords = inoutRecordService.listInout(param);
        if (null == inoutRecords || inoutRecords.isEmpty()) {
            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "获取到数据信息为空");
        }
        return new PageResponse<>(RespCodeEnum.CODE_0000, inoutRecords);
    }
    /**
     * æŸ¥è¯¢æ•°æ®
     *
     * @param param
     * @return
     */
    public PageResponse<InoutRecord> inoutQuery(InoutParam param) {
        if (StringUtils.isEmpty(param.getId())) {
        if (StringUtils.isEmpty(param.getId()) && StringUtils.isEmpty(param.getPlateNum())) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "查询参数不完整,查询失败!");
        }
        if (StringUtils.isEmpty(param.getCompanyId())) {
            param.setCompanyId(ContextUtil.getCompanyId());
        }
        if (StringUtils.isEmpty(param.getDeptId())) {
            param.setDeptId(ContextUtil.subDeptId(null));
        }
        InoutRecord result = inoutRecordService.selectById(param.getId());
        if(Constant.PROGRESS_WEIGHT_EMPTY.equals(param.getProgress()) || Constant.PROGRESS_WEIGHT_FULL.equals(param.getProgress())){
            //设置查询待称重的
            param.setProgress(null);
            //设置称重流程标记
            param.setWeightTag("WEIGHT");
        }
        InoutRecord result = inoutRecordService.selectOne(param);
        if (null == result) {
            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
                    "系统未查询到执行中的单据信息", null);
@@ -459,6 +497,7 @@
    /**
     * åˆ†é¡µèŽ·å–åŒºåˆ’ä¿¡æ¯
     *
     * @param param
     * @return
     */
@@ -475,7 +514,6 @@
    }
    /**
     *
     * @param param
     * @return
     */
@@ -487,7 +525,7 @@
        }
        param.setDeptId(ContextUtil.subDeptId(user));
        List<InoutNoticeIn> list = inoutNoticeService.getNoticeIn(param.getCompanyId(), param.getDeptId(),Constant.COMPLETE_STATUS_NONE);
        List<InoutNoticeIn> list = inoutNoticeService.getNoticeIn(param.getCompanyId(), param.getDeptId(), Constant.COMPLETE_STATUS_NONE);
        if (null == list || list.isEmpty()) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "查询结果为空!");
@@ -497,7 +535,6 @@
    }
    /**
     *
     * @param param
     * @return
     */
@@ -508,7 +545,7 @@
        }
        param.setDeptId(ContextUtil.subDeptId(user));
        List<InoutNoticeOut> list = inoutNoticeService.getNoticeOut(param.getCompanyId(), param.getDeptId(),Constant.COMPLETE_STATUS_NONE);
        List<InoutNoticeOut> list = inoutNoticeService.getNoticeOut(param.getCompanyId(), param.getDeptId(), Constant.COMPLETE_STATUS_NONE);
        if (null == list || list.isEmpty()) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), "查询结果为空!");
fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/print/PrintManager.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,313 @@
package com.fzzy.sys.manager.print;
import com.fzzy.igds.bill.InoutBill;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.FoodVariety;
import com.fzzy.igds.data.InoutPrintBill;
import com.fzzy.igds.domain.Depot;
import com.fzzy.igds.domain.InoutRecord;
import com.fzzy.igds.service.DepotService;
import com.fzzy.igds.service.SysDeptService;
import com.fzzy.igds.utils.NumberUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.*;
/**
 * @Description å•据打印
 * @Author CZT
 * @Date 2025/12/4 9:27
 */
@Component
public class PrintManager {
    @Resource
    private SysDeptService sysDeptService;
    @Resource
    private DepotService depotService;
    /**
     * èŽ·å–å…¥åº“è¿‡ç£…å•æ•°æ®ä¿¡æ¯
     *
     * @param data
     * @return
     */
    public String inWeightBill(InoutRecord data) {
        // èŽ·å–è¡¨å•æ•°æ®
        InoutPrintBill bill = this.createBillData(data, "入库划码单");
        // è°ƒæ•´æ¨¡ç‰ˆæ•°æ®å¹¶è¿”回
        String htmlStr = InoutBill.IN_WEIGHT_DEFAULT;
        htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
        htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
        htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
        htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
        htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
        htmlStr = htmlStr.replace("serId", bill.getSerId());
        htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
        htmlStr = htmlStr.replace("deptName", bill.getUnitName());
        htmlStr = htmlStr.replace("driverName", bill.getDriverName());
        htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
        htmlStr = htmlStr.replace("userContact", bill.getUserContact());
        htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
        htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
        htmlStr = htmlStr.replace("depotName", bill.getDepotName());
        htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
        if ("5326".equals(data.getCompanyId())) {
            htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0").format(bill.getRecordWeight()));
            htmlStr = htmlStr.replace("settleWeight", new DecimalFormat("0").format(bill.getSettleWeight()));
            htmlStr = htmlStr.replace("fullWeight", new DecimalFormat("0").format(bill.getFullWeight()));
            htmlStr = htmlStr.replace("emptyWeight", new DecimalFormat("0").format(bill.getEmptyWeight()));
            htmlStr = htmlStr.replace("netWeight", new DecimalFormat("0").format(bill.getNetWeight()));
        }
        htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
        htmlStr = htmlStr.replace("fullWeight",
                new DecimalFormat("0.00").format(bill.getFullWeight()));
        htmlStr = htmlStr.replace("emptyWeight",
                new DecimalFormat("0.00").format(bill.getEmptyWeight()));
        htmlStr = htmlStr.replace("netWeight",
                new DecimalFormat("0.00").format(bill.getNetWeight()));
        htmlStr = htmlStr.replace("deImpurity", bill.getDeImpurity() + "");
        htmlStr = htmlStr.replace("deWet", bill.getDeWet() + "");
        htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
        htmlStr = htmlStr.replace("deCheck", bill.getDeCheck() + "");
        htmlStr = htmlStr.replace("addCheck", bill.getAddCheck() + "");
        htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
        htmlStr = htmlStr.replace("settleWeight",
                new DecimalFormat("0.00").format(bill.getSettleWeight()));
        htmlStr = htmlStr.replace("dePackage", bill.getDePackage() + "");
        htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
        htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
        htmlStr = htmlStr.replace("price", bill.getPrice());
        htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
        htmlStr = htmlStr.replace("wet", bill.getWet() + "");
        htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
        htmlStr = htmlStr.replace("checkStatus", bill.getCheckStatus());
        htmlStr = htmlStr.replace("remark", bill.getRemark());
        htmlStr = htmlStr.replace("moneyName", bill.getMoneyName());
        htmlStr = htmlStr.replace("unitName", bill.getUnitName());
        htmlStr = htmlStr.replace("time", bill.getRegisterTime());
        htmlStr = htmlStr.replace("handleStart", "");
        htmlStr = htmlStr.replace("handleEnd", "");
        htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
        htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
        htmlStr = htmlStr.replaceAll("weightUser",
                bill.getWeightUser() == null ? "" : bill.getWeightUser());
        htmlStr = htmlStr.replaceAll("handleUser",
                bill.getHandleUser() == null ? "" : bill.getHandleUser());
        htmlStr = htmlStr.replaceAll("keeperName",
                bill.getKeeperUser() == null ? "" : bill.getKeeperUser());
        return htmlStr;
    }
    /**
     * èŽ·å–å‡ºåº“è¿‡ç£…å•
     *
     * @param data
     * @return
     */
    public String outWeightBill(InoutRecord data) {
        // èŽ·å–è¡¨å•æ•°æ®
        InoutPrintBill bill = this.createBillData(data, "出库划码单");
        //默认模版
        String htmlStr = InoutBill.OUT_WEIGHT_DEFAULT;
        htmlStr = htmlStr.replace("billTitle", bill.getBillTitle());
        htmlStr = htmlStr.replace("registerTime", bill.getRegisterTime());
        htmlStr = htmlStr.replace("completeTime", bill.getCompleteTime());
        htmlStr = htmlStr.replace("fullTime", bill.getFullTime());
        htmlStr = htmlStr.replace("emptyTime", bill.getEmptyTime());
        htmlStr = htmlStr.replace("serId", bill.getSerId());
        htmlStr = htmlStr.replace("customerName", bill.getCustomerName());
        htmlStr = htmlStr.replace("deptName", bill.getUnitName());
        htmlStr = htmlStr.replace("driverName", bill.getDriverName());
        htmlStr = htmlStr.replace("userNumberId", bill.getUserId());
        htmlStr = htmlStr.replace("userContact", bill.getUserContact());
        htmlStr = htmlStr.replace("userAddress", bill.getUserAddress());
        htmlStr = htmlStr.replace("foodVariety", bill.getFoodVariety());
        htmlStr = htmlStr.replace("depotName", bill.getDepotName());
        htmlStr = htmlStr.replace("foodLocation", bill.getFoodLocation());
        if ("5326".equals(data.getCompanyId())) {
            htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0").format(bill.getRecordWeight()));
            htmlStr = htmlStr.replace("settleWeight", new DecimalFormat("0").format(bill.getSettleWeight()));
            htmlStr = htmlStr.replace("fullWeight", new DecimalFormat("0").format(bill.getFullWeight()));
            htmlStr = htmlStr.replace("emptyWeight", new DecimalFormat("0").format(bill.getEmptyWeight()));
            htmlStr = htmlStr.replace("netWeight", new DecimalFormat("0").format(bill.getNetWeight()));
        }
        htmlStr = htmlStr.replace("plateNum", bill.getPlateNum());
        htmlStr = htmlStr.replace("fullWeight",
                new DecimalFormat("0.00").format(bill.getFullWeight()));
        htmlStr = htmlStr.replace("emptyWeight",
                new DecimalFormat("0.00").format(bill.getEmptyWeight()));
        htmlStr = htmlStr.replace("netWeight",
                new DecimalFormat("0.00").format(bill.getNetWeight()));
        htmlStr = htmlStr.replace("dePackage",
                new DecimalFormat("0.00").format(bill.getDePackage()));
        htmlStr = htmlStr.replace("remark", bill.getRemark());
        htmlStr = htmlStr.replace("settleWeight",
                new DecimalFormat("0.00").format(bill.getSettleWeight()));
        htmlStr = htmlStr.replace("deHandle", bill.getDeHandle() + "");
        htmlStr = htmlStr.replace("recordWeight", new DecimalFormat("0.00").format(bill.getRecordWeight()));
        htmlStr = htmlStr.replace("deSum", bill.getDeSum() + "");
        htmlStr = htmlStr.replace("deOther", bill.getDeOther() + "");
        htmlStr = htmlStr.replace("price", bill.getPrice());
        htmlStr = htmlStr.replace("settleMoney", bill.getSettleMoney() + "");
        htmlStr = htmlStr.replace("wet", bill.getWet() + "");
        htmlStr = htmlStr.replace("impurity", bill.getImpurity() + "");
        htmlStr = htmlStr.replace("unitName", getValue(bill.getUnitName()));
        htmlStr = htmlStr.replace("time", bill.getRegisterTime());
        htmlStr = htmlStr.replace("handleStart", "");
        htmlStr = htmlStr.replace("handleEnd", "");
        htmlStr = htmlStr.replace("noticeId", bill.getNoticeId() == null ? "" : bill.getNoticeId());
        htmlStr = htmlStr.replace("phone", data.getUserContact() == null ? "" : data.getUserContact() + "");
        htmlStr = htmlStr.replace("printTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm"));
        htmlStr = htmlStr.replaceAll("weightUser", getValue(bill.getWeightUser()));
        htmlStr = htmlStr.replace("handleUser", getValue(bill.getHandleUser()));
        htmlStr = htmlStr.replaceAll("keeperName", getValue(bill.getKeeperUser()));
        return htmlStr;
    }
    public String getValue(String value) {
        if (null == value) return "";
        return value;
    }
    /**
     * å°è£…过磅单数据
     *
     * @param data
     * @param billTitle
     * @return
     */
    private InoutPrintBill createBillData(InoutRecord data, String billTitle) {
        InoutPrintBill bill = new InoutPrintBill();
        bill.setBillTitle(billTitle);
        SysDept dept = sysDeptService.getCacheDept(data.getCompanyId(), data.getDeptId());
        if (null != dept && StringUtils.isNotEmpty(dept.getDeptName())) {
            bill.setBillTitle(dept.getDeptName() + billTitle);
            bill.setDeptId(dept.getDeptId() + "");
            bill.setDeptName(dept.getDeptName() + "");
            bill.setUnitName(dept.getDeptName());
        }
        //清远出发货单位及标题,使用公司名
        if ("5368".equals(data.getCompanyId())) {
            SysDept company = sysDeptService.getCacheDept(data.getCompanyId(), data.getCompanyId());
            if (null != company && StringUtils.isNotEmpty(company.getDeptName())) {
                bill.setBillTitle(company.getDeptName() + billTitle);
                bill.setUnitName(company.getDeptName());
            }
        }
        bill.setCompanyId(data.getCompanyId() == null ? "" : data
                .getCompanyId());
        if (null == data.getRegisterTime()) {
            data.setRegisterTime(new Date());
        }
        bill.setRegisterTime(DateFormatUtils.format(data.getRegisterTime(),
                "yyyy-MM-dd HH:mm"));
        if (null == data.getCompleteTime()) {
            data.setCompleteTime(new Date());
        }
        bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(),
                "yyyy-MM-dd HH:mm"));
        bill.setEmptyTime(DateFormatUtils.format(data.getEmptyWeightTime(),
                "yyyy-MM-dd HH:mm:ss"));
        bill.setFullTime(DateFormatUtils.format(data.getFullWeightTime(),
                "yyyy-MM-dd HH:mm:ss"));
        bill.setSerId(data.getId());
        if ("5016".equals(data.getCompanyId()) || "5347".equals(data.getCompanyId()) || "5352".equals(data.getCompanyId())) {
            bill.setCompleteTime(DateFormatUtils.format(data.getCompleteTime(), "yyyy-MM-dd"));
            bill.setSerId(data.getId().substring(2));
        }
        //客户信息
        bill.setCustomerName(data.getCustomerName() == null ? "" : data.getCustomerName());
        bill.setUserId(data.getUserId() == null ? "" : data.getUserId());
        bill.setUserAddress(data.getUserAddress() == null ? "" : data.getUserAddress());
        bill.setUserContact(data.getUserContact() == null ? "" : data.getUserContact());
        bill.setNoticeId(data.getNoticeId());
        bill.setDriverName(data.getUserName() == null ? "" : data.getUserName());
        // èŽ·å–ä»“åº“ä¿¡æ¯
        Depot depot = depotService.getCacheDepot(data.getCompanyId(),
                data.getDepotId());
        if (depot != null) {
            bill.setDepotName(depot.getName() == null ? "" : depot.getName());
            bill.setHandleUser(depot.getStoreKeeperName() == null ? "" : depot
                    .getStoreKeeperName());
        }
        bill.setFoodVariety(FoodVariety.getMsg(data.getFoodVariety()));
        bill.setFoodLocation(data.getFoodLocation() == null ? "" : data
                .getFoodLocation());
        bill.setPlateNum(data.getPlateNum());
        bill.setFullWeight(data.getFullWeight());
        bill.setEmptyWeight(data.getEmptyWeight());
        bill.setNetWeight(data.getNetWeight());
        bill.setRecordWeight(data.getRecordWeight());
        bill.setCheckStatus(data.getCheckStatus().equals(Constant.STATUS_CHECK) ? "合格" : "不合格");
        bill.setDeOther(data.getDeOther());
        bill.setSettleWeight(data.getSettleWeight());
        bill.setPrice(data.getPrice() == null ? "" : data.getPrice() + "");
        if (data.getSettleMoney() <= 0) {
            if (null != data.getPrice() && null != data.getRecordWeight()) {
                data.setSettleMoney(NumberUtil.keepPrecision(data.getPrice() * data.getRecordWeight(), 2));
            }
        }
        bill.setSettleMoney(data.getSettleMoney() == null ? "" : data.getSettleMoney() + "");
        bill.setRemark(data.getRemarks() == null ? "" : data.getRemarks());
        if (Constant.TYPE_IN.equals(data.getType())) {
            bill.setWeightUser(data.getFullWeightUser());
        }
        if (Constant.TYPE_OUT.equals(data.getType())) {
            bill.setWeightUser(data.getEmptyWeightUser());
        }
        bill.setHandleUser(data.getHandleUser());
        bill.setKeeperUser(depot.getStoreKeeperName());
        return bill;
    }
}
fzzy-igdss-web/src/main/resources/banner.txt
@@ -3,6 +3,7 @@
Application Version: fzzy-igdss
Application Version: 2.0
Spring Boot Version: ${spring-boot.version}
Vendor:http://www.fzzygf.com
============================================
  ______               _______                      _______     ___     __
fzzy-igdss-web/src/main/resources/static/inout/inout-check.js
fzzy-igdss-web/src/main/resources/static/inout/inout-handle.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,386 @@
//称重-包括空车和满车称重
var layer;
var form;
var table;
var upload;
var recordData = null;// ä¸šåŠ¡æ•°æ®ä¿¡æ¯
var img1, img2, img3;// é¡µé¢ä¸­çš„图片上传名称
$(function () {
    layui.use(['layer', 'laydate', 'form','table', 'upload'], function () {
        upload = layui.upload;
        layer = layui.layer;
        form = layui.form;
        table = layui.table;
        //监听选择数据事件
        table.on('tool(tableListProgressData)', function (obj) {
            var data = obj.data;
            if (obj.event === 'select') {
                //清空表单
                resetForm();
                flushData(data.id, null);
                $("#listProgressData").css("display", "none");
                layer.closeAll();
            }
        });
        //上传
        upload.render({
            elem: '#kccz-r-btn1',
            url: '/basic/file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum, "type": "1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img1').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img1 = res.msg;
                layer.msg("图片上传成功!");
                //console.log(img1);
            }
        });
        upload.render({
            elem: '#kccz-r-btn2',
            url: '/basic/file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum, "type": "1"};//携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img2').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img2 = res.msg;
                layer.msg("图片上传成功!");
                // console.log(img2);
            }
        });
        upload.render({
            elem: '#kccz-r-btn3',
            url: '/basic/file/update-file', //上传接口
            size: 4 * 1024, //限制文件大小,单位KB, æœ€å¤§ä¸Šä¼ 4MB
            accept: 'images',
            before: function (obj) {
                var plateNum = $("#plateNum").val();
                this.data = {"plateNum": plateNum}; //携带参数
                //预读本地文件示例,不支持ie8
                obj.preview(function (index, file, result) {
                    $('#kccz-r-img3').attr('src', result); //图片链接(base64)
                });
            },
            done: function (res) {
                //如果上传失败
                if (res.code > 0) {
                    layer.msg("图片上传失败!");
                }
                //上传成功
                img3 = res.msg;
                layer.msg("图片上传成功!");
            }
        });
    });
    //显示流程环节
    updateEditAndProgress();
});
/**
 * æ‰‹åŠ¨é€‰æ‹©ï¼ŒèŽ·å–å¾…ç§°é‡çš„æ•°æ®ï¼Œå¼¹å‡ºé€‰æ‹©
 */
function selectByHand() {
    var param = {
        deptId: deptId,
        type: type,
        progress: curProgress,
        timer: Math.random()
    };
    $.ajax({
        type: "POST",
        url: "/basic/inout/list-handle-data",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
        success: function (result) {
            if (result.code != "0000") {
                layer.msg(result.msg);
            } else {
                renderTableProgressData(result.data);
            }
        },
        error: function () {
            layer.msg("系统获取数据出现异常,重新尝试");
        }
    });
}
/**
 * è½¦è¾†é€‰æ‹©å¼¹çª—
 * @param list
 */
function renderTableProgressData(list) {
    // æ¸…空数据
    $("#tableListProgressData").empty();
    layer.open({
        type: 1,
        title: "选择值仓中车辆",
        offset: ['240px', '100px'],
        area: ['1000px', '560px'],
        cancel: function (index, layero) {
            $("#listProgressData").css("display", "none");
        },
        shade: 0,
        scrollbar: 0,
        content: $('#listProgressData'),
        closeBtn: 1
    });
    table.render({
        elem: '#tableListProgressData',
        data: list,
        page: false,
        even: true,
        cols: [[
            {
                type: 'numbers',
                title: '序号'
            }, {
                field: 'id',
                title: '单据号',
                align: 'center'
            }, {
                field: 'userName',
                title: '承运人',
                align: 'center'
            }, {
                field: 'plateNum',
                title: '车牌号',
                align: 'center'
            }, {
                field: 'progress',
                title: '流程进度',
                align: 'center',
                style: 'font-weight: bold',
                templet: function (item) {
                    return INOUT_PROGRESS_MSG(item.progress);
                }
            }, {
                fixed: 'right',
                title: '选择操作',
                align: 'center',
                toolbar: '#barSelectProgress'
            }
        ]]
    });
    $("thead tr").css({
        "border-bottom": "2px solid #53adce",
        "background": "#eff4f6"
    });
}
// è¡¨å•清空
function resetForm() {
    $("#form-data")[0].reset();
    $('#kccz-r-img1').removeAttr('src');
    $('#kccz-r-img2').removeAttr('src');
    $('#kccz-r-img3').removeAttr('src');
    form.render();
    recordData = null;
    $("#text-param").val(null);
}
/**
 * é¡µé¢åˆ·æ–°
 */
function flushPage() {
    layer.confirm('确定要刷新页面吗?', {icon: 3, title: '提示'}, function (index) {
        resetForm();
        layer.close(index);
    });
}
/**
 * æŸ¥è¯¢æ•°æ®
 * @param id
 * @param plateNum
 */
function flushData(id, plateNum) {
    var index = layer.load();
    var param = {
        type: type,
        progress: curProgress,
        id: id,
        plateNum: plateNum
    };
    $.ajax({
        type: "POST",
        url: "/basic/inout/inout-query",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                notifyProgress(result.msg, result.data);
            } else {
                recordData = result.data;
                // è¿”回的数据进行赋值
                form.val("form-data", recordData);
                form.render();
                updateEditAndProgress();
            }
        },
        error: function () {
            layer.close(index);
            alertError("查询失败,请重新尝试");
        }
    });
}
// å½“前完成
function submit() {
    if (!recordData) {
        alertError("没有业务数据信息,执行被拒绝");
        return;
    }
    var data = form.val("form-data");
    //合并数据
    Object.assign(recordData, data);
    // èŽ·å–ç…§ç‰‡
    var files = [{
        fileName: img1
    }, {
        fileName: img2
    }, {
        fileName: img3
    }];
    recordData.files = files;
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/basic/inout/submit-handle",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                notify(result.msg, result.data);
            } else {
                notify("数据提交成功", result.data);
                resetForm();
            }
        },
        error: function () {
            layer.close(index);
            alertError("提交失败,请重新尝试");
        }
    });
}
/**
 * æ ¹æ®ä¸šåŠ¡æ•°æ®æ›´æ–°é¡µé¢ä¸­çš„çŠ¶æ€
 */
function updateEditAndProgress() {
    //显示当前流程
    if (type === "IN") {
        $("#rk-progress-register").addClass("active");
        $("#rk-progress-fullWeight").addClass("active");
        $("#rk-progress-hand").addClass("active");
        $("#rk-progress-emptyWeight").removeClass("active");
    }
    if (type === "OUT") {
        $("#ck-progress-register").addClass("active");
        $("#ck-progress-emptyWeight").addClass("active");
        $("#ck-progress-hand").addClass("active");
        $("#ck-progress-fullWeight").removeClass("active");
    }
    //流程显示
    if (inoutProgress) {
        if (inoutProgress.indexOf("REGISTER") === -1) {
            $("#rk-progress-register").css("display", "none");
            $("#ck-progress-register").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
            $("#rk-progress-fullWeight").css("display", "none");
            $("#ck-progress-fullWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("HANDLE") === -1) {
            $("#rk-progress-hand").css("display", "none");
            $("#ck-progress-hand").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
            $("#rk-progress-emptyWeight").css("display", "none");
            $("#ck-progress-emptyWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("CARD_BACK") === -1) {
            $("#rk-progress-cardBack").css("display", "none");
            $("#ck-progress-cardBack").css("display", "none");
        }
        if (type === "IN") {
            $("#rk_progress").css("display", "block");
            $("#ck_progress").css("display", "none");
        }
        if (type === "OUT") {
            $("#ck_progress").css("display", "block");
            $("#rk_progress").css("display", "none");
        }
    }
}
/**
 * å¼¹å‡ºæé†’框
 * @param msg æé†’信息
 * @param data æ•°æ®ä¿¡æ¯ï¼Œå¯èƒ½ä¸ºç©º
 */
function notify(msg, data) {
    if (data) {
        //赋值
        $("#resultMsg").text(msg);
        $("#resultUserName").text(data.userName);
        $("#resultPlateNum").text(data.plateNum);
        if ("IN" == data.type) {
            $("#resultType").text("入库-" + INOUT_PROGRESS_MSG(data.progress));
        } else {
            $("#resultType").text("出库-" + INOUT_PROGRESS_MSG(data.progress));
        }
        layer.open({
            type: 1,
            offset: ['150px', '200px'],
            area: '450px;',
            shade: 0.8,
            id: 'dialog_notify_info',
            btn: ['确定'],
            content: $('#dialog-from-notify'),
            yes: function (index) {
                layer.closeAll();
            }
        });
    } else {
        layer.alert(msg, {offset: ['300px', '300px']});
    }
}
fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
ÎļþÃû´Ó fzzy-igdss-web/src/main/resources/static/inout/register.js ÐÞ¸Ä
@@ -134,7 +134,7 @@
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../inout/api/get-plateNum",
        url: "/inout/api/get-plateNum",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
@@ -143,7 +143,6 @@
                alertError(result.msg);
            } else {
                $("#plateNum").val(result.data.plateNum);
                $("#plateNum2").val(result.data.plateNum);
            }
            layer.close(index);
        },
@@ -161,7 +160,7 @@
    $("#form-data")[0].reset();
    form.render();
    // èº«ä»½è¯é‡ç½®
    $("#id_img_pers").attr("src", "../../static/images/rkbk-photo_03.png");
    $("#id_img_pers").attr("src", "/img/web/inout/rkbk-photo_03.png");
    $("#pz-img").removeClass("kccz-r-img-red");
    $("#pz-text").text("自动抓拍");
}
fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
@@ -5,10 +5,7 @@
var recordData = null;// ä¸šåŠ¡æ•°æ®ä¿¡æ¯
var snapData;//系统抓拍对象信息
var timerWeight;
var paramIntelCard;//设备识别结果
var paramIdCard;//设备识别结果
var curCheckItems = null;// å½“前数据的检查项信息
var step = 1;
var curProgress = null;
$(function () {
    layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
@@ -26,7 +23,8 @@
            if (obj.event === 'select') {
                //清空表单
                resetForm();
                flushData(data.intelCard, null);
                flushData(data.id, null);
                $("#listProgressData").css("display", "none");
                layer.closeAll();
            }
        });
@@ -34,15 +32,12 @@
    });
    //显示流程环节
    showProgress();
    updateEditAndProgress();
    // ç›‘听重量变化
    $(".weight").blur(function () {
        deAutoByIn(this.name);
        deAuto(this.name);
    });
    // åˆå§‹åŒ–WebSocket
    // initInoutWS(companyId, bizType, progress, userId);
});
window.onload = function () {
@@ -68,47 +63,41 @@
    });
};
// socket信息返回處理
function socketOnMessage(packet) {
    //暂无
}
//点击称重
/**
 * ç§°é‡åŠæŠ“拍
 */
function weight() {
    // æ²¡æœ‰ä¸šåŠ¡æ•°æ®ä¸å¯æ‰§è¡Œ
    if (!recordData) {
        alertError("没有查询到业务数据,执行被拒绝!");
        return;
    }
    // å¦‚果是空车称重
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
        form.val("form-data", {
            emptyWeight: weightDto.weight
        });
        form.render();
    }
    // å¦‚果是满车称重
    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
    if (InoutProgress.WEIGHT_FULL === curProgress) {
        form.val("form-data", {
            fullWeight: weightDto.weight
        });
        form.render();
    }
    var data = form.val("form-data");
    if (!data.plateNum) {
        alertError("提示:填写登记车牌信息");
        return;
    }
    // ç‚¹å‡»ç§°é‡è‡ªåŠ¨è°ƒç”¨æŠ“æ‹
    snapData = {
        companyId: companyId,
        deptId: deptId,
        progress: recordData.progress,
        progress: curProgress,
        bizType: type,
        bizId: recordData.id,
        plateNum: recordData.plateNum,
        id1: snapDto1.id,
        id2: snapDto2.id,
        id3: snapDto3.id,
        id4: snapDto2.id,
        sort: $("#scaleName").val(),
        weight: weightDto.weight
        sort: $("#scaleName").val()
    };
    //当前AJAX服务为同步服务,返回数据包装照片信息
@@ -116,7 +105,7 @@
    $.ajax({
        sync: false,
        type: "POST",
        url: "../../inout/api/snap-img",
        url: "/inout/api/snap-img",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapData),
@@ -125,6 +114,7 @@
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                layer.msg("抓拍成功");
                snapData = result.data;
            }
        },
@@ -133,77 +123,119 @@
            alertError("后台调用截图失败,请重新尝试");
        }
    });
    //如果是第二次称重,默认执行自动计算
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
        deAutoByIn("emptyWeight");
    }
}
// ä½¿ç”¨æ’件获取身份证
function flushIdCard() {
    var index = layer.load();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "json",
        // jsonp: "callback",
        // jsonpCallback: "jsonpCallback",
        success: function (json) {
            layer.close(index);
            var data = json;
            if (data.code === "200" || data.code == 200) {
                paramIdCard = data.idNum;
                $("#text-param").text("识别身份证:" + paramIdCard);
                flushData(null, paramIdCard);
            } else {
                alertError("没有读取到身份证信息!");
                return;
            }
        },
        error: function () {
            alertError("没有读取到身份证信息!");
            layer.close(index);
        }
    });
}
function flushByHand() {
    var intelCard = $("#intelCard").val();
    flushData(intelCard, null);
}
/**
 * æ‰‹åŠ¨é€‰æ‹©ï¼ŒèŽ·å–å¾…ç§°é‡çš„æ•°æ®ï¼Œå¼¹å‡ºé€‰æ‹©
 * ç§°é‡æäº¤
 */
function selectByHand() {
    var param = {
        deptId: deptId,
        type: type,
        timer: Math.random()
    };
function submit() {
    var data = form.val("form-data");
    if (!data.depotId) {
        alertError("提示:装卸仓库必填");
        return;
    }
    if (!data.customerName) {
        alertError("提示:通知单信息必填");
        return;
    }
    if (!data.foodVariety) {
        alertError("提示:粮食品种必填");
        return;
    }
    // æ ¡éªŒ-入库满车称重
    if (InoutProgress.WEIGHT_FULL === curProgress) {
        if (data.fullWeight <= 0.0) {
            alertError("提示:满车称重信息必填");
            return;
        }
    }
    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
        if (data.emptyWeight <= 0.0) {
            alertError("提示:空车称重信息必填");
            return;
        }
    }
    if(recordData){
        //合并数据
        Object.assign(recordData, data);
    }else {
        recordData = data;
    }
    recordData.progress = curProgress;
    // èŽ·å–ç…§ç‰‡
    var files = [{
        fileName: snapData.fileName1
    }, {
        fileName: snapData.fileName2
    }, {
        fileName: snapData.fileName3
    }];
    recordData.files = files;
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/basic/inout/list-weight-data",
        url: "/basic/inout/submit-weight",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
        data: JSON.stringify(recordData),
        success: function (result) {
            if (result.code != "0000") {
                layer.msg(result.msg);
                alertError(result.msg);
            } else {
                renderTableProgressData(result.data);
                notify("数据提交成功", result.data);
                //第一次称重后,刷新页面
                if (recordData.recordWeight <= 0.0) {
                    resetForm();
                }
            }
            layer.close(index);
        },
        error: function () {
            layer.msg("系统获取数据出现异常,重新尝试");
            layer.close(index);
            alertError("提交失败,请重新尝试");
        }
    });
}
/**
 * ç‚¹å‡»æ‰“印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成
 */
function printBill() {
    if (!recordData) {
        alertError("没有获取到业务数据,打印被拒绝!");
        return;
    }
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/basic/print/bill-weight",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                layer.msg("开始渲染打印单……");
                printWeight(result.data);
            }
        },
        error: function () {
            layer.close(index);
            alertError("获取打印模版失败,请联系管理员查看原因");
        }
    });
}
/**
 * åœ°ç£…数据刷新
 */
function flushWeight() {
    var ip = "127.0.0.1";
    if (weightDto.ip) {
@@ -240,46 +272,102 @@
    });
}
// ç‚¹å‡»æ‰“印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成
function printBill() {
    if (!recordData) {
        alertError("没有获取到业务数据,打印被拒绝!");
        return;
    }
    // ä»ŽåŽå°èŽ·å–æ¨¡ç‰ˆå¹¶æ‰“å°
    var data = form.val("form-data");
    // åˆå¹¶æ›´æ–°ç•¶å‰ç¼–辑数据
    Object.assign(recordData, data);
/**
 * è¯»å–身份证
 */
function flushIdCard() {
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../basic/inout/report/bill-weight",
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
        success: function (json) {
            layer.close(index);
            if (result.code != "0000") {
                alertError(result.msg);
            var data = json;
            if (data.code === "200" || data.code == 200) {
                // ä¸´æ—¶èµ‹å€¼
                $("#userName").val(data.cnName);
                $("#userAddress").val(data.address);
                $("#userId").val(data.idNum);
            } else {
                layer.msg("开始渲染打印单……");
                printWeight(result.data);
                alertError("没有获取到身份证信息!");
                return;
            }
        },
        error: function () {
            layer.alert("身份证读取失败!", {
                offset: ['300px', '300px']
            });
            layer.close(index);
            alertError("获取打印模版失败,请联系管理员查看原因");
        }
    });
}
// è¡¨å•清空
/**
 * è¯»å–车牌号
 */
function flushPlateNum() {
    var param = JSON.stringify(snapDto1);
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/inout/api/get-plateNum",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
        success: function (result) {
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                $("#plateNum").val(result.data.plateNum);
            }
            layer.close(index);
        },
        error: function () {
            layer.close(index);
            alertError("车牌识别失败!");
        }
    });
}
/**
 * æ‰‹åŠ¨é€‰æ‹©ï¼ŒèŽ·å–å¾…ç§°é‡çš„æ•°æ®ï¼Œå¼¹å‡ºé€‰æ‹©
 */
function selectByHand() {
    var param = {
        deptId: deptId,
        type: type,
        timer: Math.random()
    };
    $.ajax({
        type: "POST",
        url: "/basic/inout/list-weight-data",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
        success: function (result) {
            if (result.code != "0000") {
                layer.msg(result.msg);
            } else {
                renderTableProgressData(result.data);
            }
        },
        error: function () {
            layer.msg("系统获取数据出现异常,重新尝试");
        }
    });
}
/**
 * è¡¨å•数据重置
 */
function resetForm() {
    $("#form-data")[0].reset();
    form.render();
    recordData = null;
    curProgress = null;
    weightDto.weight = 0.0;
    $("#weightValue").text("0.0");
    $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
@@ -287,6 +375,9 @@
    $("#text-param").val(null);
}
/**
 * é¡µé¢åˆ·æ–°
 */
function flushPage() {
    layer.confirm('确定要刷新页面吗?', {icon: 3, title: '提示'}, function (index) {
        resetForm();
@@ -294,31 +385,22 @@
    });
}
//监听表单里的数值变化
document.getElementById('intelCard').addEventListener('input', function (event) {
    var intelCard = $("#intelCard").val();
    if (intelCard.length == 10) {
        flushData(intelCard, null);
    }
});
// --查询方法,获取身份证号、卡号、车牌号,进行查询
function flushData(intelCard, userIdCard) {
/**
 * æŸ¥è¯¢æ•°æ®
 * @param id
 * @param plateNum
 */
function flushData(id, plateNum) {
    var index = layer.load();
    var userIdCard = userIdCard;
    var intelCard = intelCard;
    var plateNum = $("#plateNum").val();
    var param = {
        type: type,
        progress: progress,
        intelCard: intelCard,
        userId: userIdCard,
        progress: curProgress,
        id: id,
        plateNum: plateNum
    };
    $.ajax({
        type: "POST",
        url: "../../basic/inout/inout-query",
        url: "/basic/inout/inout-query",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(param),
@@ -328,6 +410,7 @@
                notifyProgress(result.msg, result.data);
            } else {
                recordData = result.data;
                curProgress = recordData.progress;
                // è¿”回的数据进行赋值
                form.val("form-data", recordData);
                form.render();
@@ -342,41 +425,109 @@
    });
}
/**
 * æ ¹æ®ä¸šåŠ¡æ•°æ®æ›´æ–°é¡µé¢ä¸­çš„çŠ¶æ€
 */
function updateEditAndProgress() {
    if (recordData) {
        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
            $("#progress-hand").addClass("active");
            $("#progress-emptyWeight").addClass("active");
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
    //当前流程节点
    if (curProgress == null) {
        if (type === "IN") {
            curProgress = "WEIGHT_FULL";
        }
        if (InoutProgress.WEIGHT_FULL == recordData.progress) {
        if (type === "OUT") {
            curProgress = "WEIGHT_EMPTY";
        }
    }
    //显示当前流程
    if (type === "IN") {
        $("#rk-progress-register").addClass("active");
        if (curProgress === InoutProgress.WEIGHT_FULL) {
            $("#rk-progress-fullWeight").addClass("active");
            $("#rk-progress-hand").removeClass("active");
            $("#rk-progress-emptyWeight").removeClass("active");
            //满车重量可编辑
            $("#fullWeight").removeClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", false);
            $("#progress-hand").removeClass("active");
            $("#progress-emptyWeight").removeClass("active");
            //空车重量不能编辑
            $("#emptyWeight").addClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", true);
        }
    } else {
        $("#fullWeight").addClass("rkbk-search-input");
        $("#fullWeight").attr("disabled", true);
        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
            $("#rk-progress-fullWeight").addClass("active");
            $("#rk-progress-hand").addClass("active");
            $("#rk-progress-emptyWeight").addClass("active");
        $("#emptyWeight").addClass("rkbk-search-input");
        $("#emptyWeight").attr("disabled", true);
            //满车重量不能编辑
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
        $("#progress-hand").removeClass("active");
        $("#progress-emptyWeight").removeClass("active");
            //空车重量可编辑
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
        }
    }
    if (type === "OUT") {
        $("#ck-progress-register").addClass("active");
        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
            $("#ck-progress-emptyWeight").addClass("active");
            $("#ck-progress-hand").removeClass("active");
            $("#ck-progress-fullWeight").removeClass("active");
            //满车重量不能编辑
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
            //空车重量可编辑
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
        }
        if (curProgress === InoutProgress.WEIGHT_FULL) {
            $("#ck-progress-emptyWeight").addClass("active");
            $("#ck-progress-hand").addClass("active");
            $("#ck-progress-fullWeight").addClass("active");
            //满车重量可编辑
            $("#fullWeight").removeClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", false);
            //空车重量不能编辑
            $("#emptyWeight").addClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", true);
        }
    }
    //流程显示
    if (inoutProgress) {
        if (inoutProgress.indexOf("REGISTER") === -1) {
            $("#rk-progress-register").css("display", "none");
            $("#ck-progress-register").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
            $("#rk-progress-fullWeight").css("display", "none");
            $("#ck-progress-fullWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("HANDLE") === -1) {
            $("#rk-progress-hand").css("display", "none");
            $("#ck-progress-hand").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
            $("#rk-progress-emptyWeight").css("display", "none");
            $("#ck-progress-emptyWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("CARD_BACK") === -1) {
            $("#rk-progress-cardBack").css("display", "none");
            $("#ck-progress-cardBack").css("display", "none");
        }
        if (type === "IN") {
            $("#rk_progress").css("display", "block");
            $("#ck_progress").css("display", "none");
        }
        if (type === "OUT") {
            $("#ck_progress").css("display", "block");
            $("#rk_progress").css("display", "none");
        }
    }
    //根据配置信息设置地磅是否可编辑
    if (weightEditTag && weightEditTag == 'N') {
@@ -386,87 +537,6 @@
        $("#emptyWeight").addClass("rkbk-search-input");
        $("#emptyWeight").attr("disabled", true);
    }
}
// å½“前完成
function submit() {
    if (!recordData) {
        alertError("没有业务数据信息,执行被拒绝");
        return;
    }
    var data = form.val("form-data");
    if (!data.depotId) {
        alertError("提示:装卸仓库必填");
        return;
    }
    if (!data.customerName) {
        alertError("提示:客户名称必填");
        return;
    }
    // æ ¡éªŒ-入库满车称重
    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
        if (data.fullWeight <= 0.0) {
            alertError("提示:满车称重信息必填");
            return;
        }
    }
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
        if (data.emptyWeight <= 0.0) {
            alertError("提示:空车称重信息必填");
            return;
        }
        if (!data.foodVariety) {
            alertError("提示:粮食品种必填");
            return;
        }
        if (!data.settleWeight || data.settleWeight <= 0.0) {
            alertError("结算重量不合规,请核对");
            return;
        }
        if (!data.recordWeight || data.recordWeight <= 0.0) {
            alertError("入库重量不合规,请核对");
            return;
        }
    }
    //合并数据
    Object.assign(recordData, data);
    // èŽ·å–ç…§ç‰‡
    var files = [{
        fileName: snapData.fileName1
    }, {
        fileName: snapData.fileName2
    }, {
        fileName: snapData.fileName3
    }, {
        fileName: snapData.fileName4
    }];
    recordData.files = files;
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../basic/inout/submit-weight",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                notify("数据提交成功", result.data);
                if (InoutProgress.WEIGHT_FULL == recordData.progress) {
                    resetForm();
                }
            }
            layer.close(index);
        },
        error: function () {
            layer.close(index);
            alertError("提交失败,请重新尝试");
        }
    });
}
/**
@@ -504,6 +574,10 @@
    }
}
/**
 * è½¦è¾†é€‰æ‹©å¼¹çª—
 * @param list
 */
function renderTableProgressData(list) {
    // æ¸…空数据
    $("#tableListProgressData").empty();
fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js
@@ -5,10 +5,9 @@
var page = 1;
var limit = 15;
var recordData = null;
var selectData = null;  //单选的信息
var snapData;//系统抓拍对象信息
var timerWeight;
var img1, img2, img3;// é¡µé¢ä¸­çš„图片上传名称
var curProgress = null;
$(function () {
    layui.use(['layer', 'laydate', 'form', 'table'], function () {
@@ -43,28 +42,14 @@
            }
        });
        // ç›‘听仓库选择,选择后自动调用仓库的粮品种和产地信息
        form.on('select(select_depotId)', function (obj) {
            updateFoodVarietyByDepot(obj.value);
        });
        // åˆå§‹åŒ–表单数据
        renderTable();
    });
    //显示称重弹窗流程
    showProgress();
    // ç›‘听比例值填写
    $(".per").blur(function () {
        deAutoByPer();
    });
    // ç›‘听比例值填写
    // ç›‘听重量变化
    $(".weight").blur(function () {
        deAutoByWeight();
        deAuto(this.name);
    });
    //初始化WebSocket
    // initWS(deptId, bizType, progress, userId);
});
window.onload = function () {
@@ -75,7 +60,7 @@
    }, 2500);
    // åŠ è½½è§†é¢‘
    initVideo(lprDto, snapDto1, snapDto2);
    initVideo(snapDto1, snapDto2, snapDto3);
    //设置地磅
    $("#scaleName").val(weightDto.sort);
@@ -94,6 +79,7 @@
function flushData() {
    var index = layer.load();
    var param = form.val("form-param");
    param.weightTag = "WEIGHT";
    table.reload('tableData', {
        url: "/basic/inout/page-inout-data",
        where: param
@@ -108,6 +94,7 @@
// æ¸²æŸ“表单数据
function renderTable() {
    var param = form.val("form-param");
    param.weightTag = "WEIGHT";
    // æ¸…空数据
    $("#tableData").empty();
    table.render({
@@ -162,8 +149,8 @@
            templet: function (item) {
                var result = item.foodVariety;
                $.each(listFoodVariety, function (index, data) {
                    if (item.foodVariety == data.code) {
                        result = data.name;
                    if (item.foodVariety == data.dictValue) {
                        result = data.dictLabel;
                        return true;
                    }
                });
@@ -206,17 +193,19 @@
    });
}
/*-----------------------弹窗显示渲染-开始------------------------------*/
//操作前,重新流水数据当前信息
/**
 * ç§°é‡å¼¹çª—重新查询数据
 * @param obj
 */
function afreshGetData(obj) {
    var index = layer.load();
    recordData = null;
    var data = obj.data;
    var param = {
        userId: data.userId,
        plateNum: data.plateNum,
        id: data.id
        type: data.type,
        progress: data.progress,
        id: data.id,
        plateNum: data.plateNum
    };
    $.ajax({
        type: "POST",
@@ -229,7 +218,8 @@
                layer.alert("请刷新页面后,重新操作!!");
            } else {
                recordData = result.data;
                showWindows(recordData.progress);
                curProgress = recordData.progress;
                showWindows();
            }
            layer.close(index);
        },
@@ -240,13 +230,16 @@
    });
}
//显示流程操作弹窗
/**
 * ç™»è®°å¼¹çª—
 */
function quickRegister() {
    //登记按钮放开
    $("#btn_register").css("display", "block");
    $("#text-info").removeClass("text-info");
    //称重操作弹窗
    var pro = '登记';
    recordData = null;
    updateEditAndProgress();
    flushPage();
    layer.open({
@@ -263,15 +256,18 @@
    });
}
//显示流程操作弹窗
function showWindows(progress) {
/**
 * ç§°é‡å¼¹çª—
 * @param progress
 */
function showWindows() {
    //登记按钮放开
    $("#btn_register").css("display", "none");
    $("#text-info").addClass("text-info");
    //称重操作弹窗
    var pro = '空车称重';
    if (progress == 'WEIGHT_FULL') {
    if (curProgress == 'WEIGHT_FULL') {
        pro = '满车称重';
    }
    updateEditAndProgress();
@@ -290,61 +286,117 @@
    });
}
//称重弹窗中流程环节显示
function showProgress() {
    if (!inoutProgress) {
        return;
    }
    if (inoutProgress.indexOf("REGISTER") == -1) {
        $("#progress-register").css("display", "none");
    }
    if (inoutProgress.indexOf("WEIGHT_FULL") == -1) {
        $("#progress-fullWeight").css("display", "none");
    }
    if (inoutProgress.indexOf("HANDLE") == -1) {
        $("#progress-hand").css("display", "none");
    }
    if (inoutProgress.indexOf("WEIGHT_EMPTY") == -1) {
        $("#progress-emptyWeight").css("display", "none");
    }
    if (inoutProgress.indexOf("CARD_BACK") == -1) {
        $("#progress-cardBack").css("display", "none");
    }
}
//称重弹窗中更新流程节点
/**
 * æ ¹æ®ä¸šåŠ¡æ•°æ®æ›´æ–°é¡µé¢ä¸­çš„çŠ¶æ€
 */
function updateEditAndProgress() {
    if (recordData) {
        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
            $("#progress-hand").removeClass("active");
            $("#progress-fullWeight").removeClass("active");
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
    //当前流程节点
    if (curProgress == null) {
        if (type === "IN") {
            curProgress = "WEIGHT_FULL";
        }
        if (type === "OUT") {
            curProgress = "WEIGHT_EMPTY";
        }
    }
    //显示当前流程
    if (type === "IN") {
        $("#rk-progress-register").addClass("active");
        if (curProgress === InoutProgress.WEIGHT_FULL) {
            $("#rk-progress-fullWeight").addClass("active");
            $("#rk-progress-hand").removeClass("active");
            $("#rk-progress-emptyWeight").removeClass("active");
        if (InoutProgress.WEIGHT_FULL == recordData.progress) {
            //满车重量可编辑
            $("#fullWeight").removeClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", false);
            $("#progress-hand").addClass("active");
            $("#progress-fullWeight").addClass("active");
            //空车重量不能编辑
            $("#emptyWeight").addClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", true);
        }
    } else {
        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
            $("#rk-progress-fullWeight").addClass("active");
            $("#rk-progress-hand").addClass("active");
            $("#rk-progress-emptyWeight").addClass("active");
            //满车重量不能编辑
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
            //空车重量可编辑
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
        }
    }
    if (type === "OUT") {
        $("#ck-progress-register").addClass("active");
        if (curProgress === InoutProgress.WEIGHT_EMPTY) {
            $("#ck-progress-emptyWeight").addClass("active");
            $("#ck-progress-hand").removeClass("active");
            $("#ck-progress-fullWeight").removeClass("active");
            //满车重量不能编辑
            $("#fullWeight").addClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", true);
            //空车重量可编辑
            $("#emptyWeight").removeClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", false);
        }
        if (curProgress === InoutProgress.WEIGHT_FULL) {
            $("#ck-progress-emptyWeight").addClass("active");
            $("#ck-progress-hand").addClass("active");
            $("#ck-progress-fullWeight").addClass("active");
            //满车重量可编辑
            $("#fullWeight").removeClass("rkbk-search-input");
            $("#fullWeight").attr("disabled", false);
            //空车重量不能编辑
            $("#emptyWeight").addClass("rkbk-search-input");
            $("#emptyWeight").attr("disabled", true);
        }
    }
    //流程显示
    if (inoutProgress) {
        if (inoutProgress.indexOf("REGISTER") === -1) {
            $("#rk-progress-register").css("display", "none");
            $("#ck-progress-register").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_FULL") === -1) {
            $("#rk-progress-fullWeight").css("display", "none");
            $("#ck-progress-fullWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("HANDLE") === -1) {
            $("#rk-progress-hand").css("display", "none");
            $("#ck-progress-hand").css("display", "none");
        }
        if (inoutProgress.indexOf("WEIGHT_EMPTY") === -1) {
            $("#rk-progress-emptyWeight").css("display", "none");
            $("#ck-progress-emptyWeight").css("display", "none");
        }
        if (inoutProgress.indexOf("CARD_BACK") === -1) {
            $("#rk-progress-cardBack").css("display", "none");
            $("#ck-progress-cardBack").css("display", "none");
        }
        if (type === "IN") {
            $("#rk_progress").css("display", "block");
            $("#ck_progress").css("display", "none");
        }
        if (type === "OUT") {
            $("#ck_progress").css("display", "block");
            $("#rk_progress").css("display", "none");
        }
    }
    //根据配置信息设置地磅是否可编辑
    if (weightEditTag && weightEditTag == 'N') {
        $("#fullWeight").addClass("rkbk-search-input");
        $("#fullWeight").attr("disabled", true);
        $("#emptyWeight").addClass("rkbk-search-input");
        $("#emptyWeight").attr("disabled", true);
        $("#progress-hand").removeClass("active");
        $("#progress-fullWeight").removeClass("active");
    }
}
@@ -399,308 +451,135 @@
//点击称重
function weight() {
    // æ²¡æœ‰ä¸šåŠ¡æ•°æ®ä¸å¯æ‰§è¡Œ
    if (!recordData) {
        layer.alert("没有查询到业务数据,执行被拒绝!!");
        return;
    }
    // å¦‚果是空车称重
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
        form.val("form-weight", {
    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
        form.val("form-data", {
            emptyWeight: weightDto.weight
        });
        form.render();
    }
    // å¦‚果是满车称重
    if (InoutProgress.WEIGHT_FULL == recordData.progress) {
        form.val("form-weight", {
    if (InoutProgress.WEIGHT_FULL === curProgress) {
        form.val("form-data", {
            fullWeight: weightDto.weight
        });
        form.render();
    }
    form.render();
    snapData == null;
    //点击称重时候自动抓拍数据
    layer.msg("系统自动抓拍保留记录……");
    var data = form.val("form-data");
    if (!data.plateNum) {
        alertError("提示:填写登记车牌信息");
        return;
    }
    // ç‚¹å‡»ç§°é‡è‡ªåŠ¨è°ƒç”¨æŠ“æ‹
    snapData = {
        companyId: companyId,
        deptId: deptId,
        bizTag: recordData.progress,
        bizType: bizType,
        plateNum: recordData.plateNum + "-" + recordData.carNum,
        id1: (null != lprDto) ? lprDto.id : null,
        id2: (null != snapDto1) ? snapDto1.id : null,
        id3: (null != snapDto2) ? snapDto2.id : null
        progress: curProgress,
        bizType: type,
        id1: snapDto1.id,
        id2: snapDto2.id,
        id3: snapDto3.id,
        sort: $("#scaleName").val()
    };
    console.log(snapData);
    //当前AJAX服务为同步服务,返回数据包装照片信息
    var index = layer.load();
    $.ajax({
        sync: false,
        type: "POST",
        url: "../../basic/inout/snap-img",
        url: "/inout/api/snap-img",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapData),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                layer.alert(result.msg);
                alertError(result.msg);
            } else {
                layer.msg("抓拍成功");
                snapData = result.data;
            }
        },
        error: function () {
            layer.close(index);
            layer.msg("后台调用截图失败,请重新尝试!!");
            alertError("后台调用截图失败,请重新尝试");
        }
    });
    //二次称重后,自动调用下自动计算
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
        deAutoByPer();
    }
    flushBtn("btn-weight");
}
// è‡ªåŠ¨è®¡ç®—ï¼Œæ³¨æ„ï¼šå‡ºåº“æ°´åˆ†æ˜¯ +,入库水分需要 -
function deAutoByPer() {
    var curData = form.val("form-weight");
    var netWeight = 0, deImpurity = 0, deWet = 0, deSum = 0, settleWeight = 0;
    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
        return;
    }
    // è®¡ç®—净重
    netWeight = curData.fullWeight - curData.emptyWeight;
    if (netWeight <= 0) {
        layer.msg("净重小于等于0,当前计算不正确!");
        return;
    }
    // æ‚质扣重
    if (curData.impurity > 0) {
        deImpurity = (netWeight * curData.impurity / 100.00).toFixed(0);
    }
    // æ°´åˆ†å¢žé‡
    if (curData.wet > 0) {
        deWet = (netWeight * curData.wet / 100.00).toFixed(0);
    }
    // æ€»æ‰£é‡
    deSum = Number(deImpurity) + Number(curData.deOther)
        + Number(curData.deHandle);
    deSum = deSum.toFixed(0);
    // ç»“算净重,把水分添加近来
    settleWeight = Number(netWeight) - Number(deSum) + Number(deWet);
    settleWeight = settleWeight.toFixed(0);
    form.val("form-weight", {
        netWeight: netWeight,
        deImpurity: deImpurity,
        deWet: deWet,
        deSum: deSum,
        settleWeight: settleWeight
    });
    form.render();
}
// è‡ªåŠ¨è®¡ç®—
function deAutoByWeight() {
    var curData = form.val("form-weight");
    var netWeight = 0, impurity = 0, wet = 0, deSum = 0, settleWeight = 0;
    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
        return;
    }
    // å‡€é‡
    netWeight = curData.fullWeight - curData.emptyWeight;
    if (netWeight <= 0) {
        layer.msg("净重小于等于0,当前计算不正确!");
        return;
    }
    // æ‚è´¨-百分比
    if (curData.deImpurity > 0) {
        impurity = (curData.deImpurity / netWeight * 100).toFixed(2);
    }
    // æ°´åˆ† -百分比
    if (curData.deWet > 0) {
        wet = (curData.deWet / netWeight * 100).toFixed(2);
    }
    // æ€»æ‰£é‡= æ‚质扣重 + ä¸å®Œå–„扣重 + æ°”体扣重 + å€¼ä»“扣重 + åŒ…装扣重
    deSum = Number(curData.deImpurity)
        + Number(curData.deOther) + Number(curData.deHandle);
    deSum = deSum.toFixed(0);
    // ç»“算净重,把水分添加近来
    settleWeight = Number(netWeight) - Number(deSum) + Number(curData.deWet);
    settleWeight = settleWeight.toFixed(0);
    form.val("form-weight", {
        netWeight: netWeight,
        impurity: impurity,
        wet: wet,
        deSum: deSum,
        settleWeight: settleWeight
    });
    form.render();
}
//根据当前操作的按钮ID更新其他按钮状态
function flushBtn(btnId) {
    if ("btn-weight" == btnId) {// ç§°é‡åŽå¯ä»¥ç‚¹å‡»å®Œæˆç§°é‡
        $("#btn-submit").removeClass("layui-btn-disabled");
        $("#btn-submit").attr("disabled", false);
    }
    if ("btn-submit" == btnId) {
        $("#btn-submit").addClass("layui-btn-disabled");
        $("#btn-submit").attr("disabled", true);
        flushData();
        if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {// å‡ºåº“,如果是空车称重,完成收直接刷新页面
            layer.closeAll();
        } else {
            // å®Œæˆç§°é‡åŽæŽ§åˆ¶æŒ‰é’®
            $("#btn-weight").addClass("layui-btn-disabled");
            $("#btn-weight").attr("disabled", true);
            $("#btn-printBill").removeClass("layui-btn-disabled");
            $("#btn-printBill").attr("disabled", false);
            addDisabled();
        }
    }
    if ("btn-printBill" == btnId) {// æ‰“印过磅单,说明业务完成
        $("#btn-weight").removeClass("layui-btn-disabled");
        $("#btn-weight").attr("disabled", false);
        $("#btn-submit").addClass("layui-btn-disabled");
        $("#btn-submit").attr("disabled", true);
        $("#btn-printBill").addClass("layui-btn-disabled");
        $("#btn-printBill").attr("disabled", true);
        layer.closeAll();
        flushData();
    }
}
//更改扣重信息框不可编辑
function addDisabled() {
    //杂质
    $("#impurity").attr("disabled", true);
    $("#deImpurity").attr("disabled", true);
    //水分
    $("#wet").attr("disabled", true);
    $("#deWet").attr("disabled", true);
    //值仓
    $("#deHandle").attr("disabled", true);
    //其他
    $("#deOther").attr("disabled", true);
}
//恢复扣重信息框编辑状态
function delDisabled() {
    //杂质
    $("#impurity").attr("disabled", false);
    $("#deImpurity").attr("disabled", false);
    //水分
    $("#wet").attr("disabled", false);
    $("#deWet").attr("disabled", false);
    //值仓
    $("#deHandle").attr("disabled", false);
    //其他
    $("#deOther").attr("disabled", false);
}
// ç‚¹å‡»æ‰“印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成
/**
 * ç‚¹å‡»æ‰“印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成
 */
function printBill() {
    if (!recordData) {
        layer.alert("没有获取到业务数据,不支持打印!");
        alertError("没有获取到业务数据,打印被拒绝!");
        return;
    }
    // ä»ŽåŽå°èŽ·å–æ¨¡ç‰ˆå¹¶æ‰“å°
    var data = form.val("form-weight");
    // åˆå¹¶æ›´æ–°ç•¶å‰ç¼–辑数据
    Object.assign(recordData, data);
    printBillStep2();
};
// ç‚¹å‡»æ‰“印,先执行系统默认执行完成卡回收
function printBillStep2() {
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../basic/inout-report/inout-bill-weight",
        url: "/basic/print/bill-weight",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
            layer.close(index);
            if (result.code != "0000") {
                layer.msg(result.msg);
                alertError(result.msg);
            } else {
                layer.msg("开始渲染打印单……");
                printWeight(result.data);
                // åˆ·æ–°æŒ‰é’®
                flushBtn("btn-printBill");
            }
        },
        error: function () {
            layer.close(index);
            layer.msg("获取打印模版失败,请联系管理员查看原因!!");
            alertError("获取打印模版失败,请联系管理员查看原因");
        }
    });
};
}
/**
 * ç§°é‡æäº¤
 */
function submit() {
//完成称重
function submitWeight() {
    if (null == recordData) {
        notify("没有数据可以提交", null);
        return;
    }
    var data = form.val("form-weight");
    var data = form.val("form-data");
    if (!data.depotId) {
        notify("装卸仓库必须填写", null);
        alertError("提示:装卸仓库必填");
        return;
    }
    // æ ¡éªŒ-出库空车
    if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
        if (data.emptyWeight <= 0.0) {
            notify("空车称重信息必填", null);
            return;
        }
        if (!data.customerName) {
            notify("往来单位信息必填", null);
            return;
        }
    } else {
    if (!data.customerName) {
        alertError("提示:通知单信息必填");
        return;
    }
    if (!data.foodVariety) {
        alertError("提示:粮食品种必填");
        return;
    }
    // æ ¡éªŒ-入库满车称重
    if (InoutProgress.WEIGHT_FULL === curProgress) {
        if (data.fullWeight <= 0.0) {
            notify("满车称重信息必填", null);
            return;
        }
        if (!data.foodVariety) {
            notify("粮食品种必填", null);
            return;
        }
        if (!data.foodLocation) {
            notify("粮食产地必填", null);
            return;
        }
        if (!data.settleWeight || data.settleWeight <= 0.0) {
            notify("扣重后净信息不正确,请核实计算", null);
            alertError("提示:满车称重信息必填");
            return;
        }
    }
    // åˆå¹¶æ›´æ–°ç•¶å‰ç¼–辑数据
    Object.assign(recordData, data);
    if (InoutProgress.WEIGHT_EMPTY === curProgress) {
        if (data.emptyWeight <= 0.0) {
            alertError("提示:空车称重信息必填");
            return;
        }
    }
    if(recordData){
        //合并数据
        Object.assign(recordData, data);
    }else {
        recordData = data;
    }
    recordData.progress = curProgress;
    // èŽ·å–ç…§ç‰‡
    var files = [{
@@ -711,69 +590,106 @@
        fileName: snapData.fileName3
    }];
    recordData.files = files;
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "../../basic/inout/inout-next-step",
        url: "/basic/inout/submit-weight",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(recordData),
        success: function (result) {
            if (result.code != "0000") {
                layer.alert("数据提交失败,请重试!!");
                alertError(result.msg);
            } else {
                curProgress = null;
                clearInterval(timerWeight);
                layer.alert("数据提交成功!!");
                // æ›´æ–°æŒ‰é’®æ˜¾ç¤º
                flushBtn("btn-submit");
                notify("数据提交成功", result.data);
                //第一次称重后,刷新页面
                if (recordData.recordWeight <= 0.0) {
                    flushData();
                    layer.closeAll();
                }
            }
            layer.close(index);
        },
        error: function () {
            layer.close(index);
            layer.alert("提交失败,请重新尝试!!");
            alertError("提交失败,请重新尝试");
        }
    });
}
//重新称重时,表单不清空,按钮重置
function flushPage() {
    weightDto.weight = 0.0;
    $("#weightValue").text("0.0");
    $("#img_scale_statule").attr("src", "/img/web/inout/icon-red.png");
    timerGetWeight();
    //扣重信息框恢复为可编辑
    delDisabled();
    //表单数据重置
    form.val("form-weight", recordData);
    form.val("form-data", recordData);
    form.render();
}
//根据选择的仓库信息,更新粮食品种
function updateFoodVarietyByDepot(selectId) {
    var selectDepot;
    $.each(listDepot, function (index, data) {
        if (data.id === selectId) {
            selectDepot = data;
            return false;
/**
 * è¯»å–身份证
 */
function flushIdCard() {
    var index = layer.load();
    $.ajax({
        type: "GET",
        async: true,
        url: "http://127.0.0.1:9111/IDCARD",
        data: {},
        dataType: "json",
        success: function (json) {
            layer.close(index);
            var data = json;
            if (data.code === "200" || data.code == 200) {
                // ä¸´æ—¶èµ‹å€¼
                $("#userName").val(data.cnName);
                $("#userAddress").val(data.address);
                $("#userId").val(data.idNum);
            } else {
                alertError("没有获取到身份证信息!");
                return;
            }
        },
        error: function () {
            layer.alert("身份证读取失败!", {
                offset: ['300px', '300px']
            });
            layer.close(index);
        }
    });
    if (selectDepot) {
        form.val("form-weight", {
            foodVariety: selectDepot.foodVariety,
            foodLocation: selectDepot.foodLocation,
            foodLevel: selectDepot.foodLevel,
            noticeId: selectDepot.noticeId
        });
        form.render();
    }
}
/*-----------------------称重操作-结束------------------------------*/
/**
 * è¯»å–车牌号
 */
function flushPlateNum() {
    var param = JSON.stringify(snapDto1);
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/inout/api/get-plateNum",
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
        success: function (result) {
            if (result.code != "0000") {
                alertError(result.msg);
            } else {
                $("#plateNum").val(result.data.plateNum);
            }
            layer.close(index);
        },
        error: function () {
            layer.close(index);
            alertError("车牌识别失败!");
        }
    });
}
/**
 * å¼¹å‡ºæé†’框
fzzy-igdss-web/src/main/resources/static/inout/weight.js
@@ -2,7 +2,7 @@
 * å…¥åº“-称重自动计算
 * @param name è§¦å‘事件的属性名称
 */
function deAutoByIn(name) {
function deAuto(name) {
    var curData = form.val("form-data");
    if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
        return;
@@ -14,10 +14,9 @@
        return;
    }
    //其他信息
    var deHandle = curData.deHandle, dePackage = curData.dePackage, deOther = curData.deOther, settleWeight = 0,
        recordWeight = 0, deCheck = curData.deCheck, addCheck = curData.addCheck;
    recordWeight = Number(netWeight) - Number(deHandle) - Number(dePackage) - Number(deOther) - Number(deCheck);
    settleWeight = Number(recordWeight) + Number(addCheck);
    var deOther = curData.deOther, settleWeight = 0, recordWeight = 0;
    recordWeight = Number(netWeight) - Number(deOther);
    settleWeight = Number(recordWeight);
    netWeight = netWeight.toFixed(1);
    recordWeight = recordWeight.toFixed(1);
fzzy-igdss-web/src/main/resources/templates/inout/check.html
@@ -304,7 +304,7 @@
<script th:src="@{/common/constant.js}"></script>
<script th:src="@{/common/igds-common.js}"></script>
<script th:src="@{/inout/inout-common.js}"></script>
<script th:src="@{/inout/check.js}"></script>
<script th:src="@{/inout/inout-check.js}"></script>
<script type="text/html" id="barControl">
    <a class="layui-btn control-btn" lay-event="edit">结果录入</a>
fzzy-igdss-web/src/main/resources/templates/inout/handle.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,632 @@
<!DOCTYPE html>
<html lang="zh-cn" xmlns:th=http://www.thymeleaf.org>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <title>出入库管理-值仓管理</title>
    <link rel="stylesheet" th:href="@{/ajax/libs/layui/css/layui.css}"/>
    <link rel="stylesheet" th:href="@{/inout/inout-style.css}">
    <style>
        .kccz-r-btnbox {
            width: 86px !important;
        }
        .kccz-r-btn {
            width: 86px !important;
        }
        #text-param {
            font-size: 14px;
            color: red;
            padding-left: 10px;
        }
        .display-none {
            display: none;
        }
        .cursor {
            cursor: pointer;
        }
        .kccz-czxx-dl dt {
            width: 25px;
            height: 24px;
            color: #000;
            font-size: 18px;
        }
        .kccz-left-box2 {
            height: 555px;
        }
        .color-red {
            color: red !important;
        }
        .layui-table td {
            font-weight: bold;
        }
        .layui-select-disabled .layui-disabled {
            color: #000 !important;
        }
        .depot-food input {
            line-height: 34px;
            padding-right: 10px;
            font-size: 16px;
            color: #666;
            background: #eff4f6;
        }
        .rk-step-wrap {
            padding: 0px;
            border-bottom: 0px;
            text-align: center;
        }
        .rkbk-quick {
            margin-top: 15px !important;
        }
        .kccz-con {
            margin: 10px 0px;
        }
        .border-no {
            border: 0px;
        }
        .qyzj-btnbox {
            margin-top: 10px;
        }
        .kccz-data-btnbox {
            min-height: 38px;
            padding-top: 2px;
        }
        .layui-layer-title {
            font-weight: bold;
        }
        .rkbk-search-btn {
            width: 100px;
            height: 30px;
            line-height: 30px;
            font-size: 16px;
        }
        .r-240 {
            right: 240px;
        }
        .r-120 {
            right: 120px;
        }
        .rkbk-search-input.bg-date {
            background: #FFF !important;
        }
        .kccz-left-box2 {
            height: 741px;
        }
        #scaleName {
            width: 130px;
            height: 28px;
        }
        .kccz-r-item {
            height: 240px;
        }
        .kccz-r-con {
            height: 190px;
        }
        .kccz-r-vedio {
             background: unset;
            height: 190px;
        }
        .kccz-r-vedio img{
            width: 80%;
            height: 100%;
            background: #dee6ec;
        }
    </style>
</head>
<body>
<div class="l-container layui-clear">
    <div class="rk-main">
        <div class="qyzj-btnbox layui-clear">
            <div class="rkbk-quick fl">
                <button class="rkbk-quick-btn layui-btn" onclick="selectByHand()">
                    <i><img th:src="@{/img/web/inout/icon-hyd.png}"/></i>选择值仓
                </button>
                <button id="btn-submit" class="rkbk-quick-btn layui-btn btn-green" onclick="submit()">
                    <i><img th:src="@{/img/web/inout/icon-ok.png}"/></i>值仓完成
                </button>
                <button class="rkbk-quick-btn layui-btn btn-violet" onclick="flushPage()">
                    <i><img th:src="@{/img/web/inout/icon-shuaxin2.png}"/></i>刷新页面
                </button>
            </div>
            <!-- æµç¨‹å¼•导 -->
            <div class="rk-step-wrap fr">
                <ul class="rk-step" id="rk_progress" style="display: none;">
                    <li id="rk-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                    </li>
                    <li id="rk-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="rk-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="rk-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="rk-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
                <ul class="rk-step" id="ck_progress" style="display: none;">
                    <li id="ck-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>出库登记</p>
                    </li>
                    <li id="ck-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="ck-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>出库值仓</p>
                    </li>
                    <li id="ck-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="ck-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
            </div>
            <!-- æµç¨‹å¼•导EDN -->
        </div>
        <!--qyzj-btnbox end-->
        <div class="kccz-con">
            <div class="kccz-left fl">
                <div class="kccz-left-box2 radius-6">
                    <div class="rkbk-tit">
                        <i></i>
                        <h3>业务数据<span id="text-param"></span></h3>
                    </div>
                    <div class="kccz-data-form layui-row">
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <input type="text" name="foodLocationId">
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="noticeId">
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏-单据号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="id" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏-流程节点</label>
                                <div class="layui-input-block">
                                    <input type="text" name="progress" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏-通知单号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="noticeId" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏-产地</label>
                                <div class="layui-input-block">
                                    <input type="text" name="foodLocationId"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <label class="layui-form-label">隐藏-类型</label>
                                <div class="layui-input-block">
                                    <input type="text" name="type" th:value="${type}"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label  color-red" id="depotIdLabel">装卸仓库</label>
                                    <div class="layui-input-block">
                                        <select name="depotId" id="depotId" lay-filter="select_depotId">
                                            <option value=""></option>
                                            <option th:each="depot,depotSet:${listDepot}"
                                                    th:value="${depot.id}" th:text="${depot.name}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">毛重(满车)</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="fullWeight" id="fullWeight" autocomplete="off"
                                               placeholder="地磅自动带入" class="layui-input rkbk-search-input"
                                               disabled>
                                        <em
                                                class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">皮重(空车)</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="emptyWeight" id="emptyWeight" autocomplete="off"
                                               placeholder="地磅自动带入" class="layui-input weight rkbk-search-input"
                                               disabled>
                                        <em
                                                class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">通知单</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="customerName" placeholder="请选择"
                                               autocomplete="off" class="layui-input" disabled="disabled"> <em
                                            class="kccz-data-dw cursor" onclick="showNotice()">……</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">粮食品种</label>
                                    <div class="layui-input-block">
                                        <select name="foodVariety" id="foodVariety">
                                            <option value=""></option>
                                            <option th:each="dic,dicSet:${listFoodVariety}"
                                                    th:value="${dic.dictValue}" th:text="${dic.dictLabel}"></option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">净&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="netWeight" autocomplete="off"
                                               placeholder="自动计算,不可编辑" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">粮食产地</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="foodLocation" placeholder="请选择"
                                               autocomplete="off" class="layui-input" disabled="disabled"> <em
                                            class="kccz-data-dw cursor" onclick="showFoodLocation()">……</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">æ°´&nbsp;&nbsp;&nbsp;&nbsp;分</label>
                                    <div class="layui-input-block">
                                        <input id="perWet" type="text" name="perWet" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
                                            class="kccz-data-dw">%</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">扣&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input id="deOther" type="text" name="deOther" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
                                            class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">单&nbsp;&nbsp;&nbsp;&nbsp;ä»·</label>
                                    <div class="layui-input-block">
                                        <input id="price" type="text" name="price" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
                                            class="kccz-data-dw">元</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">杂&nbsp;&nbsp;&nbsp;&nbsp;è´¨</label>
                                    <div class="layui-input-block">
                                        <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
                                            class="kccz-data-dw">%</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">入库重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="recordWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs8">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">备注说明</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="remarks" placeholder="请输入内容"
                                               class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">结算重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="settleWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">承运人</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userName" placeholder="请输入" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">身份证号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userId" id="userId" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum" id="plateNum" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">联系电话</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userContact" id="userContact" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-xs8">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userAddress" id="userAddress" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <!--kccz-left-box2 end-->
            </div>
            <!--kccz-left end-->
            <div class="kccz-right fr bg-ef">
                <div class="kccz-r-item radius-6">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录1</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img1"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn1"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录2</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img2"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn2"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
                <div class="kccz-r-item radius-6 mt-10">
                    <div class="kccz-r-box">
                        <div class="rkbk-tit">
                            <i></i>
                            <h3>值仓记录3</h3>
                        </div>
                        <div class="kccz-r-con">
                            <div class="kccz-r-vedio"><img id="kccz-r-img3"></div>
                            <div class="kccz-r-btnbox">
                                <a href="javascript:;" class="kccz-r-btn" id="kccz-r-btn3"> <span
                                        class="kccz-r-img"></span>
                                    <p>上传图片</p>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--kccz-r-item end-->
            </div>
        </div>
        <!--kccz-con end-->
    </div>
    <!--rk-main end-->
</div>
<!--l-container end-->
<script th:inline="javascript">
    //流程环节
    var inoutProgress = [[${inoutProgress}]];
    var curProgress = [[${progress}]];
    var deptId = [[${deptId}]];
    var listDepot = [[${listDepot}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
</script>
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/common/constant.js}"></script>
<script th:src="@{/common/igds-common.js}"></script>
<script th:src="@{/inout/inout-common.js}"></script>
<script th:src="@{/inout/inout-handle.js}"></script>
</body>
<!-- å¼¹å‡ºç²®é£Ÿäº§åœ° -->
<div class="layui-tab-content" id="listFoodLocation" style="display: none;">
    <table class="layui-table" lay-skin="nob" id="tableFoodLoaction"
           lay-filter="tableFoodLoaction" style="margin: 0px;"></table>
</div>
<!-- æµç¨‹æ•°æ®ä¿¡æ¯ -->
<div class="layui-tab-content" id="listProgressData" style="display: none;">
    <table class="layui-table tableListProgressData" id="tableListProgressData"
           lay-filter="tableListProgressData">
        <thead>
        <tr class="qyzj-table-tit">
            <th>单据号</th>
            <th>承运人</th>
            <th>车牌号</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
</div>
<!-- å¼¹å‡ºæ¡†çš„信息 -->
<div class="layui-tab-content" id="dialog-from-notify" style="display: none;">
    <table class="layui-table">
        <colgroup>
            <col width="100">
        </colgroup>
        <tbody>
        <tr>
            <td>返回信息</td>
            <td id="resultMsg" style="color: red;font-weight: bold;"></td>
        </tr>
        <tr>
            <td>承运人</td>
            <td id="resultUserName" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>车牌号</td>
            <td id="resultPlateNum" style="font-weight: bold;"></td>
        </tr>
        <tr>
            <td>下一步</td>
            <td id="resultType" style="font-weight: bold;"></td>
        </tr>
        </tbody>
    </table>
</div>
<script type="text/html" id="barSelectProgress">
    <a class="layui-btn layui-btn-xs" lay-event="select">选择值仓</a>
</script>
</html>
fzzy-igdss-web/src/main/resources/templates/inout/register.html
@@ -334,7 +334,7 @@
<script th:src="@{/common/igds-common.js}"></script>
<script th:src="@{/inout/inout-common.js}"></script>
<script th:src="@{/inout/video-play.js}"></script>
<script th:src="@{/inout/register.js}"></script>
<script th:src="@{/inout/inout-register.js}"></script>
<!-- å¼¹å‡ºæ¡†çš„信息 -->
<div class="layui-tab-content" id="dialog-from-notify" style="display: none;">
fzzy-igdss-web/src/main/resources/templates/inout/weight.html
@@ -7,7 +7,7 @@
    <meta name="renderer" content="webkit">
    <title>出入库管理-入库称重</title>
    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
    <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
    <!--使用打印插件 éšè—å½“前插件 -->
@@ -17,9 +17,11 @@
        .kccz-r-btnbox {
            width: 86px !important;
        }
        .layui-table-body {
            max-height: 400px;
        }
        .kccz-r-btn {
            width: 86px !important;
        }
@@ -120,11 +122,7 @@
        }
        .rkbk-search-input {
            background: #FFF !important;
        }
        .rkbk-search-input.bg-date {
            background: #FFF !important;
            background: #e7eaec !important;
        }
        #scaleName {
@@ -218,41 +216,67 @@
            </div>
            <!-- æµç¨‹å¼•导 -->
            <div class="rk-step-wrap fr">
                <ul class="rk-step">
                    <li id="progress-register" class="active rk-step-first">
                <ul class="rk-step" id="rk_progress" style="display: none;">
                    <li id="rk-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                    </li>
                    <li id="rk-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="rk-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="rk-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="rk-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
                <ul class="rk-step" id="ck_progress" style="display: none;">
                    <li id="ck-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                        <p>出库登记</p>
                    </li>
                    <li id="progress-check" class="active">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-zhijian.png}"/>
                        </span>
                        <p>扦样质检</p>
                    </li>
                    <li id="progress-fullWeight" class="active">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="progress-hand" class="">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="progress-emptyWeight" class="">
                    <li id="ck-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="progress-cardBack">
                    <li id="ck-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>出库值仓</p>
                    </li>
                    <li id="ck-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="ck-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
@@ -311,24 +335,40 @@
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <input type="text" name="id">
                                <label class="layui-form-label">隐藏-单据号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="id" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="progress">
                                <label class="layui-form-label">隐藏-流程节点</label>
                                <div class="layui-input-block">
                                    <input type="text" name="progress" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="type">
                                <label class="layui-form-label">隐藏-通知单号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="noticeId" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="foodLocationId">
                                <label class="layui-form-label">隐藏-产地</label>
                                <div class="layui-input-block">
                                    <input type="text" name="foodLocationId"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="noticeId">
                                <label class="layui-form-label">隐藏-类型</label>
                                <div class="layui-input-block">
                                    <input type="text" name="type" th:value="${type}"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="foodType">
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label  color-red" id="depotIdLabel">装卸仓库</label>
@@ -409,7 +449,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">水分</label>
                                    <label class="layui-form-label">æ°´&nbsp;&nbsp;&nbsp;&nbsp;分</label>
                                    <div class="layui-input-block">
                                        <input id="perWet" type="text" name="perWet" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -419,7 +459,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">扣重</label>
                                    <label class="layui-form-label">扣&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input id="deOther" type="text" name="deOther" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -429,7 +469,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">单价</label>
                                    <label class="layui-form-label">单&nbsp;&nbsp;&nbsp;&nbsp;ä»·</label>
                                    <div class="layui-input-block">
                                        <input id="price" type="text" name="price" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -439,7 +479,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">杂质</label>
                                    <label class="layui-form-label">杂&nbsp;&nbsp;&nbsp;&nbsp;è´¨</label>
                                    <div class="layui-input-block">
                                        <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -451,7 +491,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label">入库重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="recordWeight" placeholder="自动计算"
                                        <input type="text" name="recordWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
@@ -470,7 +510,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label">结算重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="settleWeight" placeholder="自动计算"
                                        <input type="text" name="settleWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
@@ -487,17 +527,18 @@
                            </div>
                            <div class="layui-col-xs12">
                                <div style="height: 40px">
                                    <input type="button" value="读身份证" style="height: 34px;line-height: 34px;right: 120px;"
                                    <input type="button" value="读身份证"
                                           style="height: 34px;line-height: 34px;right: 120px;"
                                           class="rkbk-search-btn layui-btn" onclick="flushIdCard()">
                                    <input type="button" value="读车牌" style="height: 34px;line-height: 34px"
                                           class="rkbk-search-btn layui-btn" onclick="flushData(null,null)">
                                           class="rkbk-search-btn layui-btn" onclick="flushPlateNum()">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">承运人</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userName1" placeholder="请输入" class="layui-input">
                                        <input type="text" name="userName" placeholder="请输入" class="layui-input">
                                    </div>
                                </div>
                            </div>
@@ -505,7 +546,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">身份证号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userId1" id="userId1" placeholder="请输入"
                                        <input type="text" name="userId" id="userId" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
@@ -514,7 +555,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum1" id="plateNum1" placeholder="请输入"
                                        <input type="text" name="plateNum" id="plateNum" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
@@ -641,7 +682,7 @@
</script>
<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/common/constant.js}"></script>
<script th:src="@{/common/igds-common.js}"></script>
fzzy-igdss-web/src/main/resources/templates/inout/weight2.html
@@ -8,7 +8,7 @@
    <meta name="renderer" content="webkit">
    <title>出入库管理-出库简易操作</title>
    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
    <link rel="stylesheet" type="text/css" th:href="@{/ajax/libs/layui/css/layui.css}"/>
    <link rel="stylesheet" type="text/css" th:href="@{/inout/inout-style.css}">
    <!--使用打印插件 éšè—å½“前插件 -->
@@ -113,13 +113,13 @@
        }
        .rkbk-search-input {
            background: #FFFFFF;
            background: #e7eaec !important;
        }
        .kccz-left-box1 {
            padding: 1px 20px 10px 20px;
        }
        .kccz-left-box2 {
            height: 512px;
            height: 520px;
        }
        .text-info{
            margin: 0 0 20px 0;
@@ -312,8 +312,33 @@
</div>
<!--l-container end-->
<script th:inline="javascript">
    //流程环节
    var inoutProgress = [[${inoutProgress}]];
    var progress = [[${progress}]];
    var deptId = [[${deptId}]];
    var listDepot = [[${listDepot}]];
    var weightEditTag = [[${weightEditTag}]];
    var listFoodVariety = [[${listFoodVariety}]];
    //userId
    var userId = [[${loginUser.loginName}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
<script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
    //地磅信息
    var weightDto = [[${weightDto}]];
    //过程摄像头
    var snapDto1 = [[${snapDto1}]];
    var snapDto2 = [[${snapDto2}]];
    var snapDto3 = [[${snapDto3}]];
    //默认查询时间
    var startTime = [[${startTime}]];
    var endTime = [[${endTime}]];
</script>
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/common/constant.js}"></script>
<script th:src="@{/common/igds-common.js}"></script>
@@ -322,36 +347,6 @@
<script th:src="@{/inout/video-play.js}"></script>
<script th:src="@{/inout/weight.js}"></script>
<script th:src="@{/inout/inout-weight2.js}"></script>
<script th:inline="javascript">
    //流程环节
    var inoutProgress = [[${inoutProgress}]];
    //库区编码
    var deptId = [[${deptId}]];
    //仓库列表
    var listDepot = [[${listDepot}]];
    //业务步骤
    var bizType = [[${bizType}]];
    //userId
    var userId = [[${loginUser.loginName}]];
    //出入库类型
    var type = [[${type}]];
    var companyId = [[${loginUser.companyId}]];
    //品种
    var listFoodVariety = [[${listFoodVariety}]];
    //当前流程
    var progress = [[${progress}]];
    //地磅信息
    var weightDto = [[${weightDto}]];
    //抓拍摄像机
    var snapDto1 = [[${snapDto1}]];
    var snapDto2 = [[${snapDto2}]];
    var snapDto3 = [[${snapDto3}]];
    //默认查询时间
    var startTime = [[${startTime}]];
    var endTime = [[${endTime}]];
</script>
<!-- å¼¹å‡ºé€šçŸ¥å• -->
<div class="layui-tab-content" id="listNotice" style="display: none;">
@@ -427,30 +422,68 @@
            </div>
            <!-- æµç¨‹å¼•导 -->
            <div class="rk-step-wrap fr" style="padding: unset;border-bottom: unset">
                <ul class="rk-step">
                    <li id="progress-register" class="active rk-step-first">
                <ul class="rk-step" id="rk_progress" style="display: none;">
                    <li id="rk-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                    </li>
                    <li id="rk-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="rk-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="rk-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="rk-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
                <ul class="rk-step" id="ck_progress" style="display: none;">
                    <li id="ck-progress-register" class="rk-step-first">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-dengji.png}"/>
                        </span>
                        <p>入库登记</p>
                        <p>出库登记</p>
                    </li>
                    <li id="progress-fullWeight">
                    <li id="ck-progress-emptyWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                    </li>
                    <li id="ck-progress-hand">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>出库值仓</p>
                    </li>
                    <li id="ck-progress-fullWeight">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>满车称重</p>
                    </li>
                    <li id="progress-hand" class="">
                    <li id="ck-progress-cardBack">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-xiehuo.png}"/>
                        </span>
                        <p>入库值仓</p>
                    </li>
                    <li id="progress-emptyWeight" class="">
                        <span class="rk-step-span">
                            <img th:src="@{/img/web/inout/icon-chengzhong.png}"/>
                        </span>
                        <p>空车称重</p>
                            <img th:src="@{/img/web/inout/icon-banli.png}"/>
                        </span>
                        <p>离库确认</p>
                    </li>
                </ul>
            </div>
@@ -507,24 +540,40 @@
                        <form class="layui-form" action="" id="form-data"
                              lay-filter="form-data">
                            <div class="layui-form-item display-none">
                                <input type="text" name="id">
                                <label class="layui-form-label">隐藏-单据号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="id" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="progress">
                                <label class="layui-form-label">隐藏-流程节点</label>
                                <div class="layui-input-block">
                                    <input type="text" name="progress" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="type">
                                <label class="layui-form-label">隐藏-通知单号</label>
                                <div class="layui-input-block">
                                    <input type="text" name="noticeId" autocomplete="off"
                                           class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="foodLocationId">
                                <label class="layui-form-label">隐藏-产地</label>
                                <div class="layui-input-block">
                                    <input type="text" name="foodLocationId"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="noticeId">
                                <label class="layui-form-label">隐藏-类型</label>
                                <div class="layui-input-block">
                                    <input type="text" name="type" th:value="${type}"
                                           autocomplete="off" class="layui-input rkbk-search-input">
                                </div>
                            </div>
                            <div class="layui-form-item display-none">
                                <input type="text" name="foodType">
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label  color-red" id="depotIdLabel">装卸仓库</label>
@@ -605,7 +654,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">水分</label>
                                    <label class="layui-form-label">æ°´&nbsp;&nbsp;&nbsp;&nbsp;分</label>
                                    <div class="layui-input-block">
                                        <input id="perWet" type="text" name="perWet" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -615,7 +664,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">扣重</label>
                                    <label class="layui-form-label">扣&nbsp;&nbsp;&nbsp;&nbsp;重</label>
                                    <div class="layui-input-block">
                                        <input id="deOther" type="text" name="deOther" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -625,7 +674,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">单价</label>
                                    <label class="layui-form-label">单&nbsp;&nbsp;&nbsp;&nbsp;ä»·</label>
                                    <div class="layui-input-block">
                                        <input id="price" type="text" name="price" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -635,7 +684,7 @@
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label">杂质</label>
                                    <label class="layui-form-label">杂&nbsp;&nbsp;&nbsp;&nbsp;è´¨</label>
                                    <div class="layui-input-block">
                                        <input id="perImpurity" type="text" name="perImpurity" autocomplete="off"
                                               placeholder="请输入" class="layui-input weight"> <em
@@ -647,7 +696,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label">入库重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="recordWeight" placeholder="自动计算"
                                        <input type="text" name="recordWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
@@ -666,7 +715,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label">结算重量</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="settleWeight" placeholder="自动计算"
                                        <input type="text" name="settleWeight" placeholder="自动计算,不可编辑"
                                               autocomplete="off" class="layui-input rkbk-search-input"
                                               disabled> <em class="kccz-data-dw">KG</em>
                                    </div>
@@ -683,17 +732,19 @@
                            </div>
                            <div class="layui-col-xs12">
                                <div style="height: 40px" id="btn_register">
                                    <input type="button" value="读身份证" style="height: 34px;line-height: 34px;right: 120px;width: 100px"
                                    <input type="button" value="读身份证"
                                           style="height: 34px;line-height: 34px;right: 120px;width: 100px;"
                                           class="rkbk-search-btn layui-btn" onclick="flushIdCard()">
                                    <input type="button" value="读车牌" style="height: 34px;line-height: 34px;width: 100px"
                                           class="rkbk-search-btn layui-btn" onclick="flushData(null,null)">
                                    <input type="button" value="读车牌"
                                           style="height: 34px;line-height: 34px;width: 100px;"
                                           class="rkbk-search-btn layui-btn" onclick="flushPlateNum()">
                                </div>
                            </div>
                            <div class="layui-col-xs4">
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">承运人</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userName1" placeholder="请输入" class="layui-input">
                                        <input type="text" name="userName" placeholder="请输入" class="layui-input">
                                    </div>
                                </div>
                            </div>
@@ -701,7 +752,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">身份证号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="userId1" id="userId1" placeholder="请输入"
                                        <input type="text" name="userId" id="userId" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
@@ -710,7 +761,7 @@
                                <div class="layui-form-item">
                                    <label class="layui-form-label color-red">车牌号</label>
                                    <div class="layui-input-block">
                                        <input type="text" name="plateNum1" id="plateNum1" placeholder="请输入"
                                        <input type="text" name="plateNum" id="plateNum" placeholder="请输入"
                                               autocomplete="off" class="layui-input">
                                    </div>
                                </div>
@@ -734,9 +785,11 @@
                                </div>
                            </div>
                            <div class="layui-col-xs8" style="padding-left: 50px;color: #2ab5ad;margin-top: -5px">
                            <div class="layui-col-xs8" style="padding-left: 50px;color: #2ab5ad;">
                                è¯´æ˜Žï¼š
                                <span style="color: #2ab5ad;">1. å‡€é‡=毛重-皮重;入库重量=结算重量=净重-扣重;</span>
                                <span style="color: #2ab5ad;">
                                        1. å‡€é‡=毛重-皮重;入库重量=结算重量=净重-扣重;
                                    </span>
                            </div>
                        </form>
                    </div>