订单查询修改

This commit is contained in:
donqi 2022-10-31 00:07:07 +08:00
parent 2d69d21a1c
commit c8e744c0fc
8 changed files with 414 additions and 9 deletions

View File

@ -17,12 +17,14 @@ import com.ghy.goods.request.AppGoodsRequest;
import com.ghy.goods.service.DeptGoodsCategoryService; import com.ghy.goods.service.DeptGoodsCategoryService;
import com.ghy.goods.service.GoodsService; import com.ghy.goods.service.GoodsService;
import com.ghy.goods.service.GoodsStandardService; import com.ghy.goods.service.GoodsStandardService;
import com.ghy.order.domain.AfterServiceRecord;
import com.ghy.order.domain.OrderDetail; import com.ghy.order.domain.OrderDetail;
import com.ghy.order.domain.OrderGoods; import com.ghy.order.domain.OrderGoods;
import com.ghy.order.domain.OrderMaster; import com.ghy.order.domain.OrderMaster;
import com.ghy.order.request.AppOrderAssignRequest; import com.ghy.order.request.AppOrderAssignRequest;
import com.ghy.order.request.AppOrderRequest; import com.ghy.order.request.AppOrderRequest;
import com.ghy.order.request.SysOrderAssignRequest; import com.ghy.order.request.SysOrderAssignRequest;
import com.ghy.order.service.IAfterServiceRecordService;
import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderDetailService;
import com.ghy.order.service.OrderGoodsService; import com.ghy.order.service.OrderGoodsService;
import com.ghy.order.service.OrderMasterService; import com.ghy.order.service.OrderMasterService;
@ -38,6 +40,8 @@ import com.ghy.system.domain.SysArea;
import com.ghy.system.service.ISysAreaService; import com.ghy.system.service.ISysAreaService;
import com.ghy.web.pojo.vo.*; import com.ghy.web.pojo.vo.*;
import com.ghy.worker.domain.Worker; import com.ghy.worker.domain.Worker;
import com.ghy.worker.domain.WorkerCertification;
import com.ghy.worker.service.IWorkerCertificationService;
import com.ghy.worker.service.WorkerService; import com.ghy.worker.service.WorkerService;
import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.core.exception.BaseAdaPayException;
import nonapi.io.github.classgraph.utils.CollectionUtils; import nonapi.io.github.classgraph.utils.CollectionUtils;
@ -108,6 +112,12 @@ public class OrderController extends BaseController {
@Autowired @Autowired
private FinancialChangeRecordService financialChangeRecordService; private FinancialChangeRecordService financialChangeRecordService;
@Autowired
private IWorkerCertificationService workerCertificationService;
@Autowired
private IAfterServiceRecordService afterServiceRecordService;
/** /**
* 可派单商品数量 * 可派单商品数量
* */ * */
@ -430,28 +440,43 @@ public class OrderController extends BaseController {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrderStatus(OrderStatus.RECEIVE.code()); orderDetail.setOrderStatus(OrderStatus.RECEIVE.code());
orderDetail.setWorkerId(request.getWorkerId()); orderDetail.setWorkerId(request.getWorkerId());
orderDetail.setShelveStatus(0);
Long newMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster); Long newMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster);
Long newDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail); Long newDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail);
// 统计新订单的单量 // 统计新订单的单量
response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount); response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount);
// 统计未排的单量 // 统计未排的单量
orderMaster.setOrderStatus(OrderStatus.PLAIN.code()); orderMaster.setOrderStatus(OrderStatus.PLAIN.code());
orderDetail.setOrderStatus(OrderStatus.PLAIN.code()); response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster));
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
// 统计待上门单量 // 统计待上门单量
orderMaster.setOrderStatus(OrderStatus.GOING.code());
orderDetail.setOrderStatus(OrderStatus.GOING.code()); orderDetail.setOrderStatus(OrderStatus.GOING.code());
response.setWaitServOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); response.setWaitServOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计服务中单量 // 统计服务中单量
orderMaster.setOrderStatus(OrderStatus.SERVER.code());
orderDetail.setOrderStatus(OrderStatus.SERVER.code()); orderDetail.setOrderStatus(OrderStatus.SERVER.code());
response.setServingOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); response.setServingOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计待确认单量 // 统计待确认单量
orderMaster.setOrderStatus(OrderStatus.FINISH_CHECK.code());
orderDetail.setOrderStatus(OrderStatus.FINISH_CHECK.code()); orderDetail.setOrderStatus(OrderStatus.FINISH_CHECK.code());
response.setWaitSureOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail)); response.setWaitSureOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计超时单量 // 统计已完成子单量
orderDetail.setOrderStatus(OrderStatus.FINISH.code());
response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail));
// 统计监控单量
orderMaster.setOrderStatus(null);
orderMaster.setOrderStatuses("2,3,4,5");
response.setMonitoredOrderNum(orderMasterService.countOrderMasterList(orderMaster));
orderMaster.setOrderStatuses(null);
// 统计搁置单量
orderDetail.setShelveStatus(1);
response.setShelvedOrderNum(orderDetailService.countOrderDetailList(orderDetail));
orderDetail.setShelveStatus(0);
// 统计售后中单量
OrderListRequest orderListRequest = new OrderListRequest(); OrderListRequest orderListRequest = new OrderListRequest();
orderListRequest.setWorkerId(request.getWorkerId());
AjaxResult afterListRes = this.appMixAfterList(orderListRequest);
List<AfterServiceRecord> afterList = (List<AfterServiceRecord>)afterListRes.get("data");
response.setAfterListNum(afterList.size());
// 统计超时单量
orderListRequest = new OrderListRequest();
orderListRequest.setIsOverTime(true); orderListRequest.setIsOverTime(true);
orderListRequest.setWorkerId(request.getWorkerId()); orderListRequest.setWorkerId(request.getWorkerId());
AjaxResult overTimeRes = this.appMixOrderList(orderListRequest); AjaxResult overTimeRes = this.appMixOrderList(orderListRequest);
@ -527,6 +552,306 @@ public class OrderController extends BaseController {
return AjaxResult.success(orderListResponses); return AjaxResult.success(orderListResponses);
} }
@PostMapping("/app/mix/after/list")
@ResponseBody
public AjaxResult appMixAfterList(@RequestBody OrderListRequest orderListRequest) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
// 校验参数
Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空");
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
orderListResponses.addAll(this.getMasterAfterList(orderMasterReq));
// 查询子单
OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
orderListResponses.addAll(this.getDetailAfterList(orderDetailReq));
// 根据预约时间倒序排列
CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator<OrderListResponse>() {
@Override
public int compare(OrderListResponse o1, OrderListResponse o2) {
return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart());
}
});
return AjaxResult.success(orderListResponses);
}
public List<OrderListResponse> getMasterAfterList(OrderMaster orderMaster) {
// 查所有售后的单
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
// 踢重后的子单ids
List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList());
StringBuilder orderDetailIds = new StringBuilder();
OrderDetail orderDetail = new OrderDetail();
orderDetail.setCustomerId(orderMaster.getCustomerId());
orderDetail.setDeptId(orderMaster.getDeptId());
detailIds.forEach(id->{
orderDetailIds.append(id).append(",");
});
String ids = orderDetailIds.toString();
if(StringUtils.isNotEmpty(ids)){
orderDetail.setOrderDetailIds(ids.substring(0, ids.length()-1));
}else {
orderDetail.setOrderDetailIds("0");
}
// 所有售后的子单
List<OrderDetail> orderDetailList = orderDetailService.selectOrderDetailList(orderDetail);
StringBuilder orderMasterIds = new StringBuilder();
orderDetailList.stream().map(OrderDetail::getOrderMasterId).distinct()
.collect(Collectors.toList()).forEach(id->{
orderMasterIds.append(id).append(",");
});
String orderIds = orderMasterIds.toString();
if(StringUtils.isNotEmpty(orderIds)){
orderMaster.setOrderMasterIds(orderIds.substring(0, orderIds.length()-1));
}else {
orderMaster.setOrderMasterIds("0");
}
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
list.forEach(master -> {
//子单
List<OrderDetail> detailList = orderDetailService.selectByOrderMasterId(master.getId());
// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
// 师傅信息
Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null;
// 消费者信息
// Customer customer = customerService.selectByCustomerId(master.getCustomerId());
// 商品规格及信息
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
// 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
BigDecimal totalPayMoney = financialMaster.getPayMoney();
// BigDecimal totalChangeMoney = new BigDecimal(0);
// for (OrderDetail detail: detailList) {
// // 查询子单加价记录
// FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
// changeRecordQry.setOrderDetailId(detail.getId());
// List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
// if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
// totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney());
// }
// }
// totalPayMoney = totalPayMoney.add(totalChangeMoney);
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId());
String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress();
// 查询是否超时
List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>();
// 查询售后记录
List<AfterServiceRecord> afterServiceRecords = new ArrayList<>();
List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId());
detailOrderList.stream().forEach(detail -> {
OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
if (timeoutRecord != null) {
timeoutRecords.add(timeoutRecord);
}
AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord();
afterServiceRecordQry.setOrderDetailId(detail.getId());
List<AfterServiceRecord> records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry);
afterServiceRecords.addAll(records);
});
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
orderStandard.setStandardName(orderGoods.getGoodsName());
orderStandard.setStandardNum(orderGoods.getGoodsNum());
standardList.add(orderStandard);
}
// 编辑返回属性
orderListResponse.setOrderMasterId(master.getId());
orderListResponse.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
orderListResponse.setTotalMoney(financialMaster.getTotalMoney());
orderListResponse.setPayMoney(totalPayMoney);
// orderListResponse.setChangeMoney(totalChangeMoney);
orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customerAddress.getName());
orderListResponse.setCustomerPhone(customerAddress.getPhone());
orderListResponse.setServerTime(master.getRevTime());
orderListResponse.setExpectTimeStart(master.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd());
orderListResponse.setExpectTimeStartFront(master.getExpectTimeStart());
orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd());
orderListResponse.setOrderStatus(master.getOrderStatus());
orderListResponse.setPayStatus(master.getPayStatus());
orderListResponse.setPayType(master.getPayType());
orderListResponse.setOrderMasterCode(master.getCode());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(completeAddress);
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(master.getRemark());
orderListResponse.setOrderTimeoutRecords(timeoutRecords);
orderListResponse.setAfterServiceRecordList(afterServiceRecords);
orderListResponses.add(orderListResponse);
});
return orderListResponses;
}
public List<OrderListResponse> getDetailAfterList(OrderDetail orderDetail) {
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
Map<Long, List<AfterServiceRecord>> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record->record.getOrderDetailId()));
// 踢重后的子单ids
List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList());
StringBuilder orderDetailIds = new StringBuilder();
detailIds.forEach(id->{
orderDetailIds.append(id).append(",");
});
String ids = orderDetailIds.toString();
if(StringUtils.isNotEmpty(ids)){
orderDetail.setOrderDetailIds(ids.substring(0, ids.length()-1));
}else {
orderDetail.setOrderDetailIds("0");
}
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetail);
list.forEach(detail -> {
// 主单信息
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
// 师傅信息
Worker worker = workerService.selectById(detail.getWorkerId());
WorkerCertification workerRealInfo = null;
String workerName = "";
if (worker != null) {
// 师傅实名信息
workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId());
workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getName();
}
// 消费者信息
// Customer customer = customerService.selectByCustomerId(detail.getCustomerId());
// 商品规格及信息
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
// 财务信息
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
BigDecimal detailPayMoney = financialDetail.getPayMoney();
// 查询子单加价记录
FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId());
BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO : financialChangeRecord.getChangeMoney();
// 查询子单加价记录
// FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
// changeRecordQry.setOrderDetailId(detail.getId());
// List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
// if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
// detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney());
// }
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId());
SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId());
String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress();
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
orderStandard.setStandardName(orderGoods.getGoodsName());
orderStandard.setStandardNum(orderGoods.getGoodsNum());
orderStandard.setServerNum(orderGoods.getServerGoodsNum());
orderStandard.setFinishTime(orderGoods.getFinishTime());
orderStandard.setWaitServerNum(orderGoods.getGoodsNum() - orderGoods.getServerGoodsNum());
standardList.add(orderStandard);
}
// 查询是否超时
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
if(this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())){
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(detail.getOrderMasterId());
BigDecimal workerFee = financialMaster.getPayMoney();
List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
for (FinancialDetail param : financialDetailList) {
if (!detail.getWorkerId().equals(param.getPayeeId())) {
workerFee = workerFee.subtract(param.getPayMoney());
}
}
orderListResponse.setPayMoney(workerFee);
orderListResponse.setIsOnlyServ(Boolean.TRUE);
}else {
orderListResponse.setPayMoney(detailPayMoney);
orderListResponse.setIsOnlyServ(Boolean.FALSE);
}
// 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId());
orderListResponse.setOrderDetailCode(detail.getCode());
orderListResponse.setOrderMasterId(detail.getOrderMasterId());
orderListResponse.setOrderMasterCode(detail.getOrderMasterCode());
orderListResponse.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
orderListResponse.setWorkerName(workerName);
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customerAddress.getName());
orderListResponse.setCustomerPhone(customerAddress.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setPayType(orderMaster.getPayType());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(completeAddress);
orderListResponse.setServerTime(detail.getRevTime());
orderListResponse.setExpectTimeStart(detail.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd());
orderListResponse.setExpectTimeStartFront(detail.getExpectTimeStart());
orderListResponse.setExpectTimeEndFront(detail.getExpectTimeEnd());
orderListResponse.setWorkBeginTime(detail.getWorkBeginTime());
orderListResponse.setWorkFinishTime(detail.getWorkFinishTime());
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(orderMaster.getRemark());
orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setIsOverTime(isOverTime);
orderListResponse.setAfterServiceRecordList(detailRecordMap.get(detail.getId()));
orderListResponse.setChangeMoney(changeMoney);
orderListResponses.add(orderListResponse);
});
return orderListResponses;
}
public List<OrderListResponse> getMasterList(OrderMaster orderMaster) { public List<OrderListResponse> getMasterList(OrderMaster orderMaster) {
List<OrderListResponse> orderListResponses = new ArrayList<>(); List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster); List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
@ -570,12 +895,19 @@ public class OrderController extends BaseController {
// 查询是否超时 // 查询是否超时
List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>(); List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>();
// 查询售后记录
List<AfterServiceRecord> afterServiceRecords = new ArrayList<>();
List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId()); List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId());
detailOrderList.stream().forEach(detail -> { detailOrderList.stream().forEach(detail -> {
OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
if (timeoutRecord != null) { if (timeoutRecord != null) {
timeoutRecords.add(timeoutRecord); timeoutRecords.add(timeoutRecord);
} }
AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord();
afterServiceRecordQry.setOrderDetailId(detail.getId());
List<AfterServiceRecord> records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry);
afterServiceRecords.addAll(records);
}); });
if (Boolean.TRUE.equals(orderMaster.getIsOverTime()) && timeoutRecords.size() == 0) continue; if (Boolean.TRUE.equals(orderMaster.getIsOverTime()) && timeoutRecords.size() == 0) continue;
@ -612,6 +944,7 @@ public class OrderController extends BaseController {
orderListResponse.setCustomerRemark(master.getRemark()); orderListResponse.setCustomerRemark(master.getRemark());
orderListResponse.setOrderTimeoutRecords(timeoutRecords); orderListResponse.setOrderTimeoutRecords(timeoutRecords);
orderListResponse.setChangeMoney(changeMoney); orderListResponse.setChangeMoney(changeMoney);
orderListResponse.setAfterServiceRecordList(afterServiceRecords);
orderListResponses.add(orderListResponse); orderListResponses.add(orderListResponse);
} }
@ -668,6 +1001,11 @@ public class OrderController extends BaseController {
Boolean isOverTime = orderTimeoutRecord == null ? false : true; Boolean isOverTime = orderTimeoutRecord == null ? false : true;
if (Boolean.TRUE.equals(orderDetail.getIsOverTime()) && !isOverTime) continue; if (Boolean.TRUE.equals(orderDetail.getIsOverTime()) && !isOverTime) continue;
// 售后记录
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setOrderDetailId(detail.getId());
List<AfterServiceRecord> afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
// 编辑返回属性 // 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId()); orderListResponse.setOrderDetailId(detail.getId());
orderListResponse.setOrderDetailCode(detail.getCode()); orderListResponse.setOrderDetailCode(detail.getCode());
@ -700,8 +1038,39 @@ public class OrderController extends BaseController {
orderListResponse.setOrderType(detail.getOrderType()); orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setIsOverTime(isOverTime); orderListResponse.setIsOverTime(isOverTime);
orderListResponse.setChangeMoney(changeMoney); orderListResponse.setChangeMoney(changeMoney);
orderListResponse.setAfterServiceRecordList(afterServiceRecordList);
orderListResponses.add(orderListResponse); orderListResponses.add(orderListResponse);
} }
return orderListResponses; return orderListResponses;
} }
private boolean checkIsOnlyServer(Long orderMasterId, Long workId){
// 找出原单的数量
List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderMasterId(orderMasterId);
// 找出原单关联的细单的商品数量
List<OrderDetail> orderDetailList = orderDetailService.selectByOrderMasterId(orderMasterId);
for (OrderDetail detail : orderDetailList){
// 非一个师傅接单
if(!workId.equals(detail.getWorkerId())){
return false;
}
// 子单数量
List<OrderGoods> orderDetailGoodsList = orderGoodsService.selectByOrderDetailId(detail.getId());
// 计算剩余未分配的商品数量
for (OrderGoods detailGoods : orderDetailGoodsList) {
for(OrderGoods masterGoods : orderGoodsList){
if(Objects.equals(masterGoods.getGoodsStandardId(), detailGoods.getGoodsStandardId())){
masterGoods.setGoodsNum(masterGoods.getGoodsNum() - detailGoods.getGoodsNum());
}
}
}
}
// 有单派完.
for (OrderGoods orderGoods : orderGoodsList) {
if (orderGoods.getGoodsNum() > 0) {
return false;
}
}
return true;
}
} }

