feat(order): 新增订单管理功能

- 添加订单添加、编辑页面
- 实现订单列表查询、列表展示和操作
- 新增导出功能
- 优化产品订单状态和发货状态字段
- 调整订单详情展示内容
master
chenhao 2025-06-20 14:09:08 +08:00
parent b0c278357c
commit f1c9b9fd0a
11 changed files with 185 additions and 121 deletions

View File

@ -3,31 +3,8 @@
<head> <head>
<title>配置信息表格组件</title> <title>配置信息表格组件</title>
</head> </head>
<style>
.add-btn-div {
display: flex;
justify-content: space-between;
}
.add-btn {
background: #409eff;
color: #fff;
border: none;
padding: 5px 10px;
cursor: pointer;
margin-bottom: 5px;
}
.section-title {
font-weight: bold;
font-size: 30px;
padding: 10px 0;
color: #0075ff;
}
</style>
<body> <body>
<div id="config-info-component" th:fragment="configInfoTable()"> <div id="config-info-component" th:fragment="configInfoTable()">
<div class="layui-tab"> <div class="layui-tab">
<div class="section-title">配置信息</div> <div class="section-title">配置信息</div>
@ -35,78 +12,83 @@
<h3>软件产品</h3> <h3>软件产品</h3>
<button type="button" class="add-btn" onclick="addProduct({})">添加</button> <button type="button" class="add-btn" onclick="addProduct({})">添加</button>
</div> </div>
<table id="productTable" class="productTable"> <div class="table-responsive">
<table id="productTable" class="productTable table">
<thead> <thead>
<tr> <tr>
<th style="width: 50px">序号</th> <th style="width: 50px;max-width: 50px;">序号</th>
<th style="width: 100px;">产品编码</th> <th style="width: 100px;max-width: 100px;">产品编码</th>
<th style="width: 150px;">产品型号</th> <th style="width: 150px;max-width: 150px;">产品型号</th>
<th style="min-width: 400px;">描述</th> <th style="width: 400px;max-width: 400px;">描述</th>
<th style="width: 90px;">数量</th> <th style="width: 100px;max-width: 100px;">数量</th>
<th style="min-width: 90px">目录单价(¥)</th> <th style="width: 120px;max-width: 120px;">目录单价(¥)</th>
<th style="min-width: 90px">指导折扣</th> <th style="width: 90px;max-width: 90px;">指导折扣</th>
<th style="width: 94px;">折扣</th> <th style="width: 94px;max-width: 94px;">折扣</th>
<th style="width: 100px;">单价(¥)</th> <th style="width: 100px;max-width: 100px;">单价(¥)</th>
<th style="min-width: 120px">总价(¥)</th> <th style="width: 120px;max-width: 120px;">总价(¥)</th>
<th style="min-width: 120px">目录总价(¥)</th> <th style="width: 120px;max-width: 120px;">目录总价(¥)</th>
<th style="min-width: 120px">备注</th> <th style="width: 120px;max-width: 120px;">备注</th>
<th style="min-width: 60px">操作</th> <th style="width: 60px;max-width: 60px;">操作</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
</div>
<div class="add-btn-div"> <div class="add-btn-div">
<h3>终端产品</h3> <h3>终端产品</h3>
<button type="button" class="add-btn" onclick="addProduct2({})">添加</button> <button type="button" class="add-btn" onclick="addProduct2({})">添加</button>
</div> </div>
<div class="table-responsive">
<table id="productTable2" class="productTable"> <table id="productTable2" class="productTable table">
<thead> <thead>
<tr> <tr>
<th style="width: 50px">序号</th> <th style="width: 50px;max-width: 50px;">序号</th>
<th style="width: 100px;">产品编码</th> <th style="width: 100px;max-width: 100px;">产品编码</th>
<th style="width: 150px;">产品型号</th> <th style="width: 150px;max-width: 150px;">产品型号</th>
<th style="min-width: 400px;">描述</th> <th style="width: 400px;max-width: 400px;">描述</th>
<th style="width: 90px;">数量</th> <th style="width: 100px;max-width: 100px;">数量</th>
<th style="min-width: 90px">目录单价(¥)</th> <th style="width: 120px;max-width: 120px;">目录单价(¥)</th>
<th style="min-width: 90px">指导折扣</th> <th style="width: 90px;max-width: 90px;">指导折扣</th>
<th style="width: 94px;">折扣</th> <th style="width: 94px;max-width: 94px;">折扣</th>
<th style="width: 100px;">单价(¥)</th> <th style="width: 100px;max-width: 100px;">单价(¥)</th>
<th style="min-width: 120px">总价(¥)</th> <th style="width: 120px;max-width: 120px;">总价(¥)</th>
<th style="min-width: 120px">目录总价(¥)</th> <th style="width: 120px;max-width: 120px;">目录总价(¥)</th>
<th style="min-width: 120px">备注</th> <th style="width: 120px;max-width: 120px;">备注</th>
<th style="min-width: 60px">操作</th> <th style="width: 60px;max-width: 60px;">操作</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
</div>
<div class="add-btn-div"> <div class="add-btn-div">
<h3>服务产品</h3> <h3>服务产品</h3>
<button type="button" class="add-btn" onclick="addProduct3({})">添加</button> <button type="button" class="add-btn" onclick="addProduct3({})">添加</button>
</div> </div>
<table id="productTable3" class="productTable"> <div class="table-responsive">
<table id="productTable3" class="productTable table">
<thead> <thead>
<tr> <tr>
<th style="width: 50px">序号</th> <th style="width: 50px;max-width: 50px;">序号</th>
<th style="width: 100px;">产品编码</th> <th style="width: 100px;max-width: 100px;">产品编码</th>
<th style="width: 150px;">产品型号</th> <th style="width: 150px;max-width: 150px;">产品型号</th>
<th style="min-width: 400px;">描述</th> <th style="width: 400px;max-width: 400px;">描述</th>
<th style="width: 90px;">数量</th> <th style="width: 100px;max-width: 100px;">数量</th>
<th style="min-width: 90px">目录单价(¥)</th> <th style="width: 120px;max-width: 120px;">目录单价(¥)</th>
<th style="min-width: 90px">指导折扣</th> <th style="width: 90px;max-width: 90px;">指导折扣</th>
<th style="width: 94px;">折扣</th> <th style="width: 94px;max-width: 94px;">折扣</th>
<th style="width: 100px;">单价(¥)</th> <th style="width: 100px;max-width: 100px;">单价(¥)</th>
<th style="min-width: 120px">总价(¥)</th> <th style="width: 120px;max-width: 120px;">总价(¥)</th>
<th style="min-width: 120px">目录总价(¥)</th> <th style="width: 120px;max-width: 120px;">目录总价(¥)</th>
<th style="min-width: 120px">备注</th> <th style="width: 120px;max-width: 120px;">备注</th>
<th style="min-width: 60px">操作</th> <th style="width: 60px;max-width: 60px;">操作</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
</div>
</div> </div>
@ -148,15 +130,15 @@
</label> </label>
</td> </td>
<td><input value="${data.discount || ''}" name="softwareProjectProductInfoList[${length}].discount" type="hidden" class="form-control discount" required> <td><input value="${data.discount || ''}" name="softwareProjectProductInfoList[${length}].discount" type="hidden" class="form-control discount" required>
<label style="display: flex;align-items: center"><input style="width: calc(100% - 10px);" value="${data.discountFormat || ''}" type="number" min="0" max="100" step="0.1" class="form-control discount-format" required>% <label style="display: flex;align-items: center"><input style="width: calc(100% - 10px);" value="${data.discountFormat || ''}" type="number" min="0" max="100" step="0.01" class="form-control discount-format" required>%
</label></td> </label></td>
<td> <td>
<input value="${data.price || ''}" name="softwareProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly> <input value="${data.price || ''}" name="softwareProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly>
<input type="text" value="${data.priceFormmat || ''}" class="form-control price-formmat" placeholder="自动计算" required readonly> <input type="text" value="${data.priceFormmat || ''}" class="form-control price-formmat" onfocus="getData(this,'price')" onblur="this.value=formatAmountNumber(this.value)" placeholder="自动计算" required >
</td> </td>
<td> <td>
<input value="${data.allPrice || ''}" name="softwareProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly> <input value="${data.allPrice || ''}" name="softwareProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly>
<input type="text" value="${data.allPriceFormmat || ''}" class="form-control allPrice-formmat" placeholder="自动计算" required readonly> <input type="text" value="${data.allPriceFormmat || ''}" class="form-control allPrice-formmat" placeholder="自动计算" required readonly>
</td> </td>
<td> <td>
<input value="${data.catalogueAllPrice || ''}" name="softwareProjectProductInfoList[${length}].catalogueAllPrice" type="hidden" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly> <input value="${data.catalogueAllPrice || ''}" name="softwareProjectProductInfoList[${length}].catalogueAllPrice" type="hidden" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly>
@ -182,7 +164,7 @@
<td><input value="${data.quantity || ''}" name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td> <td><input value="${data.quantity || ''}" name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td> <td>
<input value="${data.cataloguePrice || ''}" name="hardwareProjectProductInfoList[${length}].cataloguePrice" readonly type="hidden" class="form-control cataloguePrice" required> <input value="${data.cataloguePrice || ''}" name="hardwareProjectProductInfoList[${length}].cataloguePrice" readonly type="hidden" class="form-control cataloguePrice" required>
<input value="${data.cataloguePriceFormmat || ''}" readonly type="text" class="form-control cataloguePrice" required> <input value="${data.cataloguePriceFormmat || ''}" readonly type="text" class="form-control cataloguePrice" required>
</td> </td>
<td> <td>
<input value="${data.guidanceDiscount || ''}" name="hardwareProjectProductInfoList[${length}].guidanceDiscount" readonly type="hidden" class="form-control guidanceDiscount" > <input value="${data.guidanceDiscount || ''}" name="hardwareProjectProductInfoList[${length}].guidanceDiscount" readonly type="hidden" class="form-control guidanceDiscount" >
@ -194,7 +176,7 @@
</label></td> </label></td>
<td> <td>
<input value="${data.price || ''}" name="hardwareProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly> <input value="${data.price || ''}" name="hardwareProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly>
<input type="text" value="${data.priceFormmat || ''}" class="form-control price-formmat" placeholder="自动计算" required readonly> <input type="text" value="${data.priceFormmat || ''}" class="form-control price-formmat" placeholder="自动计算" onfocus="getData(this,'price')" onblur="this.value=formatAmountNumber(this.value)" required >
</td> </td>
<td> <td>
<input value="${data.allPrice || ''}" name="hardwareProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly> <input value="${data.allPrice || ''}" name="hardwareProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly>
@ -231,12 +213,12 @@
</label> </label>
</td> </td>
<td><input value="${data.discount || ''}" name="maintenanceProjectProductInfoList[${length}].discount" type="hidden" class="form-control discount" required> <td><input value="${data.discount || ''}" name="maintenanceProjectProductInfoList[${length}].discount" type="hidden" class="form-control discount" required>
<label style="display: flex;align-items: center"><input style="width: calc(100% - 10px);" value="${data.discountFormat || ''}" type="number" min="0" max="100" step="0.1" class="form-control discount-format" required>% <label style="display: flex;align-items: center"><input style="width: calc(100% - 10px);" value="${data.discountFormat || ''}" type="number" min="0" max="100" step="0.01" class="form-control discount-format" required>%
</label> </label>
</td> </td>
<td> <td>
<input value="${data.price || ''}" name="maintenanceProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly> <input value="${data.price || ''}" name="maintenanceProjectProductInfoList[${length}].price" type="hidden" class="form-control price" placeholder="自动计算" required readonly>
<input type="text" value="${data.priceFormmat || ''}" class="form-control price-formmat" placeholder="自动计算" required readonly> <input type="text" value="${data.priceFormmat || ''}" onfocus="getData(this,'price')" onblur="this.value=formatAmountNumber(this.value)" class="form-control price-formmat" placeholder="自动计算" required >
</td> </td>
<td> <td>
<input value="${data.allPrice || ''}" name="maintenanceProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly> <input value="${data.allPrice || ''}" name="maintenanceProjectProductInfoList[${length}].allPrice" type="hidden" class="form-control allPrice" placeholder="自动计算" required readonly>
@ -254,7 +236,11 @@
initSearchProduct('11,22,99') initSearchProduct('11,22,99')
initPrice() initPrice()
} }
function getData(that,name){
let currentTd = $(that).closest('td'); // 获取当前 td 元素
let priceVal = currentTd.find('.'+name).val()
$(that).val(priceVal)
}
function initPrice() { function initPrice() {
$('.productTable .quantity').on('input', function () { $('.productTable .quantity').on('input', function () {
let num = $(this).val() let num = $(this).val()
@ -291,7 +277,7 @@
} }
}) })
// $('.productTable .guidanceDiscount').on('input', function () { // $('.productTable .guidanceDiscount-format').on('input', function () {
// let val = $(this).val() // let val = $(this).val()
// let cataloguePrice = $(this).parent().parent().find('.cataloguePrice').val() // let cataloguePrice = $(this).parent().parent().find('.cataloguePrice').val()
// $(this).parent().parent().find('.discount').val(val) // $(this).parent().parent().find('.discount').val(val)
@ -317,11 +303,19 @@
let allPrice = $(this).parent().parent().parent().find('.allPrice').val() let allPrice = $(this).parent().parent().parent().find('.allPrice').val()
$(this).parent().parent().parent().find('.allPrice-formmat').val(formatAmountNumber(allPrice)) $(this).parent().parent().parent().find('.allPrice-formmat').val(formatAmountNumber(allPrice))
}) })
$('.productTable .price').change('input', function () { $('.productTable .price-formmat').change('input', function () {
let val = $(this).val() let val = $(this).val()
let num = $(this).parent().parent().find('.quantity').val() let num = $(this).parent().parent().find('.quantity').val()
$(this).parent().parent().find('.price').val(val)
$(this).parent().parent().find('.allPrice').val((val * num).toFixed(2)) $(this).parent().parent().find('.allPrice').val((val * num).toFixed(2))
$(this).parent().parent().find('.allPrice-formmat').val(formatAmountNumber((val * num).toFixed(2))) $(this).parent().parent().find('.allPrice-formmat').val(formatAmountNumber((val * num).toFixed(2)))
let cataloguePrice = $(this).parent().parent().find('.cataloguePrice').val()
let discount = (val*1.0000/cataloguePrice).toFixed(4);
$(this).parent().parent().find('.discount').val(discount)
$(this).parent().parent().find('.discount-format').val(discount * 100)
// $(this).val(formatAmountNumber(val))
}) })
} }
@ -351,6 +345,7 @@
$.modal.close(index); $.modal.close(index);
} }
/*]]>*/ /*]]>*/
</script> </script>
</div> </div>

