//称重-包括空车和满车称重
var layer;
var form;
var table;
var recordData = null;// 业务数据信息
var snapData;//系统抓拍对象信息
var timerWeight;
$(function () {
layui.use(['layer', 'laydate', 'form', 'table', 'util'], function () {
var util = layui.util;
layer = layui.layer;
form = layui.form;
table = layui.table;
layui.laydate.render({
elem: '#test1',
theme: '#7b8e9f'
});
// 右下角添加固定信息
util.fixbar({
bar1: true,
css: {
right: 10,
bottom: 20
},
bgcolor: '#53adce',
click: function (type) {
if (type === 'bar1') {
layer.closeAll();
layer.open({
type: 2,
title: false,
shadeClose: true,
shade: 0.3,
closeBtn: 2,
area: ['1000px', '640px'],
content: '../../basic/inout/inout-progress?type=' + type + "&t=" + Math.random()
});
}
}
});
//监听仓库选择,选择后自动调用仓库的粮食品种信息
form.on('select(select_depotId)', function (obj) {
updateFoodVarietyByDepot(obj.value);
})
});
//显示流程环节
showProgress();
// 监听比例值填写
$(".per").blur(function () {
deAutoByPer();
});
// 监听重量变化
$(".weight").blur(function () {
deAutoByWeight();
});
// 初始化WebSocket
initInoutWS(companyId, bizType, progress, userId);
});
window.onload = function () {
//自动连接地磅信息,2.5秒获取一次地磅重量信息
// clearInterval(timerWeight);
// timerWeight = setInterval(function () {
// flushWeight();
// }, 2500);
// 加载视频
initVideo(lprDto, snapDto1, snapDto2);
};
// socket信息返回處理
function socketOnMessage(packet) {
var packetData = packet.data;
// 车牌识别-根据Sn进行匹配,车牌进行匹配,如果匹配失败则弹出提示信息
if (packet.bizId == "PLATE_NUM") {
if (packetData.sn == lprDto.sn) {
if (recordData.plateNum && packetData.plateNum != recordData.plateNum) {
layer.alert("请注意:系统检测车牌为:" + packetData.plateNum + ",与当前卡片信息不符合,请核对!");
}
img1 = packetData.imgName;
window.parent.sysNotify("车牌识别结果:" + packetData.plateNum);
}
}
}
// 根据当前操作的按钮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);
if (InoutProgress.WEIGHT_FULL == recordData.progress) {// 如果是满车称重,则直接当前节点完成
resetForm();
} 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);
delDisabled();
resetForm();
}
}
//控制流程环节显示
function showProgress() {
if (!inoutProgress) {
return;
}
if (inoutProgress.indexOf("REGISTER") == -1) {
$("#progress-register").css("display", "none");
}
if (inoutProgress.indexOf("CHECK") == -1) {
$("#progress-check").css("display", "none");
}
if (inoutProgress.indexOf("WEIGHT_FULL") == -1) {
$("#progress-fullWeight").css("display", "none");
}
if (inoutProgress.indexOf("HANDLE") == -1) {
$("#progress-hand").css("display", "none");
}
if (inoutProgress.indexOf("WEIGHT_EMPTY") == -1) {
$("#progress-emptyWeight").css("display", "none");
}
if (inoutProgress.indexOf("CARD_BACK") == -1) {
$("#progress-cardBack").css("display", "none");
}
}
//更改扣重信息框不可编辑
function 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 weight() {
// 没有业务数据不可执行
if (!recordData) {
layer.alert("没有查询到业务数据,执行被拒绝!!");
return;
}
// 如果是空车称重
if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
form.val("form-data", {
emptyWeight: weightDto.weight
});
}
// 如果是满车称重
if (InoutProgress.WEIGHT_FULL == recordData.progress) {
form.val("form-data", {
fullWeight: weightDto.weight
});
}
form.render();
// 点击称重时候自动抓拍数据
layer.msg("系统自动抓拍保留记录……");
snapData = {
companyId: companyId,
deptId: deptId,
bizTag: recordData.progress,
bizType: bizType,
plateNum: recordData.plateNum,
id1: (null != lprDto) ? lprDto.id : null,
id2: (null != snapDto1) ? snapDto1.id : null,
id3: (null != snapDto2) ? snapDto2.id : null
};
// console.log(snapData);
//当前AJAX服务为同步服务,返回数据包装照片信息
var index = layer.load();
$.ajax({
sync: false,
type: "POST",
url: "../../basic/inout/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);
} else {
snapData = result.data;
}
},
error: function () {
layer.close(index);
layer.msg("后台调用截图失败,请重新尝试!!");
}
});
//入库第二次称重时调用计算方法
if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
deAutoByPer();
}
flushBtn("btn-weight");
}
// 自动计算,注意:水分不计入结算重量
function deAutoByPer() {
var curData = form.val("form-data");
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;
}
//水分扣重和杂质扣重
var checkItems = recordData.checkItems;
if (checkItems) {
var deBase = 0, multiple = 0;
$.each(checkItems, function (index, checkItem) {
if (!checkItem.value) return;//跳出本次循环
if (null == checkItem.ruleNum) return;//没有配置规则 不处理
if (null == checkItem.ruleReduce) return;//跳出本次循环
//水分扣重
if (CHECK_ST.C01 == checkItem.standardId) {
deBase = Number(curData.wet) - checkItem.upperLimit;
if (deBase == 0) return;
multiple = parseInt(deBase / checkItem.ruleNum);//倍数
if (deBase > 0) {//扣重正数
deWet = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
}
}
//杂质只扣不补
if (CHECK_ST.C02 == checkItem.standardId) {
deBase = Number(curData.impurity) - checkItem.upperLimit;
if (deBase == 0) return;
multiple = parseInt(deBase / checkItem.ruleNum);
if (deBase > 0) {//扣重
deImpurity = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
}
}
});
}
// 总扣重,水分不计入
deSum = Number(deImpurity) + Number(curData.deOther) + Number(curData.deHandle) + Number(deWet);
deSum = deSum.toFixed(0);
// 结算净重
settleWeight = Number(netWeight) - Number(deSum);
settleWeight = settleWeight.toFixed(0);
form.val("form-data", {
netWeight: netWeight,
deImpurity: deImpurity,
deWet: deWet,
deSum: deSum,
settleWeight: settleWeight
});
form.render();
}
// 根据重量信息变化自动计算,不在反向计算百分比
function deAutoByWeight() {
var curData = form.val("form-data");
var netWeight = 0, deSum = 0, settleWeight = 0, deImpurity = 0, deWet = 0;
if (curData.fullWeight == 0 || curData.emptyWeight == 0) {
return;
}
// 净重
netWeight = curData.fullWeight - curData.emptyWeight;
if (netWeight <= 0) {
layer.msg("净重小于等于0,当前计算不正确!");
return;
}
//水分扣重和杂质扣重
var checkItems = recordData.checkItems;
if (checkItems) {
var deBase = 0, multiple = 0;
$.each(checkItems, function (index, checkItem) {
if (!checkItem.value) return;//跳出本次循环
if (null == checkItem.ruleNum) return;//没有配置规则 不处理
if (null == checkItem.ruleReduce) return;//跳出本次循环
//水分扣重
if (CHECK_ST.C01 == checkItem.standardId) {
deBase = Number(curData.wet) - checkItem.upperLimit;
if (deBase == 0) return;
multiple = parseInt(deBase / checkItem.ruleNum);//倍数
if (deBase > 0) {//扣重正数
deWet = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
}
}
//杂质只扣不补
if (CHECK_ST.C02 == checkItem.standardId) {
deBase = Number(curData.impurity) - checkItem.upperLimit;
if (deBase == 0) return;
multiple = parseInt(deBase / checkItem.ruleNum);
if (deBase > 0) {//扣重
deImpurity = (netWeight * multiple * checkItem.ruleReduce / 100.00).toFixed(0);
}
}
});
}
// 总扣重
deSum = Number(deImpurity) + Number(curData.deOther) + Number(curData.deHandle) + Number(deWet);
deSum = deSum.toFixed(0);
// 结算净重
settleWeight = Number(netWeight) - Number(deSum);
settleWeight = settleWeight.toFixed(0);
form.val("form-data", {
deImpurity: deImpurity,
deWet: deWet,
netWeight: netWeight,
deSum: deSum,
settleWeight: settleWeight
});
form.render();
}
//新的读卡方式
function flushICCard() {
$("#intelCard").val(null);
$("#form-data")[0].reset();
form.render();
recordData = null;
$.ajax({
type: "GET",
async: true,
url: "http://127.0.0.1:9111/ICCARD",
data: {},
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallback",
success: function (json) {
//console.log(json);
var data = json.no;
//console.log(data);
if (data === "not found") {
layer.alert("请重新读卡!", {offset: ['300px', '300px']});
} else {
$("#intelCard").val(data);
flushData();
}
},
error: function () {
layer.alert("IC卡读取出错!", {offset: ['300px', '300px']});
}
});
}
// 使用插件获取省份证
function flushIdCard() {
var index = layer.load();
$.ajax({
type: "GET",
async: true,
url: "http://127.0.0.1:9111/IDCARD",
data: {},
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallback",
success: function (json) {
layer.close(index);
var data = json.content;
if (data === "not found") {
layer.alert("没有读取到身份证信息,请手动录入!", {
offset: ['300px', '300px']
});
return;
}
$("#userId").val(data.idNum);
flushData();
},
error: function () {
layer.alert("身份证读取失败,请手动录入!", {
offset: ['300px', '300px']
});
layer.close(index);
}
});
}
function flushWeight() {
$.ajax({
type: "GET",
async: true,
timeout: 2000,
url: "http://127.0.0.1:9111/WEIGHT",
data: {},
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallback",
success: function (json) {
var data = json.content;
if (!data) data = 0.0;
weightDto.weight = data;
$("#weightValue").html(data + "KG");
$("#img_scale_statule").attr("src", "../../static/images/icon-gree.png");
},
error: function () {
weightDto.weight = 0.0;
$("#weightValue").html("0.0KG");
$("#img_scale_statule").attr("src", "../../static/images/icon-red.png");
}
});
}
// 点击打印,系统判断是否已经执行完成,如果已经完成,直接打印,如果未完成则先执行完成
function printBill() {
if (!recordData) {
layer.alert("没有获取到业务数据,不支持打印!");
return;
}
// 从后台获取模版并打印
var data = form.val("form-data");
// 合并更新當前编辑数据
Object.assign(recordData, data);
printBillStep2();
}
// 点击打印,先执行系统默认执行完成卡回收
function printBillStep2() {
var index = layer.load();
$.ajax({
type: "POST",
url: "../../basic/inout-report/inout-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);
} else {
layer.msg("开始渲染打印单……");
if(companyId && companyId == "5016"){
print5016Weight(result.data);
console.log("5016");
}else {
printWeight(result.data);
}
// 刷新按钮
flushBtn("btn-printBill");
}
},
error: function () {
layer.close(index);
layer.msg("获取打印模版失败,请联系管理员查看原因!!");
}
});
}
// 打印抽样单
function showCheck() {
if (!recordData) {
layer.alert("没有获取到业务数据,无法查看!");
}
}
// 表单清空
function resetForm() {
$("#form-data")[0].reset();
form.render();
recordData = null;
weightDto.weight = 0.0;
$("#weightValue").html("0.0KG");
$("#img_scale_statule").attr("src", "../../static/images/icon-red.png");
//称重可以复用
$("#btn-weight").removeClass("layui-btn-disabled");
$("#btn-weight").attr("disabled", false);
//空车和满车被重置
updateEditAndProgress();
//扣重信息框恢复为可编辑
delDisabled();
}
function flushPage() {
layer.confirm('确定要刷新页面吗?', {icon: 3, title: '提示'}, function (index) {
resetForm();
layer.msg("页面重置完成,请重新操作……");
layer.close(index);
});
}
// --查询方法,获取身份证号、卡号、车牌号,进行查询
function flushData() {
var index = layer.load();
var userId2 = $("#userId").val();
var intelCard = $("#intelCard").val();
var plateNum = $("#plateNum").val();
var param = {
type: type,
progress: progress,
intelCard: intelCard,
userId: userId2,
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) {
if (result.code != "0000") {
notify(result.msg, result.data);
} else {
recordData = result.data;
// 返回的数据进行赋值
form.val("form-data", recordData);
form.render();
updateEditAndProgress();
}
layer.close(index);
},
error: function () {
layer.close(index);
layer.alert("查询失败,请重新尝试!!");
}
});
}
/**
* 跟新流程说明提心信息
*/
function updateEditAndProgress() {
if (recordData) {
if (InoutProgress.WEIGHT_EMPTY == recordData.progress) {
$("#emptyWeight").removeClass("rkbk-search-input");
$("#emptyWeight").attr("disabled", false);
$("#progress-hand").addClass("active");
$("#progress-emptyWeight").addClass("active");
$("#fullWeight").addClass("rkbk-search-input");
$("#fullWeight").attr("disabled", true);
}
if (InoutProgress.WEIGHT_FULL == recordData.progress) {
$("#fullWeight").removeClass("rkbk-search-input");
$("#fullWeight").attr("disabled", false);
$("#progress-hand").removeClass("active");
$("#progress-emptyWeight").removeClass("active");
$("#emptyWeight").addClass("rkbk-search-input");
$("#emptyWeight").attr("disabled", true);
}
} else {
$("#fullWeight").addClass("rkbk-search-input");
$("#fullWeight").attr("disabled", true);
$("#emptyWeight").addClass("rkbk-search-input");
$("#emptyWeight").attr("disabled", true);
$("#progress-hand").removeClass("active");
$("#progress-emptyWeight").removeClass("active");
}
//根据配置信息设置地磅是否可编辑
if(weightEditTag && weightEditTag == 'N'){
$("#fullWeight").addClass("rkbk-search-input");
$("#fullWeight").attr("disabled", true);
$("#emptyWeight").addClass("rkbk-search-input");
$("#emptyWeight").attr("disabled", true);
}
}
// 当前完成
function submit() {
if (null == recordData) {
notify("没有数据可以提交", null);
return;
}
var data = form.val("form-data");
if (!data.depotId) {
notify("装卸仓库必须填写", null);
return;
}
// 校验-入库满车称重
if (InoutProgress.WEIGHT_FULL == recordData.progress) {
if (data.fullWeight <= 0.0) {
notify("满车称重信息必填", null);
return;
}
if (!data.customerName) {
notify("往来单位信息必填", null);
return;
}
} else {
if (data.emptyWeight <= 0.0) {
notify("空车称重信息必填", null);
return;
}
if (!data.foodVariety) {
notify("粮食品种必填", null);
return;
}
if (!data.settleWeight || data.settleWeight <= 0.0) {
notify("扣重后净信息不正确,请核实计算", null);
return;
}
}
// 合并更新當前编辑数据
Object.assign(recordData, data);
// 获取照片
var files = [{
fileName: snapData.fileName1
}, {
fileName: snapData.fileName2
}, {
fileName: snapData.fileName3
}];
recordData.files = files;
var index = layer.load();
$.ajax({
type: "POST",
url: "../../basic/inout/inout-next-step",
dataType: "json",
contentType: "application/json;charset=UTF-8",
data: JSON.stringify(recordData),
success: function (result) {
if (result.code != "0000") {
notify(result.msg, result.data);
} else {
notify("数据提交成功", result.data);
// 更新按钮显示
flushBtn("btn-submit");
}
layer.close(index);
},
error: function () {
layer.close(index);
notify("提交失败,请重新尝试", null);
}
});
}
//根据选择的仓库信息,更新粮食品种
function updateFoodVarietyByDepot(selectId) {
var selectDepot;
$.each(listDepot, function (index, data) {
if (data.id === selectId) {
selectDepot = data;
return false;
}
});
if (selectDepot) {
form.val("form-data", {
foodVariety: selectDepot.foodVariety
});
form.render();
}
}
/**
* 弹出提醒框
* @param msg 提醒信息
* @param data 数据信息,可能为空
*/
function notify(msg, data) {
if (data) {
//赋值
$("#resultMsg").text(msg);
$("#resultUserName").text(data.userName);
$("#resultPlateNum").text(data.plateNum);
if ("IN" == data.type) {
$("#resultType").text("入库-" + INOUT_PROGRESS_MSG(data.progress));
} else {
$("#resultType").text("出库-" + INOUT_PROGRESS_MSG(data.progress));
}
$("#resultIntelCard").text(data.intelCard);
layer.open({
type: 1,
offset: ['150px', '200px'],
area: '450px;',
shade: 0.8,
id: 'dialog_notify_info',
btn: ['确定'],
content: $('#dialog-from-notify'),
yes: function (index) {
layer.closeAll();
}
});
} else {
layer.alert(msg, {offset: ['300px', '300px']});
}
}
// ---------------------------往来人员操作-开始 -------------------//
// 弹出往来单位下拉框
function showCustomer() {
var index = layer.load();
var param = {
type: type,
start: recordData == null ? null : recordData.registerTime
};
// 渲染往来单位列表
table.render({
elem: '#tableCustomer',
url: '../../basic/inout/list-in-customer',
page: false,
// skin : "nob",
// size : 'sm',
toolbar: '#toolbarCustomer',
even: true,
method: 'POST',
contentType: "application/json;charset=UTF-8",
cols: [[{
field: 'id',
title: '编码'
}, {
field: 'name',
title: '名称',
width: '75%'
}]],
where: param,
parseData: function (res) {
if ("0000" == res.code) {
return {
"code": "0",
"msg": res.msg,
"data": res.data
}
} else {
return {
"code": "1",
"msg": res.msg
}
}
},
done: function (res) {
layer.close(index);
}
});
//双击显示选中数据
table.on('rowDouble(tableCustomer)', function (obj) {
var data = obj.data;
// 赋值
form.val("form-data", {
customerId: data.id,
customerName: data.name,
noticeId: data.noticeId
});
// 关闭
layer.closeAll();
});
// 弹出对话框
layer.open({
type: 1,
title: "选择往来单位",
area: ['600px', '600px'],
shade: 0,
content: $('#listCustomer'),
btn: 0,
btn: ['取消'],
yes: function () {
layer.closeAll();
},
closeBtn: 0
});
}
// 刷新往来单位数据
function flushCustomer() {
var key = $("#key").val();
var param = {
type: type,
key: key,
start: recordData == null ? null : recordData.registerTime
};
table.reload('tableCustomer', {
url: "../../basic/inout/list-in-customer",
where: param,
done: function (res) {
if (key) {
$("#key").val(key);
}
}
});
}
// ---------------------------往来人员操作 -结束 -------------------//
// ---------------------------粮食产地 -开始 -------------------//
// 弹出往来单位下拉框
function showFoodLocation() {
var index = layer.load();
// 渲染往来单位列表
table.render({
elem: '#tableFoodLoaction',
url: '../../basic/common/page-food-location',
page: false,
// limit : limit,
// skin : "nob",
// size : 'sm',
toolbar: '#toolbarFoodLocaton',
even: true,
method: 'POST',
contentType: "application/json;charset=UTF-8",
cols: [[{
field: 'code',
title: '编码',
}, {
field: 'simple',
title: '简拼',
}, {
field: 'name',
title: '名称',
width: '60%'
}]],
where: {
"page": 1,
"limit": 100
},
parseData: function (res) {
if ("0000" == res.code) {
return {
"code": "0",
"msg": res.msg,
"count": res.data.total,
"data": res.data.records
}
} else {
return {
"code": "1",
"msg": res.msg
}
}
},
done: function (res) {
layer.close(index);
}
});
//双击显示选中数据
table.on('rowDouble(tableFoodLoaction)', function (obj) {
var data = obj.data;
// 赋值
form.val("form-data", {
foodLocation: data.name,
});
// 关闭
layer.closeAll();
});
// 弹出对话框
layer.open({
type: 1,
title: "选择粮产地",
area: ['600px', '600px'],
shade: 0,
content: $('#listFoodLocation'),
btn: 0,
btn: ['取消'],
yes: function () {
layer.closeAll();
},
closeBtn: 0
});
}
// 刷新
function flushFoodLocation() {
var key = $("#key2").val();
table.reload('tableFoodLoaction', {
url: "../../basic/common/page-food-location",
where: {
key: key
},
done: function (res) {
if (key) {
$("#key2").val(key);
}
}
});
}
// ---------------------------粮食产地 -结束 -------------------//