View File

@ -334,6 +334,11 @@ public class OrderDetailController extends BaseController {
orderListResponse.setIsOnlyServ(Boolean.FALSE); orderListResponse.setIsOnlyServ(Boolean.FALSE);
} }
// 售后记录
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setOrderDetailId(detail.getId());
List<AfterServiceRecord> afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
// 编辑返回属性 // 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId()); orderListResponse.setOrderDetailId(detail.getId());
orderListResponse.setOrderDetailCode(detail.getCode()); orderListResponse.setOrderDetailCode(detail.getCode());
@ -365,6 +370,7 @@ public class OrderDetailController extends BaseController {
orderListResponse.setOrderType(detail.getOrderType()); orderListResponse.setOrderType(detail.getOrderType());
orderListResponse.setIsOverTime(isOverTime); orderListResponse.setIsOverTime(isOverTime);
orderListResponse.setChangeMoney(changeMoney); orderListResponse.setChangeMoney(changeMoney);
orderListResponse.setAfterServiceRecordList(afterServiceRecordList);
orderListResponses.add(orderListResponse); orderListResponses.add(orderListResponse);
}); });
return voDataTable(orderListResponses, list); return voDataTable(orderListResponses, list);

View File

@ -161,12 +161,19 @@ public class OrderMasterController extends BaseController {
// 查询是否超时 // 查询是否超时
List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>(); List<OrderTimeoutRecord> timeoutRecords = new ArrayList<>();
// 查询售后记录
List<AfterServiceRecord> afterServiceRecords = new ArrayList<>();
List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId()); List<OrderDetail> detailOrderList = orderDetailService.selectByOrderMasterId(master.getId());
detailOrderList.stream().forEach(detail -> { detailOrderList.stream().forEach(detail -> {
OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus()); OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
if (timeoutRecord != null) { if (timeoutRecord != null) {
timeoutRecords.add(timeoutRecord); timeoutRecords.add(timeoutRecord);
} }
AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord();
afterServiceRecordQry.setOrderDetailId(detail.getId());
List<AfterServiceRecord> records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry);
afterServiceRecords.addAll(records);
}); });
for (OrderGoods orderGoods : orderStandardList) { for (OrderGoods orderGoods : orderStandardList) {
@ -202,6 +209,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setRemark(goods.getRemark()); orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(master.getRemark()); orderListResponse.setCustomerRemark(master.getRemark());
orderListResponse.setOrderTimeoutRecords(timeoutRecords); orderListResponse.setOrderTimeoutRecords(timeoutRecords);
orderListResponse.setAfterServiceRecordList(afterServiceRecords);
orderListResponses.add(orderListResponse); orderListResponses.add(orderListResponse);
}); });
@ -422,6 +430,10 @@ public class OrderMasterController extends BaseController {
// detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney()); // detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney());
// } // }
// 查询是否超时
OrderTimeoutRecord timeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(orderDetail.getId(), orderDetail.getOrderStatus());
Boolean isOverTime = timeoutRecord != null ? Boolean.TRUE : Boolean.FALSE;
OrderStandardDetail orderStandardDetail = new OrderStandardDetail(); OrderStandardDetail orderStandardDetail = new OrderStandardDetail();
orderStandardDetail.setOrderDetailId(orderDetail.getId()); orderStandardDetail.setOrderDetailId(orderDetail.getId());
orderStandardDetail.setOrderDetailCode(orderDetail.getCode()); orderStandardDetail.setOrderDetailCode(orderDetail.getCode());
@ -440,6 +452,7 @@ public class OrderMasterController extends BaseController {
orderStandardDetail.setPayMoney(detailPayMoney); orderStandardDetail.setPayMoney(detailPayMoney);
orderStandardDetail.setFinancialChangeRecord(financialChangeRecords); orderStandardDetail.setFinancialChangeRecord(financialChangeRecords);
orderStandardDetail.setOrderStatus(orderDetail.getOrderStatus()); orderStandardDetail.setOrderStatus(orderDetail.getOrderStatus());
orderStandardDetail.setIsOverTime(isOverTime);
AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setOrderDetailId(orderDetail.getId()); afterServiceRecord.setOrderDetailId(orderDetail.getId());

View File

@ -51,4 +51,6 @@ public class OrderStandardDetail {
private Integer orderStatus; private Integer orderStatus;
private Boolean isOnlyServ; private Boolean isOnlyServ;
private Boolean isOverTime;
} }

View File

@ -18,4 +18,8 @@ public class OrderStatisticsResponse {
private long overTimeOrderNum; private long overTimeOrderNum;
private long todayOrderNum; private long todayOrderNum;
private long tomorrowOrderNum; private long tomorrowOrderNum;
private long finishedOrderNum;
private long monitoredOrderNum;
private long shelvedOrderNum;
private long afterListNum;
} }

View File

@ -73,4 +73,6 @@ public class OrderDetail extends BaseEntity {
private String orderDetailIds; private String orderDetailIds;
private Boolean useTimeNotRange; private Boolean useTimeNotRange;
private Integer shelveStatus;
} }

View File

@ -111,6 +111,9 @@
<if test="orderDetailIds != null"> <if test="orderDetailIds != null">
AND od.id in ( ${orderDetailIds} ) AND od.id in ( ${orderDetailIds} )
</if> </if>
<if test="shelveStatus != null">
AND od.shelve_status = ${shelveStatus}
</if>
</where> </where>
order by od.create_time order by od.create_time
<trim suffixOverrides=","> <trim suffixOverrides=",">
@ -161,6 +164,9 @@
<if test="expectTimeEnd != null"> <if test="expectTimeEnd != null">
AND od.expect_time_end &lt;= #{expectTimeEnd} AND od.expect_time_end &lt;= #{expectTimeEnd}
</if> </if>
<if test="shelveStatus != null">
AND od.shelve_status = ${shelveStatus}
</if>
</where> </where>
order by od.create_time order by od.create_time
<trim suffixOverrides=","> <trim suffixOverrides=",">

View File

@ -160,6 +160,9 @@
<if test="orderStatus != null"> <if test="orderStatus != null">
AND om.order_status = #{orderStatus} AND om.order_status = #{orderStatus}
</if> </if>
<if test="orderStatuses != null and orderStatuses != ''">
AND om.order_status in (${orderStatuses})
</if>
<if test="payType != null"> <if test="payType != null">
AND om.pay_type = #{payType} AND om.pay_type = #{payType}
</if> </if>