View File

@ -102,7 +102,7 @@
<label class="col-sm-4 control-label is-required">签定日期:</label> <label class="col-sm-4 control-label is-required">签定日期:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="orderDate" class="form-control" placeholder="yyyy-MM-dd" type="text" required> <input name="orderDate" class="form-control" autocomplete="off" placeholder="yyyy-MM-dd" type="text" required>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>

View File

@ -102,7 +102,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="orderDate" th:value="${#dates.format(orderInfo.orderDate, 'yyyy-MM-dd')}" <input name="orderDate" th:value="${#dates.format(orderInfo.orderDate, 'yyyy-MM-dd')}"
class="form-control" placeholder="yyyy-MM-dd" type="text" required> class="form-control" placeholder="yyyy-MM-dd" autocomplete="off" type="text" required>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>

View File

@ -377,20 +377,13 @@
} }
function changeName(){ function changeName(){
console.log('11111111')
let name = $('#projectName').val() let name = $('#projectName').val()
console.log(name)
let versionCode = $('#versionCode').val() let versionCode = $('#versionCode').val()
console.log(versionCode)
let result=''; let result='';
if (name){ if (name){
result=name; result=name;
console.log('22222')
console.log(result)
if (versionCode){ if (versionCode){
result+='Rev '+versionCode; result+='Rev.'+versionCode;
console.log('33333333')
console.log(result)
} }
} }
@ -469,7 +462,7 @@
window.localStorage.setItem('getDetail', 1) window.localStorage.setItem('getDetail', 1)
$.operate.get(ctx + `sip/project/query/${id}`, function (res) { $.operate.get(ctx + `sip/project/query/${id}`, function (res) {
let data = res.data let data = res.data
$('#projectNameBox').text(data.projectName+'Rev 1') $('#projectNameBox').text(data.projectName+'Rev.1')
$('[name="customerCode"]').val(data.customerCode); $('[name="customerCode"]').val(data.customerCode);
$('[name="customerName"]').val(data.customerName); $('[name="customerName"]').val(data.customerName);
$('[name="projectCode"]').val(data.projectCode); $('[name="projectCode"]').val(data.projectCode);
@ -523,6 +516,17 @@
minView: "month", minView: "month",
autoclose: true autoclose: true
}); });
let user=[[${user}]]
if (user){
$("input[name='duty']").val(user.userId)
$("input[name='dutyName']").val(user.userName)
$("input[name='dutyEmail']").val(user.email)
$("input[name='dutyPhone']").val(user.phonenumber)
}
}) })
function searchProject() { function searchProject() {
@ -567,7 +571,7 @@
$.modal.alertWarning("请选择一个项目"); $.modal.alertWarning("请选择一个项目");
return; return;
} }
$('#projectNameBox').text(rows[0].projectName+'Rev 1') $('#projectNameBox').text(rows[0].projectName+'Rev.1')
$('[name="customerCode"]').val(rows[0].customerCode); $('[name="customerCode"]').val(rows[0].customerCode);
$('[name="customerName"]').val(rows[0].customerName); $('[name="customerName"]').val(rows[0].customerName);
$('[name="projectCode"]').val(rows[0].projectCode); $('[name="projectCode"]').val(rows[0].projectCode);
@ -835,23 +839,25 @@ ${
function initSaveDraft() { function initSaveDraft() {
let draft = $(` let draft = $(`
<span class="saveDraft" style=" position: absolute; <span class="saveDraft" style="
right: 160px; right: 160px;
bottom: 12px; bottom: 12px;
display: inline-block; display: inline-block;
background: #ff5722; background: #ff5722;
padding: 6px 10px; padding: 6px 10px;
border-radius: 5px; border-radius: 5px;
color: #fff;cursor: pointer"> 保存草稿</span>`) color: #fff;cursor: pointer"> 保存</span>`)
parent.$('.layui-layer-btn').before(draft) parent.$('.layui-layer-btn1').before(draft)
parent.$('.saveDraft').on('click', function () { parent.$('.saveDraft').on('click', function () {
$('[name="orderStatus"]').val(0) $('[name="orderStatus"]').val(0)
submitHandler('draft') submitHandler('draft')
}) })
parent.$('.layui-layer-btn0').on('click', function () { parent.$('.layui-layer-btn0').on('click', function () {
$('[name="orderStatus"]').val(1) $('[name="orderStatus"]').val(1)
submitHandler() submitHandler()
}) })
parent.$('.layui-layer-btn0').attr('style','display:none')
} }

View File

@ -110,6 +110,8 @@
<span class="title-text">编辑订单</span> <span class="title-text">编辑订单</span>
<span style="position: relative;top: -3px;margin-left: 10px">|</span> <span style="position: relative;top: -3px;margin-left: 10px">|</span>
<span id="projectNameBox" style="margin-left: 10px;color: black;font-size: 24px"></span> <span id="projectNameBox" style="margin-left: 10px;color: black;font-size: 24px"></span>
<span style="position: absolute;right: 10px;font-size: 24px;color: black;" id="version-show"
></span>
</div> </div>
<table> <table>
@ -208,7 +210,7 @@
required> required>
</td> </td>
<td>版本号<span class="is-required">*</span></td> <td>版本号<span class="is-required">*</span></td>
<td><input name="versionCode" class="form-control" th:field="*{versionCode}" <td><input onchange="changeName()" name="versionCode" class="form-control" th:field="*{versionCode}"
required type="number" min="0"></td> required type="number" min="0"></td>
</tr> </tr>
<tr> <tr>
@ -485,6 +487,21 @@
autoclose: true autoclose: true
}); });
initData() initData()
let user = [[${user}]]
if (user) {
if (!$("input[name='dutyName']").val()) {
$("input[name='dutyName']").val(user.userName)
$("input[name='duty']").val(user.userId)
}
if (!$("input[name='dutyEmail']").val()) {
$("input[name='dutyEmail']").val(user.email)
}
if (!$("input[name='dutyPhone']").val()) {
$("input[name='dutyPhone']").val(user.phonenumber)
}
}
}) })
function searchProject() { function searchProject() {
@ -567,12 +584,32 @@
$('[name="industryType"]').val([[${projectOrderInfo.industryType}]]); $('[name="industryType"]').val([[${projectOrderInfo.industryType}]]);
let name = [[${projectOrderInfo.projectName}]]; let name = [[${projectOrderInfo.projectName}]];
let versionCode = [[${projectOrderInfo.versionCode}]]; let versionCode = [[${projectOrderInfo.versionCode}]];
let version = ''
if (versionCode){ if (versionCode){
name=name + 'Rev ' + versionCode version += 'Rev.' + versionCode + ' ';
} }
let orderDate = [[${projectOrderInfo.estimatedOrderTime}]]
if (orderDate) {
version += [[${#dates.format(projectOrderInfo.estimatedOrderTime, 'yyyy-MM-dd')}]];
}
$('#version-show').text(version)
if (name) {
$('#projectNameBox').text(name) $('#projectNameBox').text(name)
}
} }
function changeName() {
let versionCode = $('input[name="versionCode"]').val()
let version = ''
if (versionCode) {
version += 'Rev.' + versionCode + ' ';
}
let orderDate = [[${projectOrderInfo.estimatedOrderTime}]]
if (orderDate) {
version += [[${#dates.format(projectOrderInfo.estimatedOrderTime, 'yyyy-MM-dd')}]];
}
$('#version-show').text(version)
}
function doSubmitPeople(index, layero) { function doSubmitPeople(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections(); var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) { if (rows.length == 0) {
@ -795,15 +832,15 @@ ${
function initSaveDraft() { function initSaveDraft() {
let draft = $(` let draft = $(`
<span class="saveDraft layui-layer-btn" style=" position: absolute; <span class="saveDraft layui-layer-btn" style="
right: 160px; right: 160px;
bottom: 12px; bottom: 12px;
display: inline-block; display: inline-block;
background: #ff5722; background: #ff5722;
padding: 6px 10px; padding: 6px 10px;
border-radius: 5px; border-radius: 5px;
color: #fff;cursor: pointer"> 保存草稿</span>`) color: #fff;cursor: pointer"> 保存</span>`)
parent.$('.layui-layer-btn').before(draft) parent.$('.layui-layer-btn1').before(draft)
parent.$('.saveDraft').on('click', function () { parent.$('.saveDraft').on('click', function () {
$('[name="orderStatus"]').val(0) $('[name="orderStatus"]').val(0)
submitHandler('draft') submitHandler('draft')
@ -812,6 +849,7 @@ ${
$('[name="orderStatus"]').val(1) $('[name="orderStatus"]').val(1)
submitHandler() submitHandler()
}) })
parent.$('.layui-layer-btn0').attr('style', 'display:none')
} }

View File

@ -137,7 +137,7 @@
}, },
{ {
field: 'createAt', field: 'createAt',
title: '' title: '创建时间'
}, },
{ {
title: '操作', title: '操作',

View File

@ -94,8 +94,9 @@ public class ProjectOrderInfoController extends BaseController
*/ */
@RequiresPermissions("project:order:add") @RequiresPermissions("project:order:add")
@GetMapping("/add") @GetMapping("/add")
public String add() public String add(ModelMap mmap)
{ {
mmap.put("user", ShiroUtils.getSysUser());
return prefix + "/add"; return prefix + "/add";
} }
@ -120,6 +121,7 @@ public class ProjectOrderInfoController extends BaseController
{ {
ProjectOrderInfo projectOrderInfo = projectOrderInfoService.selectProjectOrderInfoById(id); ProjectOrderInfo projectOrderInfo = projectOrderInfoService.selectProjectOrderInfoById(id);
mmap.put("projectOrderInfo", projectOrderInfo); mmap.put("projectOrderInfo", projectOrderInfo);
mmap.put("user", ShiroUtils.getSysUser());
return prefix + "/edit"; return prefix + "/edit";
} }

View File

@ -102,6 +102,10 @@ public class OrderInfo extends BaseEntity
private List<OrderList> orderListList; private List<OrderList> orderListList;
private String serialNumber; private String serialNumber;
private String createByName; private String createByName;
/**
* 0: 1:
*/
private String ship;

View File

@ -202,7 +202,7 @@ public class OrderInfoServiceImpl implements IOrderInfoService
if (StringUtils.isNotEmpty(dto.getSerialNumber())){ if (StringUtils.isNotEmpty(dto.getSerialNumber())){
queryParams.setSerialNumber(dto.getSerialNumber()); queryParams.setSerialNumber(dto.getSerialNumber());
} }
queryParams.setShip("1");
List<OrderInfo> orderInfos = orderInfoMapper.selectOrderInfoList(queryParams); List<OrderInfo> orderInfos = orderInfoMapper.selectOrderInfoList(queryParams);
if (CollUtil.isEmpty(orderInfos)) { if (CollUtil.isEmpty(orderInfos)) {
return Collections.emptyList(); return Collections.emptyList();

View File

@ -397,25 +397,26 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
headerList.add(Collections.singletonList("行业")); headerList.add(Collections.singletonList("行业"));
headerList.add(Collections.singletonList("代表处")); headerList.add(Collections.singletonList("代表处"));
headerList.add(Collections.singletonList("进货商接口人")); headerList.add(Collections.singletonList("进货商接口人"));
headerList.add(Collections.singletonList("Email")); // headerList.add(Collections.singletonList("Email"));
headerList.add(Collections.singletonList("联系方式")); headerList.add(Collections.singletonList("联系方式"));
headerList.add(Collections.singletonList("合同编号")); headerList.add(Collections.singletonList("合同编号"));
headerList.add(Collections.singletonList("币种")); headerList.add(Collections.singletonList("币种"));
headerList.add(Collections.singletonList("订单金额")); headerList.add(Collections.singletonList("订单金额"));
headerList.add(Collections.singletonList("维保金额")); headerList.add(Collections.singletonList("维保金额"));
headerList.add(Collections.singletonList("执行单有效截止时间")); headerList.add(Collections.singletonList("下单时间"));
headerList.add(Collections.singletonList("要求到货时间")); // headerList.add(Collections.singletonList("执行单有效截止时间"));
headerList.add(Collections.singletonList("公司直发")); // headerList.add(Collections.singletonList("要求到货时间"));
// headerList.add(Collections.singletonList("公司直发"));
headerList.add(Collections.singletonList("下单通路")); headerList.add(Collections.singletonList("下单通路"));
headerList.add(Collections.singletonList("供货商")); // headerList.add(Collections.singletonList("供货商"));
headerList.add(Collections.singletonList("汇智责任人")); headerList.add(Collections.singletonList("汇智责任人"));
headerList.add(Collections.singletonList("Email")); // headerList.add(Collections.singletonList("Email"));
headerList.add(Collections.singletonList("联系方式")); // headerList.add(Collections.singletonList("联系方式"));
headerList.add(Collections.singletonList("进货商")); headerList.add(Collections.singletonList("进货商"));
headerList.add(Collections.singletonList("进货商代码")); // headerList.add(Collections.singletonList("进货商代码"));
headerList.add(Collections.singletonList("进货商类型")); headerList.add(Collections.singletonList("进货商类型"));
headerList.add(Collections.singletonList("进货商联系人")); headerList.add(Collections.singletonList("进货商联系人"));
headerList.add(Collections.singletonList("Email")); // headerList.add(Collections.singletonList("Email"));
headerList.add(Collections.singletonList("联系方式")); headerList.add(Collections.singletonList("联系方式"));
headerList.add(Collections.singletonList("其他特别说明")); headerList.add(Collections.singletonList("其他特别说明"));
headerList.add(Collections.singletonList("订单状态")); headerList.add(Collections.singletonList("订单状态"));
@ -463,26 +464,27 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
row.add(info.getIndustryType()); row.add(info.getIndustryType());
row.add(info.getAgentName()); row.add(info.getAgentName());
row.add(info.getBusinessPerson()); row.add(info.getBusinessPerson());
row.add(info.getBusinessEmail()); // row.add(info.getBusinessEmail());
row.add(info.getBusinessPhone()); row.add(info.getBusinessPhone());
row.add(info.getOrderCode()); row.add(info.getOrderCode());
row.add(DictUtils.getDictLabel("currency_type", info.getCurrencyType())); row.add(DictUtils.getDictLabel("currency_type", info.getCurrencyType()));
row.add(info.getShipmentAmount() != null ? info.getShipmentAmount().toString() : ""); row.add(info.getShipmentAmount() != null ? info.getShipmentAmount().toString() : "");
row.add(DateUtil.format(info.getOrderEndTime(), "yyyy-MM-dd")); row.add(DateUtil.format(info.getEstimatedOrderTime(), "yyyy-MM-dd"));
row.add(DateUtil.format(info.getDeliveryTime(), "yyyy-MM-dd")); // row.add(DateUtil.format(info.getOrderEndTime(), "yyyy-MM-dd"));
row.add(DictUtils.getDictLabel("company_delivery", info.getCompanyDelivery())); // row.add(DateUtil.format(info.getDeliveryTime(), "yyyy-MM-dd"));
// row.add(DictUtils.getDictLabel("company_delivery", info.getCompanyDelivery()));
row.add(StringUtils.isEmpty(info.getOrderChannel()) ? "" : row.add(StringUtils.isEmpty(info.getOrderChannel()) ? "" :
"1".equals(info.getOrderChannel()) ? "总代" : "直签"); "1".equals(info.getOrderChannel()) ? "总代" : "直签");
row.add(info.getSupplier()); // row.add(info.getSupplier());
row.add(info.getDutyName()); row.add(info.getDutyName());
row.add(info.getDutyEmail()); // row.add(info.getDutyEmail());
row.add(info.getDutyPhone()); // row.add(info.getDutyPhone());
row.add(info.getPartnerName()); row.add(info.getPartnerName());
row.add(info.getPartnerCode()); // row.add(info.getPartnerCode());
row.add(DictUtils.getDictLabel("identify_level", info.getLevel())); row.add(DictUtils.getDictLabel("identify_level", info.getLevel()));
row.add(info.getPartnerUserName()); row.add(info.getPartnerUserName());
row.add(info.getPartnerEmail()); // row.add(info.getPartnerEmail());
row.add(info.getPartnerPhone()); row.add(info.getPartnerPhone());
row.add(info.getRemark()); row.add(info.getRemark());
row.add(DictUtils.getDictLabel("order_status", info.getOrderStatus())); row.add(DictUtils.getDictLabel("order_status", info.getOrderStatus()));
@ -537,7 +539,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
row.add(totalPrice.toString()); row.add(totalPrice.toString());
//维保金额 //维保金额
row.add(12, maintenancePrice.toString()); row.add(11, maintenancePrice.toString());
dataList.add(row); dataList.add(row);
} }

View File

@ -124,13 +124,30 @@
t1.update_by, t1.update_by,
t2.user_name as create_by_name t2.user_name as create_by_name
from order_info t1 from order_info t1
left join sys_user t2 on t1.create_by=t2.user_id left join sys_user t2 on t1.create_by=t2.user_id
<where> <where>
and t1.status=0 and t1.status=0
<if test="ship!=null and ship!=''">
<choose>
<when test="ship=='1'.toString()">
and t1.id in (SELECT DISTINCT t2.order_id FROM delivery_list t1 INNER JOIN order_delivery t2 ON
t1.delivery_id = t2.id)
</when>
<when test="ship=='0'.toString()">
and t1.id not in (SELECT DISTINCT t2.order_id FROM delivery_list t1 INNER JOIN order_delivery t2
ON t1.delivery_id = t2.id)
</when>
</choose>
</if>
<if test="orderCode != null and orderCode != ''">and t1.order_code like concat('%', #{orderCode}, '%')</if> <if test="orderCode != null and orderCode != ''">and t1.order_code like concat('%', #{orderCode}, '%')</if>
<if test="orderName != null and orderName != ''">and t1.order_name like concat('%', #{orderName}, '%')</if> <if test="orderName != null and orderName != ''">and t1.order_name like concat('%', #{orderName}, '%')</if>
<if test="projectCode != null and projectCode != ''">and t1.project_code like concat('%', #{projectCode}, '%')</if> <if test="projectCode != null and projectCode != ''">and t1.project_code like concat('%', #{projectCode},
<if test="customerName != null and customerName != ''">and t1.customer_name like concat('%', #{customerName}, '%')
</if>
<if test="customerName != null and customerName != ''">and t1.customer_name like concat('%',
#{customerName},
'%') '%')
</if> </if>
<if test="orderType != null and orderType != ''">and t1.order_type = #{orderType}</if> <if test="orderType != null and orderType != ''">and t1.order_type = #{orderType}</if>