主单列表页面查询调整

This commit is contained in:
donqi 2023-06-26 00:02:43 +08:00
parent 6d4cf3ed78
commit d6bd909075
8 changed files with 237 additions and 18 deletions

View File

@ -354,6 +354,7 @@ public class OrderMasterController extends BaseController {
// 编辑返回属性
orderListResponse.setOrderMasterId(master.getId());
orderListResponse.setGoods(goods);
orderListResponse.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
@ -624,6 +625,10 @@ public class OrderMasterController extends BaseController {
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(OrderMaster orderMaster) {
if (orderMaster.getSearchAfterList() !=null && orderMaster.getSearchAfterList()) {
return this.afterList(orderMaster);
}
startPage();
if (this.getSysUser().getDept().getParentId() != 101) {
orderMaster.setDeptId(this.getSysUser().getDept().getParentId());
@ -897,8 +902,8 @@ public class OrderMasterController extends BaseController {
@GetMapping("/differentStatus/count")
@ResponseBody
public AjaxResult differentStatusOrderCount() {
return AjaxResult.success(orderMasterService.differentStatusOrderCount());
public AjaxResult differentStatusOrderCount(OrderMaster orderMaster) {
return AjaxResult.success(orderMasterService.differentStatusOrderCount(orderMaster));
}
@GetMapping("/count")

View File

@ -254,7 +254,7 @@
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 0})">
接单超时
(<span id="newOrderTimeoutNum">0</span>)
(<span id="newTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 1})">
约单超时
@ -284,7 +284,7 @@
客诉中
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 4})">
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: 4})">
审核中
(<span class="confirmingOrderNum">0</span>)
</a>

View File

@ -100,7 +100,7 @@
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: 4})">
确认审核
(<span id="confirmingOrderNum">0</span>)
(<span class="confirmingOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: 5})">
完成
@ -118,14 +118,22 @@
明日待上门
(<span id="tomorrowOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {searchAfterList: true})">
售后
(<span>0</span>)
(<span id="afterServiceOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
急报中
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
退单
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
售后纠纷
(<span>0</span>)
</a>
</div>
<div class="flex-board">
<div class="flex-board m-t">
@ -137,6 +145,42 @@
<select class="street form-control cx-select-input m-r" name="streetId" id="streetId" data-first-title="选择街道" ></select>
</div>
</div>
<div class="flex-board m-t">
创建时间:
<div class="input-group date">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input id="createTimeStart" type="text" class="form-control date-input" placeholder="开始日期" readonly>
</div>
<div class="input-group date m-r">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input id="createTimeEnd" type="text" class="form-control date-input" placeholder="结束日期" readonly>
</div>
</div>
<!-- <div class="flex-board m-t">-->
<!-- 服务时间:-->
<!-- <div class="input-group date">-->
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
<!-- <input id="workBeginTimeStart" type="text" class="form-control date-input" placeholder="开始日期" readonly>-->
<!-- </div>-->
<!---->
<!-- <div class="input-group date m-r">-->
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
<!-- <input id="workBeginTimeEnd" type="text" class="form-control date-input" placeholder="结束日期" readonly>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="flex-board m-t">-->
<!-- 完成时间:-->
<!-- <div class="input-group date">-->
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
<!-- <input id="workFinishTimeStart" type="text" class="form-control date-input" placeholder="开始日期" readonly>-->
<!-- </div>-->
<!---->
<!-- <div class="input-group date m-r">-->
<!-- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>-->
<!-- <input id="workFinishTimeEnd" type="text" class="form-control date-input" placeholder="结束日期" readonly>-->
<!-- </div>-->
<!-- </div>-->
<div class="flex-board m-t">
类别筛选:
<div id="categoryCxSelect" class="flex-board-no-wrap">
@ -146,17 +190,118 @@
<select class="category4 form-control cx-select-input m-r" name="category4" id="category4" data-first-title="选择四类" ></select>
</div>
</div>
<!-- <div class="flex-board-no-wrap m-t">-->
<!-- <label class="form-control-label">后台人员:</label>-->
<!-- <input type="text" class="form-control normal-input m-r">-->
<!-- </div>-->
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">商家名称:</label>
<input id="storeName" type="text" class="form-control normal-input m-r">
</div>
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">商家电话:</label>
<input id="storePhone" type="text" class="form-control normal-input m-r">
</div>
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">接单师傅名称:</label>
<input id="workerName" type="text" class="form-control normal-input m-r">
</div>
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">接单师傅电话:</label>
<input id="workerPhone" type="text" class="form-control normal-input m-r">
</div>
<!-- <div class="flex-board-no-wrap m-t">-->
<!-- <label class="form-control-label">师傅类型:</label>-->
<!-- <select class="form-control normal-select-input m-r">-->
<!-- <option value="">全部</option>-->
<!-- <option value="">大师傅</option>-->
<!-- <option value="">小师傅</option>-->
<!-- </select>-->
<!-- <input type="text" class="form-control normal-input m-r" placeholder="师傅姓名电话">-->
<!-- </div>-->
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">订单模式:</label>
<select id="orderMode" class="form-control normal-select-input m-r" onchange="changeOrderMode(this.options[this.options.selectedIndex].value)">
<option value="0">全部</option>
<option value="B2B">B2B</option>
<option value="B2C">B2C</option>
</select>
<select id="B2BOptions" class="form-control normal-select-input m-r">
<option value="">全部</option>
<option value="">常规单</option>
<option value="">赠送单</option>
<option value="">合规单</option>
</select>
<select id="B2COptions" class="form-control normal-select-input m-r">
<option value="">全部</option>
<option value="">商品配件类目</option>
<option value="">服务类目</option>
<option value="">社区类目</option>
</select>
</div>
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">订单标签:</label>
<select class="form-control normal-select-input m-r">
<option value="">全部</option>
</select>
</div>
<div class="flex-board-no-wrap m-t">
<label class="form-control-label">订单查询:</label>
<input type="text" class="form-control long-input m-r" placeholder="请输入订单号、姓名、电话或地址、品牌、规格">
<input id="keyWords" type="text" class="form-control long-input m-r" placeholder="请输入订单号、姓名、电话或地址、品牌、规格">
</div>
<div class="m-t">
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-primary btn-rounded btn-sm" onclick="searchByForm()"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="resetForm()"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
class="fa fa-refresh"></i>&nbsp;重置</a>
</div>
</div>
<div class="m-t condition-btn">
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: 0})">
新订单
(<span id="newOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 0})">
接单超时
(<span id="newTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 1})">
约单超时
(<span class="acceptedTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 1})">
排单超时
(<span class="acceptedTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
无法排单
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 2})">
待上门超时
(<span id="waitForDoorTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {timeout: 1, orderStatus: 3})">
进行超时
(<span id="servingTimeoutOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
售后超时
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
客诉中
(<span>0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: 4})">
审核中
(<span class="confirmingOrderNum">0</span>)
</a>
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatus: -1})">
一票价未改价
(<span>0</span>)
</a>
</div>
</form>
</div>
@ -265,9 +410,10 @@
url: prefix + '/differentStatus/count',
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#newOrderNum').text(result.data.newOrderNum);
$('#acceptedOrderNum').text(result.data.acceptedOrderNum);
$('#canceledOrderNum').text(result.data.canceledOrderNum);
$('#confirmingOrderNum').text(result.data.confirmingOrderNum);
$('.confirmingOrderNum').text(result.data.confirmingOrderNum);
$('#finishedOrderNum').text(result.data.finishedOrderNum);
$('#servingOrderNum').text(result.data.servingOrderNum);
$('#waitForDoorOrderNum').text(result.data.waitForDoorOrderNum);
@ -277,6 +423,24 @@
}
})
<!-- 不同状态超时订单数量统计-->
$.ajax({
type: "GET",
dataType:"json",
url: prefix + '/differentStatus/count',
data: {timeout: 1},
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#newTimeoutOrderNum').text(result.data.newOrderNum);
$('.acceptedTimeoutOrderNum').text(result.data.acceptedOrderNum);
$('#servingTimeoutOrderNum').text(result.data.servingOrderNum);
$('#waitForDoorTimeoutOrderNum').text(result.data.waitForDoorOrderNum);
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
<!-- 待付款订单数量统计-->
$.ajax({
type: "GET",
@ -343,6 +507,22 @@
}
}
})
<!-- 售后订单数量统计-->
$.ajax({
type: "POST",
dataType:"json",
url: prefix + '/after/count',
contentType: 'application/json',
data: JSON.stringify({}),
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#afterServiceOrderNum').text(result.data);
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
});
function changeOrderMode(orderMode) {
@ -596,6 +776,25 @@
$.table.search();
}
function searchByForm() {
let params = {
createTimeStart: $('#createTimeStart').val() ? $('#createTimeStart').val() + " 00:00:00" : undefined,
createTimeEnd: $('#createTimeEnd').val() ? $('#createTimeEnd').val() + " 23:59:59" : undefined,
<!-- workBeginTimeStart: $('#workBeginTimeStart').val(),-->
<!-- workBeginTimeEnd: $('#workBeginTimeEnd').val() ? $('#workBeginTimeEnd').val() + " 23:59:59" : undefined,-->
<!-- workFinishTimeStart: $('#workFinishTimeStart').val(),-->
<!-- workFinishTimeEnd: $('#workFinishTimeEnd').val() ? $('#workFinishTimeEnd').val() + " 23:59:59" : undefined,-->
storeName: $('#storeName').val(),
storePhone: $('#storePhone').val(),
workerName: $('#workerName').val(),
workerPhone: $('#workerPhone').val(),
keyWords: $('#keyWords').val()
}
customParams = Object.assign(customParams, params);
$.table.search();
}
function resetForm() {
$.form.reset();
customParams = {};

View File

@ -11,8 +11,10 @@ import com.ghy.payment.domain.FinancialMaster;
import com.ghy.worker.domain.Worker;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@ -150,4 +152,12 @@ public class OrderMaster extends BaseEntity {
private String isCall;
private BigDecimal serverMoney;
private Boolean searchAfterList;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
}

View File

@ -109,5 +109,5 @@ public interface OrderMasterMapper {
*/
int removeWorker(Long id);
OrderMasterCount differentStatusOrderCount();
OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster);
}

