师傅列表账号展示

This commit is contained in:
kuang.yife 2023-06-14 23:04:51 +08:00
parent 232eed7361
commit 19161fda7f
6 changed files with 294 additions and 13 deletions

View File

@ -119,6 +119,19 @@ public class OrderDetailController extends BaseController {
List<Worker> workList = workerService.getWorkList(param);
List<Long> ids = workList.stream().map(Worker::getWorkerId).collect(Collectors.toList());
orderDetail.setWorkerIds(ids);
if(CollectionUtils.isEmpty(ids)){
return getDataTable(new ArrayList<>());
}
}
if(orderDetail.getSysPayStatus() != null){
FinancialMaster param = new FinancialMaster();
param.setPayStatus(orderDetail.getSysPayStatus());
List<FinancialMaster> financialMasters = financialMasterService.selectFinancialMasterList(param);
List<Long> masterIds = financialMasters.stream().map(FinancialMaster::getOrderMasterId).collect(Collectors.toList());
orderDetail.setMasterIds(masterIds);
if(CollectionUtils.isEmpty(masterIds)){
return getDataTable(new ArrayList<>());
}
}
startPage();
if (this.getSysUser().getDept().getParentId() != 101) {
@ -135,15 +148,8 @@ public class OrderDetailController extends BaseController {
Map<Long, OrderMaster> orderMasterMap = orderMasters.stream().collect(Collectors.toMap(OrderMaster::getId, x -> x, (x, y) -> y));
List<FinancialMaster> financialMasters = financialMasterService.selectByOrderMasterIds(orderMasterIds);
Map<Long, FinancialMaster> financialMasterMap = new HashMap<>();
if(orderDetail.getSysPayStatus() != null && 0 == orderDetail.getSysPayStatus()){
financialMasterMap = financialMasters
.stream().filter(financialMaster->0 == financialMaster.getPayStatus()).collect(Collectors.toMap(FinancialMaster::getOrderMasterId, x -> x, (x, y) -> y));
}else {
financialMasterMap = financialMasters
.stream().collect(Collectors.toMap(FinancialMaster::getOrderMasterId, x -> x, (x, y) -> y));
}
Map<Long, FinancialMaster> financialMasterMap = financialMasters
.stream().collect(Collectors.toMap(FinancialMaster::getOrderMasterId, x -> x, (x, y) -> y));
Set<Long> orderDetailIds = orderDetails.stream().map(OrderDetail::getId).collect(Collectors.toSet());
Map<Long, FinancialDetail> financialDetailMap = financialDetailService.selectByOrderDetailIds(orderDetailIds)
@ -665,6 +671,14 @@ public class OrderDetailController extends BaseController {
return "/order/pay-qrcode";
}
@GetMapping("/orderWorker/{orderId}")
public String orderWorker(@PathVariable("orderId") Long orderId, ModelMap mmap) {
List<Worker> workList = workerService.getWorkList(new Worker());
mmap.put("orderId", orderId);
mmap.put("workers", workList);
return "/order/orderWorker";
}
/**
* 修改保存详细订单
*/

View File

@ -3,6 +3,7 @@
<head>
<th:block th:include="include :: header('模板新增')"/>
<th:block th:include="include :: layout-latest-css"/>
<th:block th:include="include :: bootstrap-fileinput-css"/>
<style>
body {
@ -202,9 +203,8 @@
<div class="form-group">
<label class="col-sm-2 control-label is-required">图片上传:</label>
<div class="col-sm-8">
<div class="file-loading">
<input id="multipleFile" name="files" type="file" multiple required>
</div>
<input type="text" name="imageUrl" value="" hidden>
<input type="file" name="imageUrlStr" id="imageUrlStr" multiple class="file" />
</div>
</div>
@ -367,6 +367,7 @@
<th:block th:include="include :: layout-latest-js"/>
<th:block th:include="include :: jquery-cxselect-js" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:src="@{/js/plugins/miniCascader/cascader.js}"></script>
<script th:src="@{/data/four-level-area.js}"></script>
<script type="text/javascript">
@ -594,6 +595,29 @@
return params;
}
// 营业执照上传
$('#imageUrlStr').fileinput({
language: 'zh', //设置语言
dropZoneEnabled: false, //是否显示拖拽区域
showPreview: false,
uploadExtraData: {
"name": "imageUrlStr"
},
dropZoneTitle: "可以将图片拖放到这里", //拖拽区域显示文字
uploadUrl: ctx + 'tool/qiniu/dept/upload', //上传路径
allowedFileExtensions: ['jpg', 'png', 'gif', 'jpeg'], //指定上传文件类型
maxFileSize: 0,
maxFileSize: 2048, //上传文件最大值单位kb
uploadAsync: true, //异步上传
maxFileCount: 2 //上传文件最大个数。
}).on("fileuploaded", function(event,data) { //异步上传成功后回调
if(data.response.code === 0){
$("input[name='imageUrl']").val(data.response.url)
}else {
alert("上传失败!");
}
});
function submitOrder() {
if (!validSpecialComponent()) return;
if ($.validate.form()) {

View File

@ -278,6 +278,9 @@
shiro:hasPermission="order:order:export">
<i class="fa fa-download"></i> 导出
</a>
<a class="btn btn-default" onclick="$.table.exportExcel()">
<i class="fa fa-download"></i> 指派
</a>
</div>
</div>
@ -379,6 +382,26 @@
}
}
function showOrderWorker(id) {
var url = "/order/detail/orderWorker/" + id;
layer.open({
type: 2,
area: ['600px', '360px'],
fix: false,
//不固定
maxmin: true,
shade: 0.3,
title: '指派师傅',
content: url,
btn: ['关闭'],
// 弹层外区域关闭
shadeClose: true,
cancel: function(index) {
return true;
}
});
}
function selectRegion(regionLevelName, nextRegionLevelName) {
var regionId = $("#" + regionLevelName).val();
if ($.common.isEmpty(regionId)) {
@ -468,6 +491,7 @@
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-info"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderDetailReject(\'' + row.id + '\')"></i>师傅退单</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderMasterReject(\'' + row.orderMasterId + '\')"></i>商家退单</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showOrderWorker(\'' + row.id + '\')"></i>指派</a> ');
if (row.payStatus == 0) {
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showPayQrcode(\'' + row.id + '\')"></i>付款</a> ');
}

View File

@ -0,0 +1,211 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<style>
body {
padding: 0 !important;
}
.pane1 {
padding-bottom: 0;
}
.pane2 {
padding-top: 0;
}
.template-div {
display: inline-block;
margin-right: 10px;
}
.template-body {
padding: 10px;
border-radius: 5px 5px 0 0;
border: 1px solid #1c84c6;
}
.template-footer {
background-color: #1c84c6;
color: white;
padding: 5px;
border-radius: 0 0 5px 5px;
border: 1px solid #1c84c6;
}
.floor-text {
display: flex;
align-items: baseline;
flex-wrap: wrap;
position: relative;
top: 2px;
}
.floor-input {
width: 50px;
}
.dropdown-btn {
height: 31px;
}
.oper-banner {
display: flex;
justify-content: space-between;
padding: 15px;
}
.oper-banner-start {
display: flex;
align-items: center;
}
.oper-banner-end {
display: flex;
justify-content: flex-end;
align-items: center;
}
.yuan-symbol {
color: red;
font-size: large;
}
.multiply-symbol {
font-size: large;
text-align: center;
}
.goodsNumList {
padding: 5px 8px 14px 5px;
min-height: 40px;
border: 1px solid #dcdfe6;
box-sizing: border-box;
border-radius: 4px;
}
.oneGoodsNumList {
padding: 5px 8px 5px 5px;
min-height: 40px;
border: 1px solid #dcdfe6;
box-sizing: border-box;
border-radius: 4px;
}
.goodsNum {
margin: 2px 0;
height: 24px;
}
#categoryCxSelect {
z-index: 101
}
#categoryCxSelect .eo-cascader-menu:nth-child(-n+3) .has-child label {
display: none;
}
</style>
<head>
<th:block th:include="include :: header('指派师傅')"/>
<th:block th:include="include :: layout-latest-css"/>
</head>
<body class="gray-bg">
<div class="ui-layout-center">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="order-goods-form">
<input name="id" type="hidden" th:value="${orderId}" />
<div class="form-group">
<label class="col-sm-2 control-label is-required">商品:</label>
<div class="col-sm-1 multiply-symbol">×</div>
<div id="goodsNumList" class="col-sm-1 oneGoodsNumList">
<input type="number" name="goodsNum" class="form-control" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">选择师傅:</label>
<div class="col-sm-8">
<select id="workerId" name="workerId" class="form-control control-label" required>
<option th:each="worker:${workers}" th:value="${worker.workerId}" th:text="${worker.name}" ></option>
</select>
</div>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: layout-latest-js"/>
<script th:inline="javascript">
var prefix = ctx + "order/goods";
var orderId = '[[${orderId}]]';
$(function () {
var panehHidden = false;
if ($(this).width() < 769) {
panehHidden = true;
}
$('body').layout({initClosed: panehHidden, west__size: 185});
// 回到顶部绑定
if ($.fn.toTop !== undefined) {
var opt = {
win: $('.ui-layout-center'),
doc: $('.ui-layout-center')
};
$('#scroll-up').toTop(opt);
}
queryOrderGoodsList();
});
function queryOrderGoodsList() {
var options = {
url: prefix + "/list?orderDetailId=" + orderId,
modalName: "订单商品",
search: false,
showSearch: false,
showToggle: false,
showColumns: false,
showRefresh: false,
columns: [
{
field: 'orderGoodsId',
title: '订单商品id',
visible: false
},
{
field: 'orderId',
title: '订单id',
visible: false
},
{
field: 'goodsName',
title: '商品名称'
},
{
field: 'goodsNum',
title: '商品数量'
},
{
field: 'serverGoodsNum',
title: '已服务数量'
}
]
};
$.table.init(options);
}
</script>
</body>
</html>

View File

@ -177,4 +177,6 @@ public class OrderDetail extends BaseEntity {
private List<Long> workerIds;
private List<Long> masterIds;
}

View File

@ -135,6 +135,12 @@
#{workerId}
</foreach>
</if>
<if test="masterIds != null and masterIds.size() > 0">
AND od.order_master_id in
<foreach collection="masterIds" item="masterId" open="(" separator="," close=")">
#{masterId}
</foreach>
</if>
<if test="goodsCategoryId != null">
AND g.dept_goods_category_id = #{goodsCategoryId}
</if>