From 34f23d857e2e42fb3e243e4d5837741689da4e2e Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 12 七月 2025 16:10:49 +0800
Subject: [PATCH] 对接MES出库订单下发
---
src/main/webapp/static/js/order/order.js | 348 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 223 insertions(+), 125 deletions(-)
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index a06f4a9..c98ccf0 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,3 +1,4 @@
+var insTbCount = 0;
layui.config({
base: baseUrl + "/static/layui/lay/modules/"
}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () {
@@ -9,6 +10,28 @@
var admin = layui.admin;
var xmSelect = layui.xmSelect;
var layDate = layui.laydate;
+ var laytpl = layui.laytpl;
+
+ // 娓叉煋鎼滅储妯℃澘
+ $.ajax({
+ url: baseUrl+"/docType/list/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ limit: 9999
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ let template = Handlebars.compile($('#docTypeTpl').html());
+ $('#docType-query').html(template(res.data));
+ layui.form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
// 娓叉煋琛ㄦ牸
var insTb = table.render({
@@ -19,13 +42,13 @@
cellMinWidth: 100,
cols: [[
{type: 'numbers'},
- {field: 'orderNo', title: '鍗曟嵁缂栧彿', sort: true},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'},
{field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
{align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
{field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
{field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
- {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
- {align: 'center', title: '鎿嶄綔', toolbar: '#operate', minWidth: 130, width: 130}
+ {field: 'memo', align: 'center',title: '澶囨敞'},
+ {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180}
]],
request: {
pageName: 'curr',
@@ -43,9 +66,11 @@
statusCode: 200
},
done: function (res, curr, count) {
+ limit();
if (res.code === 403) {
top.location.href = baseUrl+"/";
}
+ insTbCount = count;
}
});
@@ -65,8 +90,12 @@
var layEvent = obj.event;
if (layEvent === 'edit') {
showEditModel(data);
+ } else if (layEvent === 'wrkTrace') {
+ showWrkTrace(data.id);
} else if (layEvent === 'del') {
- doDel(data.billNo);
+ doDel(data.id);
+ } else if (layEvent === 'complete') {
+ doModify(data.id, data.orderNo, 4);
} else if (layEvent === 'look') {
var $a = $(obj.tr).find('a[lay-event="look"]');
var offset = $a.offset();
@@ -75,7 +104,7 @@
layer.open({
type: 1,
title: false,
- area: '700px',
+ area: '820px',
offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'],
shade: .01,
shadeClose: true,
@@ -93,18 +122,22 @@
cellMinWidth: 100,
cols: [[
{type: 'numbers'},
- {field: 'matnr', title: '鍟嗗搧缂栫爜'},
+ {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
{field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
{field: 'batch', title: '鎵瑰彿'},
- {field: 'count', title: '鏁伴噺'},
+ {field: 'model', title: '妗剁被鍨�', edit: true},
+ {field: 'volume', title: '缃愯閲�', edit: true},
+ {field: 'anfme', title: '寰呭畬缁撴暟閲�'},
+ {field: 'qty', title: '寰呬笂鎶ユ暟閲�', style: 'font-weight: bold'},
+ {field: 'workQty', title: '宸蹭笂鎶ユ暟閲�'},
+ // {field: 'unit', title: '鍗曚綅'},
// {
// field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) {
// return util.toDateString(d.createTime);
// }, width: 180
// },
// {field: 'inQty', title: '宸插叆搴撻噺'},
- // {field: 'color', title: '棰滆壊'},
- {field: 'specs', title: '瑙勬牸'}
+ // {field: 'color', title: '棰滆壊'}
]],
request: {
pageName: 'curr',
@@ -133,8 +166,6 @@
// 鏄剧ず琛ㄥ崟寮圭獥
function showEditModel(expTpe) {
- var mlist=null
- var inQtys=[]
admin.open({
type: 1,
title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁',
@@ -146,59 +177,43 @@
// 鍥炴樉鏁版嵁
form.val('editForm', expTpe);
if (expTpe) {
- $('#billNo').attr("disabled", "disabled");
+ $('#orderNo').attr("disabled", "disabled");
}
// 琛ㄥ崟鎻愪氦浜嬩欢
- form.on('submit(waitMatinEditSubmit)', function (data) {
+ form.on('submit(orderEditSubmit)', function (data) {
// 缁勮鏁版嵁
if (xxDataList.length <= 0) {
layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']});
return false;
}
- var param = [];
- var nList = admin.util.deepClone(xxDataList);
- for (var xi = 0; xi < nList.length; xi++) {
- // console.log('宸插叆搴擄細'+nList[xi].inQty)
- // console.log('鏃ф暟閲忥細'+inQtys[xi])
- // console.log('鏁伴噺锛�'+nList[xi].qty)
- if (nList[xi].inQty > 0 && inQtys[xi]!=nList[xi].qty) {
- layer.msg("宸插叆搴撴棤娉曚慨鏀�", {icon: 2})
- return false;
- } else if (nList[xi].qty > 0) {
- param.push({
- billNo: data.field.billNo,
- billType: data.field.billType,
- matNo: nList[xi].matNo,
- matName: nList[xi].matName,
- color: nList[xi].color,
- size: nList[xi].size,
- specs: nList[xi].specs,
- memo: nList[xi].memo,
- unit: nList[xi].unit,
- qty: nList[xi].qty,
- inQty: nList[xi].inQty,
- })
- }else if (nList[xi].qty == 0){
+ let nList = admin.util.deepClone(xxDataList);
+ for (let xi = 0; xi < nList.length; xi++) {
+ if (nList[xi].anfme <= 0){
layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2});
return false;
}
- }
- if (param.length === 0) {
- layer.msg('鍗曟嵁鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2});
- return false;
+ if (nList[xi].anfme < nList[xi].workQty){
+ layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2});
+ return false;
+ }
}
layer.load(2);
$.ajax({
- url: baseUrl+"/waitMatin/" + (isExpAdd?"add":"modify") + "/auth",
+ url: baseUrl+"/order/form/" + (isExpAdd?"add":"modify") + "/auth",
headers: {'token': localStorage.getItem('token')},
- data: JSON.stringify(param),
+ data: JSON.stringify({
+ orderId: Number(data.field.id),
+ docType: Number(data.field.docType),
+ orderNo: data.field.orderNo,
+ orderDetlList: nList
+ }),
contentType:'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll('loading');
if (res.code === 200){
layer.close(dIndex);
- insTb.reload({page: {curr: 1}});
+ $(".layui-laypage-btn")[0].click();
layer.msg(res.msg, {icon: 1});
} else if (res.code === 403){
top.location.href = baseUrl+"/";
@@ -219,31 +234,26 @@
height: '350px;',
cellMinWidth: 100,
cols: [[
- {type: 'numbers'},
- {field: 'matNo', title: '鐗╂枡缂栫爜'},
- {field: 'matName', title: '鐗╂枡鍚嶇О', width: 160},
- {field: 'specs', title: '瑙勬牸', width: 160},
- {field: 'color', title: '棰滆壊', width: 160},
- {field: 'size', title: '灏哄', width: 160},
- {field: 'qty', title: '淇敼鏁伴噺', style: 'color: blue;font-weight: bold', edit: true, minWidth: 100, width: 100},
- {field: 'inQty', title: '宸插叆搴撻噺', minWidth: 100, width: 100},
- {field: 'unit', title: '鍗曚綅', width: 160},
- {field: 'memo', title: '澶囨敞' , edit: true, width: 160},
+ {type: 'numbers', title: '#'},
+ {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
+ {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200},
+ {field: 'batch', title: '鎵瑰彿', edit: true},
+ {field: 'model', title: '妗剁被鍨�', edit: true},
+ {field: 'volume', title: '缃愯閲�', edit: true},
+ {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110},
+ {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100},
+ // {field: 'unit', title: '鍗曚綅', width: 80},
+ {field: 'memo', title: '澶囨敞' , edit: true},
{align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
]],
done: function (res) {
- mlist= res.data
- for (let i = 0; i < mlist.length; i++) {
- var waitIn=mlist[i]
- inQtys.push(waitIn.qty)
- }
$(layero).find('.layui-table-view').css('margin', '0');
},
size: ''
};
if (!isExpAdd) {
$.ajax({
- url: baseUrl+"/waitMatin/detl/list/auth?billNo=" + expTpe.billNo,
+ url: baseUrl+"/order/detl/all/auth?orderId=" + expTpe.id,
headers: {'token': localStorage.getItem('token')},
method: 'GET',
async: false,
@@ -267,13 +277,17 @@
if (layEvent === 'edit') {
showEditModel2(data);
} else if (layEvent === 'del') {
+ if(data.workQty > 0){
+ layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2});
+ return;
+ }
layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
shade: .1,
skin: 'layui-layer-admin'
}, function (i) {
layer.close(i);
for (var j = 0; j < xxDataList.length; j++) {
- if (xxDataList[j].matNo === data.matNo) {
+ if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) {
xxDataList.splice(j, 1);
break;
}
@@ -282,36 +296,34 @@
});
}
});
- // 鏁伴噺淇敼
+ // 鏄庣粏鏁版嵁淇敼
table.on('edit(formSSXMTable)', function (obj) {
- if (obj.field=='memo'){
- let vle = obj.value;
- for (var i=0;i<xxDataList.length;i++) {
- if (xxDataList[i]["matNo"] === obj.data.matNo) {
- xxDataList[i]["memo"] = vle;
- break;
- }
- }
- }else if (obj.field=='qty'){
+ let index = obj.tr.attr("data-index");
+ let data = xxDataList[index];
+ if (obj.field === 'anfme'){
let vle = Number(obj.value);
if (isNaN(vle)) {
- layer.msg("璇疯緭鍏ユ暟瀛�");
+ layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
+ return false;
} else {
- if (vle > 0) {
- for (var i=0;i<xxDataList.length;i++) {
- if (xxDataList[i]["matNo"] === obj.data.matNo) {
- xxDataList[i]["qty"] = vle;
- break;
- }
- }
- } else {
- layer.msg("鏁伴噺蹇呴』澶т簬闆�");
+ if (vle <= 0) {
+ layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2});
+ // data[obj.field] = 0;
+ // insTbSSXM.reload({data: xxDataList});
+ return false;
+ }
+ if(obj.value < data.workQty){
+ layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2});
+ // data[obj.field] = 0;
+ // insTbSSXM.reload({data: xxDataList});
+ return false;
}
}
}
+ data[obj.field] = obj.value;
insTbSSXM.reload({data: xxDataList});
});
- //
+
$('#matAddBtnComment').click(function () {
showEditModel2();
});
@@ -321,51 +333,34 @@
admin.open({
type: 1,
offset: '150px',
- area: '480px',
+ area: '680px',
title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏',
content: $('#matEditDialog').html(),
success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
// 鍥炴樉鏁版嵁
form.val('matEditForm', exp);
// 琛ㄥ崟鎻愪氦浜嬩欢
form.on('submit(matEditSubmit)', function (data) {
- var existMats = [];
- xxDataList.forEach(function(elem) {
- existMats.push(elem.matNo);
- });
- var selectList = matXmSelect.getValue();
- for (var i = 0; i<selectList.length; i++) {
- var item = selectList[i];
- if (existMats.indexOf(item.value) === -1) {
- // 鏌ヨ鐗╂枡璇︽儏
- $.ajax({
- url: baseUrl+"/matCode/"+item.value+"/auth",
- headers: {'token': localStorage.getItem('token')},
- method: 'GET',
- async: false,
- success: function (res) {
- if (res.code === 200){
- var mat = res.data;
- xxDataList.push({
- matNo: mat.matNo,
- matName: mat.matName,
- color:mat.color,
- size:mat.size,
- specs:mat.specs,
- memo: mat.memo,
- unit: mat.unit,
- qty: 0.0
- });
- insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2})
- }
+ let selectList = matXmSelect.getValue();
+ for (let i = 0; i<selectList.length; i++) {
+ let item = selectList[i];
+ // 鏌ヨ鐗╂枡璇︽儏
+ $.ajax({
+ url: baseUrl+"/mat/covert/"+item.value+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ xxDataList.push(res.data);
+ insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2})
}
- })
- }
+ }
+ })
}
layer.close(dIndex);
return false;
@@ -411,26 +406,28 @@
}
// 鍒犻櫎鍗曟嵁
- function doDel(billNo) {
+ function doDel(orderId) {
layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
shade: .1,
skin: 'layui-layer-admin'
}, function (i) {
layer.close(i);
layer.load(2);
-
$.ajax({
- url: baseUrl+"/waitMatin/delete/auth",
+ url: baseUrl+"/order/delete/auth",
headers: {'token': localStorage.getItem('token')},
data: {
- billNo: billNo
+ orderId: orderId
},
- // contentType:'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll('loading');
if (res.code === 200){
- insTb.reload({page: {curr: 1}});
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
layer.msg(res.msg, {icon: 1});
} else if (res.code === 403){
top.location.href = baseUrl+"/";
@@ -442,6 +439,107 @@
});
}
+ // 淇敼璁㈠崟鐘舵��
+ function doModify(orderId, orderNo, settle) {
+ layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', {
+ shade: .1,
+ skin: 'layui-layer-admin'
+ }, function (i) {
+ layer.close(i);
+ layer.load(2);
+ console.log(orderId);
+ console.log(settle);
+ $.ajax({
+ url: baseUrl+"/order/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ id: orderId,
+ orderNo: orderNo,
+ settle: settle
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll('loading');
+ if (res.code === 200){
+ if (insTbCount === 0) {
+ insTb.reload({page: {curr: 1}});
+ } else {
+ $(".layui-laypage-btn")[0].click();
+ }
+ layer.msg(res.msg, {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 浠诲姟杩芥函
+ function showWrkTrace(orderId) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ $.ajax({
+ url: baseUrl+"/order/wrk/trace/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ orderId: orderId
+ },
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) {
+ admin.open({
+ type: 1,
+ title: '浠诲姟杩芥函',
+ area: ['800px', '450px'],
+ shadeClose: true,
+ content: html,
+ success: function (layero, dIndex) {
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ /** 缁熻鍥捐〃 */
+ var traceCharts = echarts.init(document.getElementById('wrkTraceCharts'));
+ var traceOptions = {
+ title: {
+ text: '浣滀笟/瀹岀粨/涓婃姤', x: 'center', y: '38%',
+ textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'},
+ subtextStyle: {fontSize: 36, color: '#10B4E8'},
+ itemGap: 20
+ },
+ color: ['#10B4E8', '#E0E0E0', '#FF0000'],
+ tooltip: {trigger: 'item'},
+ series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}]
+ };
+ traceCharts.setOption(traceOptions);
+ // 璧嬪��
+ traceCharts.setOption({
+ title: {
+ subtext: res.data.totalQty+"/"+res.data.wrkQty+"/"+res.data.endQty
+ },
+ series: [
+ {
+ data: [
+ {name: '宸蹭綔涓�', value: res.data.wrkQty},
+ {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty},
+ {name: '搴撳瓨涓嶈冻', value: res.data.lackQty},
+ ]
+ }
+ ]
+ });
+ }
+ });
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ }
+
layDate.render({
elem: '.layui-laydate-range'
,type: 'datetime'
--
Gitblit v1.9.1