View File

@ -167,5 +167,5 @@ public interface OrderMasterService {
int reject(OrderMaster orderMaster);
OrderMasterCount differentStatusOrderCount();
OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster);
}

View File

@ -560,7 +560,7 @@ public class OrderMasterServiceImpl implements OrderMasterService {
}
@Override
public OrderMasterCount differentStatusOrderCount() {
return orderMasterMapper.differentStatusOrderCount();
public OrderMasterCount differentStatusOrderCount(OrderMaster orderMaster) {
return orderMasterMapper.differentStatusOrderCount(orderMaster);
}
}

View File

@ -163,7 +163,7 @@
AND om.create_time &gt;= #{createTimeStart}
</if>
<if test="createTimeEnd != null">
AND om.create_time &lt; #{createTimeEnd}
AND om.create_time &lt;= #{createTimeEnd}
</if>
<if test="orderMasterIds != null and orderMasterIds != ''">
AND om.id in (${orderMasterIds})
@ -423,8 +423,9 @@
WHERE id = #{id}
</update>
<select id="differentStatusOrderCount" resultType="com.ghy.order.domain.OrderMasterCount">
<select id="differentStatusOrderCount" resultType="com.ghy.order.domain.OrderMasterCount" parameterType="com.ghy.order.domain.OrderMaster">
select
count(case when om.order_status = 0 then 1 else null end) as newOrderNum,
count(case when om.order_status = 1 then 1 else null end) as acceptedOrderNum,
count(case when om.order_status = 2 then 1 else null end) as waitForDoorOrderNum,
count(case when om.order_status = 3 then 1 else null end) as servingOrderNum,
@ -432,6 +433,10 @@
count(case when om.order_status = 5 then 1 else null end) as finishedOrderNum,
count(case when om.order_status = 6 then 1 else null end) as canceledOrderNum
from order_master om
where 1 = 1
<if test="timeout != null">
AND om.timeout_ = #{timeout}
</if>
</select>
</mapper>