pc派单
This commit is contained in:
parent
3a5cd3b210
commit
facc4199f6
|
|
@ -1,5 +1,9 @@
|
||||||
package com.ghy.web.controller.order;
|
package com.ghy.web.controller.order;
|
||||||
|
|
||||||
|
import cn.hutool.db.sql.Order;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||||
|
import com.ghy.common.adapay.model.PayParam;
|
||||||
import com.ghy.common.annotation.Log;
|
import com.ghy.common.annotation.Log;
|
||||||
import com.ghy.common.constant.UserConstants;
|
import com.ghy.common.constant.UserConstants;
|
||||||
import com.ghy.common.core.controller.BaseController;
|
import com.ghy.common.core.controller.BaseController;
|
||||||
|
|
@ -8,11 +12,11 @@ import com.ghy.common.core.domain.entity.SysUser;
|
||||||
import com.ghy.common.core.page.PageDomain;
|
import com.ghy.common.core.page.PageDomain;
|
||||||
import com.ghy.common.core.page.TableDataInfo;
|
import com.ghy.common.core.page.TableDataInfo;
|
||||||
import com.ghy.common.core.page.TableSupport;
|
import com.ghy.common.core.page.TableSupport;
|
||||||
import com.ghy.common.enums.BusinessType;
|
import com.ghy.common.enums.*;
|
||||||
import com.ghy.common.enums.ImgType;
|
|
||||||
import com.ghy.common.enums.OrderStatus;
|
|
||||||
import com.ghy.common.utils.ExceptionUtil;
|
import com.ghy.common.utils.ExceptionUtil;
|
||||||
|
import com.ghy.common.utils.MoneyUtil;
|
||||||
import com.ghy.common.utils.StringUtils;
|
import com.ghy.common.utils.StringUtils;
|
||||||
|
import com.ghy.common.utils.WechatMsgUtils;
|
||||||
import com.ghy.common.utils.poi.ExcelUtil;
|
import com.ghy.common.utils.poi.ExcelUtil;
|
||||||
import com.ghy.customer.domain.Customer;
|
import com.ghy.customer.domain.Customer;
|
||||||
import com.ghy.customer.domain.CustomerAddress;
|
import com.ghy.customer.domain.CustomerAddress;
|
||||||
|
|
@ -31,6 +35,7 @@ import com.ghy.order.service.*;
|
||||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||||
import com.ghy.payment.domain.FinancialDetail;
|
import com.ghy.payment.domain.FinancialDetail;
|
||||||
import com.ghy.payment.domain.FinancialMaster;
|
import com.ghy.payment.domain.FinancialMaster;
|
||||||
|
import com.ghy.payment.domain.PaymentRelation;
|
||||||
import com.ghy.payment.service.FinancialChangeRecordService;
|
import com.ghy.payment.service.FinancialChangeRecordService;
|
||||||
import com.ghy.payment.service.FinancialDetailService;
|
import com.ghy.payment.service.FinancialDetailService;
|
||||||
import com.ghy.payment.service.FinancialMasterService;
|
import com.ghy.payment.service.FinancialMasterService;
|
||||||
|
|
@ -135,6 +140,53 @@ public class OrderMasterController extends BaseController {
|
||||||
return "order/orderManager";
|
return "order/orderManager";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/pcOrderWorker/{orderIds}")
|
||||||
|
public String addMasterQrPay(@PathVariable(value = "orderIds") String orderIds, ModelMap mmap) {
|
||||||
|
// 不知道为啥参数可能会带上双引号 这里去掉再转Long
|
||||||
|
orderIds = orderIds.replace("\"", "");
|
||||||
|
List<Worker> workList = workerService.getWorkList(new Worker());
|
||||||
|
mmap.put("orderIds", orderIds);
|
||||||
|
mmap.put("workers", workList);
|
||||||
|
return "order/pcOrderWorker";
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/assign")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult assign(@RequestBody OrderMaster orderMaster){
|
||||||
|
OrderMaster param = new OrderMaster();
|
||||||
|
param.setOrderMasterIds(orderMaster.getOrderMasterIds());
|
||||||
|
List<OrderMaster> masters = orderMasterService.selectOrderMasterList(param);
|
||||||
|
long count = masters.stream().filter(x->!x.getOrderStatus().equals(OrderStatus.RECEIVE.code())|| x.getWorkerId() != null).count();
|
||||||
|
if(count > 0){
|
||||||
|
return AjaxResult.error("请选择待接单且无师傅接单订单指派");
|
||||||
|
}
|
||||||
|
masters.forEach(master->{
|
||||||
|
OrderMaster updateEntity = new OrderMaster();
|
||||||
|
updateEntity.setId(master.getId());
|
||||||
|
updateEntity.setWorkerId(orderMaster.getWorkerId());
|
||||||
|
orderMasterService.updateOrderMaster(updateEntity);
|
||||||
|
// 推送公众号通知数据。
|
||||||
|
try {
|
||||||
|
Worker assignWorker = workerService.selectById(orderMaster.getWorkerId());
|
||||||
|
// 消息组装。
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
// 订单编号
|
||||||
|
params.put("character_string6", master.getCode());
|
||||||
|
// 名称
|
||||||
|
params.put("thing14", "收到新订单");
|
||||||
|
// 预约时间
|
||||||
|
params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", master.getExpectTimeStart()));
|
||||||
|
// 消息推送
|
||||||
|
WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, params);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 暂时不做任何操作。
|
||||||
|
logger.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/orderWorker/{orderId}")
|
@GetMapping("/orderWorker/{orderId}")
|
||||||
public String orderWorker(@PathVariable("orderId") Long orderId, ModelMap mmap) {
|
public String orderWorker(@PathVariable("orderId") Long orderId, ModelMap mmap) {
|
||||||
List<Worker> workList = workerService.getWorkList(new Worker());
|
List<Worker> workList = workerService.getWorkList(new Worker());
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,9 @@
|
||||||
<a class="btn btn-default" onclick="mergePay()">
|
<a class="btn btn-default" onclick="mergePay()">
|
||||||
<i class="fa fa-money"></i> 付款
|
<i class="fa fa-money"></i> 付款
|
||||||
</a>
|
</a>
|
||||||
|
<a class="btn btn-default" onclick="showOrderWorker()">
|
||||||
|
<i class="fa fa-money"></i> 指派
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -612,6 +615,28 @@
|
||||||
showPayQrcode(rows.join());
|
showPayQrcode(rows.join());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showOrderWorker() {
|
||||||
|
table.set();
|
||||||
|
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
|
||||||
|
if (rows.length === 0) {
|
||||||
|
$.modal.alertWarning("请至少选择一条记录");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var url = "pcOrderWorker/" + rows.join(",");
|
||||||
|
layer.open({
|
||||||
|
type: 2,
|
||||||
|
area: ['800px', '450px'],
|
||||||
|
fix: false,
|
||||||
|
//不固定
|
||||||
|
maxmin: true,
|
||||||
|
shade: 0.3,
|
||||||
|
title: '指派师傅',
|
||||||
|
content: url,
|
||||||
|
// 弹层外区域关闭
|
||||||
|
shadeClose: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,222 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<th:block th:include="include :: header('指派师傅')"/>
|
||||||
|
<th:block th:include="include :: layout-latest-css"/>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.custom-container {
|
||||||
|
padding: 0 30px 20px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board-no-wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board.select-content {
|
||||||
|
flex-basis: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board.select-content .flex-board-no-wrap {
|
||||||
|
flex-basis: 90%
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board.input-content {
|
||||||
|
flex-basis: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-board.input-content input {
|
||||||
|
flex-basis: 75%
|
||||||
|
}
|
||||||
|
|
||||||
|
.specCanAssignNum {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 31px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="gray-bg">
|
||||||
|
<div class="animated fadeInRight row custom-container">
|
||||||
|
<div class="col-sm-12 search-collapse">
|
||||||
|
<form class="flex-board m" id="workerForm">
|
||||||
|
<div class="flex-board select-content m-t">
|
||||||
|
<label class="form-control-label">区域筛选:</label>
|
||||||
|
<div id="areaCxSelect" class="flex-board-no-wrap">
|
||||||
|
<select class="province form-control cx-select-input m-r" name="province" id="province" data-first-title="选择省" onchange="selectRegion('province', 'city')"></select>
|
||||||
|
<select class="city form-control cx-select-input m-r" name="city" id="city" data-first-title="选择市" onchange="selectRegion('city', 'district')"></select>
|
||||||
|
<select class="district form-control cx-select-input m-r" name="areaId" id="district" data-first-title="选择区" onchange="selectRegion('district', 'street')"></select>
|
||||||
|
<select class="street form-control cx-select-input m-r" name="streetId" id="streetId" data-first-title="选择街道" ></select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-board select-content m-t">
|
||||||
|
<label class="form-control-label">类别筛选:</label>
|
||||||
|
<div id="categoryCxSelect" class="flex-board-no-wrap">
|
||||||
|
<select class="category1 form-control cx-select-input m-r" name="category1" id="category1" data-first-title="选择一类"></select>
|
||||||
|
<select class="category2 form-control cx-select-input m-r" name="category2" id="category2" data-first-title="选择二类"></select>
|
||||||
|
<select class="category3 form-control cx-select-input m-r" name="goodsCategoryId" id="category3" data-first-title="选择三类"></select>
|
||||||
|
<select class="category4 form-control cx-select-input m-r" name="category4" id="category4" data-first-title="选择四类" ></select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-board input-content m-t">
|
||||||
|
<label class="form-control-label">人员名称:</label>
|
||||||
|
<input name="workerName" type="text" class="form-control normal-input m-r">
|
||||||
|
</div>
|
||||||
|
<div class="m-t">
|
||||||
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search('workerForm')"><i
|
||||||
|
class="fa fa-search"></i> 搜索</a>
|
||||||
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('workerForm')"><i
|
||||||
|
class="fa fa-refresh"></i> 重置</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-12 select-table table-striped">
|
||||||
|
<table id="bootstrap-table"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<th:block th:include="include :: footer"/>
|
||||||
|
<th:block th:include="include :: jquery-cxselect-js" />
|
||||||
|
<script type="text/javascript">
|
||||||
|
var orderMasterIds = '[[${orderIds}]]';
|
||||||
|
var prefix = ctx + "worker"
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
initForm();
|
||||||
|
initTable();
|
||||||
|
});
|
||||||
|
|
||||||
|
function initForm() {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType:"json",
|
||||||
|
url: ctx + "system/area/list",
|
||||||
|
success: function (result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$('#areaCxSelect').cxSelect({
|
||||||
|
selects: ['province', 'city', 'district', 'street'],
|
||||||
|
jsonValue: 'areaId',
|
||||||
|
jsonName: 'areaName',
|
||||||
|
data: result.data
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$.modal.msgError("数据加载错误,请重试!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType:"json",
|
||||||
|
url: ctx + "goods/deptcategory/app/list",
|
||||||
|
data: JSON.stringify({deptId: 101, goodsCategoryId: 1}),
|
||||||
|
contentType: 'application/json',
|
||||||
|
success: function (result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$('#categoryCxSelect').cxSelect({
|
||||||
|
selects: ['category1', 'category2', 'category3', 'category4'],
|
||||||
|
jsonValue: 'goodsCategoryId',
|
||||||
|
jsonName: 'goodsCategoryName',
|
||||||
|
jsonSub: 'child',
|
||||||
|
data: result.data
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$.modal.msgError("数据加载错误,请重试!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function initTable() {
|
||||||
|
var options = {
|
||||||
|
url: prefix + "/list",
|
||||||
|
modalName: "师傅派单列表",
|
||||||
|
firstLoad: false,
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
checkbox: true
|
||||||
|
}, {
|
||||||
|
field: 'name',
|
||||||
|
title: '人员名称',
|
||||||
|
align: "left"
|
||||||
|
}, {
|
||||||
|
field: 'phone',
|
||||||
|
title: '手机号',
|
||||||
|
align: "left"
|
||||||
|
}, {
|
||||||
|
title: '操作',
|
||||||
|
align: 'left',
|
||||||
|
formatter: function (value, row, index) {
|
||||||
|
var actions = [];
|
||||||
|
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="assign(' + row.workerId + ')">指派</a> ');
|
||||||
|
return actions.join('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
$.table.init(options);
|
||||||
|
$.table.search('workerForm');
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectRegion(regionLevelName, nextRegionLevelName) {
|
||||||
|
var regionId = $("#" + regionLevelName).val();
|
||||||
|
if ($.common.isEmpty(regionId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Ajax调用处理
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType:"json",
|
||||||
|
url: ctx + "system/area/list",
|
||||||
|
data: {parentCode: regionId},
|
||||||
|
success: function (result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$('#areaCxSelect').cxSelect({
|
||||||
|
selects: [nextRegionLevelName],
|
||||||
|
jsonValue: 'areaId',
|
||||||
|
jsonName: 'areaName',
|
||||||
|
data: result.data
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$.modal.msgError("数据加载错误,请重试!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function assign(workerId) {
|
||||||
|
var params = {
|
||||||
|
workerId: workerId,
|
||||||
|
orderMasterIds: orderMasterIds
|
||||||
|
};
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
dataType:"json",
|
||||||
|
url: ctx + "order/master/assign",
|
||||||
|
data: JSON.stringify(params),
|
||||||
|
contentType: 'application/json',
|
||||||
|
success: function (result) {
|
||||||
|
if (result.code == web_status.SUCCESS) {
|
||||||
|
$.modal.msgSuccess("指派成功")
|
||||||
|
loadCanAssignSpecInfo();
|
||||||
|
} else {
|
||||||
|
$.modal.msgError("指派失败")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue