|
|
|
|
@ -17,12 +17,14 @@ import com.ghy.goods.request.AppGoodsRequest;
|
|
|
|
|
import com.ghy.goods.service.DeptGoodsCategoryService;
|
|
|
|
|
import com.ghy.goods.service.GoodsService;
|
|
|
|
|
import com.ghy.goods.service.GoodsStandardService;
|
|
|
|
|
import com.ghy.order.domain.AfterServiceRecord;
|
|
|
|
|
import com.ghy.order.domain.OrderDetail;
|
|
|
|
|
import com.ghy.order.domain.OrderGoods;
|
|
|
|
|
import com.ghy.order.domain.OrderMaster;
|
|
|
|
|
import com.ghy.order.request.AppOrderAssignRequest;
|
|
|
|
|
import com.ghy.order.request.AppOrderRequest;
|
|
|
|
|
import com.ghy.order.request.SysOrderAssignRequest;
|
|
|
|
|
import com.ghy.order.service.IAfterServiceRecordService;
|
|
|
|
|
import com.ghy.order.service.OrderDetailService;
|
|
|
|
|
import com.ghy.order.service.OrderGoodsService;
|
|
|
|
|
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.web.pojo.vo.*;
|
|
|
|
|
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.huifu.adapay.core.exception.BaseAdaPayException;
|
|
|
|
|
import nonapi.io.github.classgraph.utils.CollectionUtils;
|
|
|
|
|
@ -108,6 +112,12 @@ public class OrderController extends BaseController {
|
|
|
|
|
@Autowired
|
|
|
|
|
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.setOrderStatus(OrderStatus.RECEIVE.code());
|
|
|
|
|
orderDetail.setWorkerId(request.getWorkerId());
|
|
|
|
|
orderDetail.setShelveStatus(0);
|
|
|
|
|
Long newMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster);
|
|
|
|
|
Long newDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail);
|
|
|
|
|
// 统计新订单的单量
|
|
|
|
|
response.setNewOrderNum(newMasterOrderCount + newDetailOrderCount);
|
|
|
|
|
// 统计未排的单量
|
|
|
|
|
orderMaster.setOrderStatus(OrderStatus.PLAIN.code());
|
|
|
|
|
orderDetail.setOrderStatus(OrderStatus.PLAIN.code());
|
|
|
|
|
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster) + orderDetailService.countOrderDetailList(orderDetail));
|
|
|
|
|
response.setPlanOrderNum(orderMasterService.countOrderMasterList(orderMaster));
|
|
|
|
|
// 统计待上门单量
|
|
|
|
|
orderMaster.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());
|
|
|
|
|
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());
|
|
|
|
|
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.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.setWorkerId(request.getWorkerId());
|
|
|
|
|
AjaxResult overTimeRes = this.appMixOrderList(orderListRequest);
|
|
|
|
|
@ -527,6 +552,306 @@ public class OrderController extends BaseController {
|
|
|
|
|
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) {
|
|
|
|
|
List<OrderListResponse> orderListResponses = new ArrayList<>();
|
|
|
|
|
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
|
|
|
|
|
@ -570,12 +895,19 @@ public class OrderController extends BaseController {
|
|
|
|
|
|
|
|
|
|
// 查询是否超时
|
|
|
|
|
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);
|
|
|
|
|
});
|
|
|
|
|
if (Boolean.TRUE.equals(orderMaster.getIsOverTime()) && timeoutRecords.size() == 0) continue;
|
|
|
|
|
|
|
|
|
|
@ -612,6 +944,7 @@ public class OrderController extends BaseController {
|
|
|
|
|
orderListResponse.setCustomerRemark(master.getRemark());
|
|
|
|
|
orderListResponse.setOrderTimeoutRecords(timeoutRecords);
|
|
|
|
|
orderListResponse.setChangeMoney(changeMoney);
|
|
|
|
|
orderListResponse.setAfterServiceRecordList(afterServiceRecords);
|
|
|
|
|
orderListResponses.add(orderListResponse);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -668,6 +1001,11 @@ public class OrderController extends BaseController {
|
|
|
|
|
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
|
|
|
|
|
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.setOrderDetailCode(detail.getCode());
|
|
|
|
|
@ -700,8 +1038,39 @@ public class OrderController extends BaseController {
|
|
|
|
|
orderListResponse.setOrderType(detail.getOrderType());
|
|
|
|
|
orderListResponse.setIsOverTime(isOverTime);
|
|
|
|
|
orderListResponse.setChangeMoney(changeMoney);
|
|
|
|
|
orderListResponse.setAfterServiceRecordList(afterServiceRecordList);
|
|
|
|
|
orderListResponses.add(orderListResponse);
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|