处理商品类目没有的问题,增加客户是否同意上门重做方案,以及师傅重做/补做完成接口

This commit is contained in:
cb 2025-09-03 10:38:31 +08:00
parent a2a009a1e2
commit 08e5353b4e
5 changed files with 190 additions and 99 deletions

View File

@ -119,6 +119,7 @@ public class OrderController extends BaseController {
@Resource @Resource
private ShopService shopService; private ShopService shopService;
@GetMapping("/imgs") @GetMapping("/imgs")
public String orderImgs(Long orderId, ModelMap mmap) { public String orderImgs(Long orderId, ModelMap mmap) {
mmap.put("orderId", orderId); mmap.put("orderId", orderId);
@ -425,7 +426,7 @@ public class OrderController extends BaseController {
od.setOrderMasterCode(om.getCode()); od.setOrderMasterCode(om.getCode());
od.setCustomerId(om.getCustomerId()); od.setCustomerId(om.getCustomerId());
od.setOrderType(om.getOrderType()); od.setOrderType(om.getOrderType());
if (request.getIsQuicklyDelivery()!=null&&request.getIsQuicklyDelivery()==1){ if (request.getIsQuicklyDelivery() != null && request.getIsQuicklyDelivery() == 1) {
od.setOrderStatus(OrderStatus.SERVER.code()); od.setOrderStatus(OrderStatus.SERVER.code());
// 立即发货时计算确认截止时间并设置到confirmStartTime字段 // 立即发货时计算确认截止时间并设置到confirmStartTime字段
@ -455,12 +456,12 @@ public class OrderController extends BaseController {
od.setConfirmStartTime(confirmDeadlineTime); od.setConfirmStartTime(confirmDeadlineTime);
logger.info("立即发货订单[{}]发货类型[{}],确认截止时间:{}", logger.info("立即发货订单[{}]发货类型[{}],确认截止时间:{}",
od.getCode(), logType, od.getCode(), logType,
com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", confirmDeadlineTime)); com.ghy.common.utils.DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", confirmDeadlineTime));
} else { } else {
logger.warn("订单[{}]发货类型为null未设置确认截止时间", od.getCode()); logger.warn("订单[{}]发货类型为null未设置确认截止时间", od.getCode());
} }
}else{ } else {
od.setOrderStatus(request.getWorkerId().equals(om.getWorkerId()) ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code()); od.setOrderStatus(request.getWorkerId().equals(om.getWorkerId()) ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code());
} }
od.setWorkerId(request.getWorkerId()); od.setWorkerId(request.getWorkerId());
@ -480,7 +481,7 @@ public class OrderController extends BaseController {
orderGoods.setGoodsName(goodsStandard.getGoodsStandardName()); orderGoods.setGoodsName(goodsStandard.getGoodsStandardName());
orderGoods.setOrderDetailId(od.getId()); orderGoods.setOrderDetailId(od.getId());
orderGoods.setServerGoodsNum(0); orderGoods.setServerGoodsNum(0);
// orderGoods.setOrderId(om.getId()); // orderGoods.setOrderId(om.getId());
orderGoodsService.insertOrderGoods(orderGoods); orderGoodsService.insertOrderGoods(orderGoods);
}); });
@ -514,9 +515,9 @@ public class OrderController extends BaseController {
// 派完单 并且只有自己接单 // 派完单 并且只有自己接单
om2up.setHasDispatchedAll(1); om2up.setHasDispatchedAll(1);
om2up.setAllSelfAssigned(1); om2up.setAllSelfAssigned(1);
if (request.getIsQuicklyDelivery()!=null&&request.getIsQuicklyDelivery()==1){ if (request.getIsQuicklyDelivery() != null && request.getIsQuicklyDelivery() == 1) {
om2up.setOrderStatus(OrderStatus.SERVER.code()); om2up.setOrderStatus(OrderStatus.SERVER.code());
}else{ } else {
om2up.setOrderStatus(OrderStatus.GOING.code()); om2up.setOrderStatus(OrderStatus.GOING.code());
} }
} else { } else {
@ -576,7 +577,7 @@ public class OrderController extends BaseController {
} }
// 计算商品费用 // 计算商品费用
BigDecimal totalPay = goodsService.calculate(appGoodsList); BigDecimal totalPay = goodsService.calculate(appGoodsList);
logger.info("获取到的商品:{},计算的商品价值{}",appGoodsList,totalPay); logger.info("获取到的商品:{},计算的商品价值{}", appGoodsList, totalPay);
// 所有商品的ID // 所有商品的ID
Set<Long> goodsStandardIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsStandardId).collect(Collectors.toSet()); Set<Long> goodsStandardIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsStandardId).collect(Collectors.toSet());
// 所有商品 // 所有商品
@ -589,10 +590,10 @@ public class OrderController extends BaseController {
OrderMaster orderMaster = new OrderMaster(); OrderMaster orderMaster = new OrderMaster();
orderMaster.setOrderType(0); orderMaster.setOrderType(0);
// 判断是否是配件商品 // 判断是否是配件商品
if (goods.getType() != null && goods.getType() == 2) { if (goods.getType() != null && goods.getType() == 2) {
// 配件商品需要获取对应的服务商品 // 配件商品需要获取对应的服务商品
orderMaster.setOrderType(1); orderMaster.setOrderType(1);
} }
// // 通过商品的类目ID获取类目信息 // // 通过商品的类目ID获取类目信息
// DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); // DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId());
@ -681,7 +682,7 @@ public class OrderController extends BaseController {
orderMaster.setInsuranceId(manager.getId()); orderMaster.setInsuranceId(manager.getId());
} }
} }
logger.info("是否有保险金额{}",payMoney); logger.info("是否有保险金额{}", payMoney);
orderMasterService.insertOrderMaster(orderMaster); orderMasterService.insertOrderMaster(orderMaster);
Assert.notNull(orderMaster.getId(), "OrderMaster.id is null!"); Assert.notNull(orderMaster.getId(), "OrderMaster.id is null!");
@ -729,7 +730,6 @@ public class OrderController extends BaseController {
} }
return AjaxResult.success(orderMaster); return AjaxResult.success(orderMaster);
} }
@ -767,7 +767,7 @@ public class OrderController extends BaseController {
.add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getRetainRate())))); .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getRetainRate()))));
} }
} }
// logger.info("一二三级平台节流扣点分别为【{}】【{}】【{}】【{}】[{}]",oneMoney,twoMoney,threeMoney,deptMoney,specialMoney); // logger.info("一二三级平台节流扣点分别为【{}】【{}】【{}】【{}】[{}]",oneMoney,twoMoney,threeMoney,deptMoney,specialMoney);
// 平台扣除保险 -- // 平台扣除保险 --
deptMoney = deptMoney.add(insuranceMoney); deptMoney = deptMoney.add(insuranceMoney);
@ -1062,11 +1062,11 @@ public class OrderController extends BaseController {
OrderDetail orderDetailReq = new OrderDetail(); OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq); BeanUtils.copyProperties(orderListRequest, orderDetailReq);
List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetailReq); List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetailReq);
long size= list.stream() long size = list.stream()
.filter(order -> order.getOrderStatus() != 6) // 先过滤状态不等于6的订单 .filter(order -> order.getOrderStatus() != 6) // 先过滤状态不等于6的订单
.filter(order -> order.getOrderStatus() != 5).count(); .filter(order -> order.getOrderStatus() != 5).count();
count += size; count += size;
logger.info("子单超时数量{}",count); logger.info("子单超时数量{}", count);
List<OrderMaster> allList = new ArrayList<>(); List<OrderMaster> allList = new ArrayList<>();
List<Long> masterIdSet = new ArrayList<Long>(); List<Long> masterIdSet = new ArrayList<Long>();
if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
@ -1084,10 +1084,10 @@ public class OrderController extends BaseController {
.map(OrderMaster::getId) // 再提取id .map(OrderMaster::getId) // 再提取id
.collect(Collectors.toList()) .collect(Collectors.toList())
); );
if (CollectionUtils.isEmpty(countParam.getMasterIds())){ if (CollectionUtils.isEmpty(countParam.getMasterIds())) {
return count; return count;
} }
logger.info("符合条件的主单超时参数{},count{}",countParam,count); logger.info("符合条件的主单超时参数{},count{}", countParam, count);
List<OrderDetail> orderDetails = orderDetailService.selectOrderDetailList(countParam); List<OrderDetail> orderDetails = orderDetailService.selectOrderDetailList(countParam);
List<OrderDetail> result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList()); List<OrderDetail> result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(result)) { if (CollectionUtils.isNotEmpty(result)) {
@ -1107,9 +1107,9 @@ public class OrderController extends BaseController {
orderMasterReq.setExceptOrderMasterIds(masterIdSet); orderMasterReq.setExceptOrderMasterIds(masterIdSet);
List<OrderMaster> masterList = orderMasterService.selectOrderMasterList(orderMasterReq); List<OrderMaster> masterList = orderMasterService.selectOrderMasterList(orderMasterReq);
allList.addAll(masterList); allList.addAll(masterList);
List<Long> mateIds=allList.stream().map(OrderMaster::getId) List<Long> mateIds = allList.stream().map(OrderMaster::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
logger.info("查询符合条件的主单条件{}总数{}allList的数量{}allist的主单id{}",orderMasterReq,count,allList.size(),mateIds); logger.info("查询符合条件的主单条件{}总数{}allList的数量{}allist的主单id{}", orderMasterReq, count, allList.size(), mateIds);
// 超时查询需要排除同个师傅的主单子单同时出现 // 超时查询需要排除同个师傅的主单子单同时出现
if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
// 需要排除同个师傅的主单子单同时出现 // 需要排除同个师傅的主单子单同时出现
@ -1132,23 +1132,23 @@ public class OrderController extends BaseController {
break; break;
} }
} }
logger.info("主单id{},子单数据{},{}",master.getId(),CollectionUtils.isEmpty(tmpDetailListOfMasters),isKeep); logger.info("主单id{},子单数据{},{}", master.getId(), CollectionUtils.isEmpty(tmpDetailListOfMasters), isKeep);
if (isKeep||CollectionUtils.isEmpty(tmpDetailListOfMasters)) { if (isKeep || CollectionUtils.isEmpty(tmpDetailListOfMasters)) {
filteredMasterList.add(master); filteredMasterList.add(master);
} }
} }
count += filteredMasterList.size(); count += filteredMasterList.size();
mateIds=filteredMasterList.stream().map(OrderMaster::getId) mateIds = filteredMasterList.stream().map(OrderMaster::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
logger.info("主单filteredMasterList超时数量{}总数{},filteredMasterList的id集合{}",filteredMasterList.size(),count,mateIds); logger.info("主单filteredMasterList超时数量{}总数{},filteredMasterList的id集合{}", filteredMasterList.size(), count, mateIds);
if (CollectionUtils.isEmpty(filteredMasterList)){ if (CollectionUtils.isEmpty(filteredMasterList)) {
count += masterList.size(); count += masterList.size();
} }
} else { } else {
count += masterList.size(); count += masterList.size();
} }
logger.info("主单超时数量{}总数{}",masterList.size(),count); logger.info("主单超时数量{}总数{}", masterList.size(), count);
return count; return count;
} }
@ -1160,7 +1160,7 @@ public class OrderController extends BaseController {
public AjaxResult appMixOrderList(@RequestBody OrderListRequest orderListRequest) { public AjaxResult appMixOrderList(@RequestBody OrderListRequest orderListRequest) {
List<OrderListResponse> orderListResponses = new ArrayList<>(); List<OrderListResponse> orderListResponses = new ArrayList<>();
logger.info("查询不同订单的传入参数{}",orderListRequest); logger.info("查询不同订单的传入参数{}", orderListRequest);
// 校验参数 // 校验参数
Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空"); Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空");
@ -1226,13 +1226,13 @@ public class OrderController extends BaseController {
// } else { // } else {
orderListResponses.addAll(masterList); orderListResponses.addAll(masterList);
// } // }
logger.info("未处理的订单{}",orderListResponses); logger.info("未处理的订单{}", orderListResponses);
if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) {
if (orderListResponses.size()>0){ if (orderListResponses.size() > 0) {
orderListResponses = orderListResponses.stream() orderListResponses = orderListResponses.stream()
.filter(order -> order.getOrderStatus() != 5 && order.getOrderStatus() != 6) .filter(order -> order.getOrderStatus() != 5 && order.getOrderStatus() != 6)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
logger.info("处理已完成及已取消的订单: {}", orderListResponses); logger.info("处理已完成及已取消的订单: {}", orderListResponses);
} }
// 查询新订单列表根据创建时间倒叙排列查询其他根据更新时间倒序排列 // 查询新订单列表根据创建时间倒叙排列查询其他根据更新时间倒序排列
@ -1359,9 +1359,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId()); List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息 // 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); // GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); Goods goods = goodsService.selectById(master.getGoodsId());
// 财务信息 // 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
@ -1426,8 +1426,8 @@ public class OrderController extends BaseController {
// orderListResponse.setChangeMoney(totalChangeMoney); // orderListResponse.setChangeMoney(totalChangeMoney);
orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName())?master.getName():customerAddress.getName()); orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName());
orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone())?master.getPhone():customerAddress.getPhone()); orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone());
orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setServerTime(master.getRevTime());
orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd());
@ -1497,9 +1497,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId()); List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId());
// 商品信息 // 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); // GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); Goods goods = goodsService.selectById(orderMaster.getGoodsId());
// 财务信息 // 财务信息
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
@ -1560,8 +1560,8 @@ public class OrderController extends BaseController {
orderListResponse.setWorkerId(detail.getWorkerId()); orderListResponse.setWorkerId(detail.getWorkerId());
orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerName(workerName);
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName());
orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setPayType(orderMaster.getPayType());
@ -1622,9 +1622,9 @@ public class OrderController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId()); List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息 // 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); // GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); Goods goods = goodsService.selectById(master.getGoodsId());
// 填充商品三级类目 // 填充商品三级类目
if (goods.getDeptGoodsCategoryId() != null) { if (goods.getDeptGoodsCategoryId() != null) {
Long categoryId = null; Long categoryId = null;
@ -1702,7 +1702,7 @@ public class OrderController extends BaseController {
|| master.getOrderStatus() == 3 || master.getOrderStatus() == 3
|| master.getOrderStatus() == 4)) || master.getOrderStatus() == 4))
&& master.getWorkerId() != null; && master.getWorkerId() != null;
logger.info("是否为监控单{}主单id{}", condition,master); logger.info("是否为监控单{}主单id{}", condition, master);
// 编辑返回属性 // 编辑返回属性
orderListResponse.setIsNeedBill(master.getIsNeedBill()); orderListResponse.setIsNeedBill(master.getIsNeedBill());
orderListResponse.setIsMonitoredOrder(master.getIsMonitoredOrder()); orderListResponse.setIsMonitoredOrder(master.getIsMonitoredOrder());
@ -1725,8 +1725,8 @@ public class OrderController extends BaseController {
orderListResponse.setPayMoney(financialMaster.getPayMoney()); orderListResponse.setPayMoney(financialMaster.getPayMoney());
orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName())?master.getName():customerAddress.getName()); orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName());
orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone())?master.getPhone():customerAddress.getPhone()); orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone());
orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setServerTime(master.getRevTime());
orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd());
@ -1767,12 +1767,12 @@ public class OrderController extends BaseController {
orderListResponse.setStreetId(master.getStreetId()); orderListResponse.setStreetId(master.getStreetId());
orderListResponse.setPhone(master.getPhone()); orderListResponse.setPhone(master.getPhone());
orderListResponse.setName(master.getName()); orderListResponse.setName(master.getName());
orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName())?master.getName():customerAddress.getName()); orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName());
orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone())?master.getPhone():customerAddress.getPhone()); orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone());
orderListResponse.setAddress(master.getAddress()); orderListResponse.setAddress(master.getAddress());
String addressSysArea = sysArea.getMergerName(); String addressSysArea = sysArea.getMergerName();
String[] array = addressSysArea.split(","); String[] array = addressSysArea.split(",");
if (StringUtils.isEmpty(master.getProvinceName())){ if (StringUtils.isEmpty(master.getProvinceName())) {
orderListResponse.setProvinceName(array[0]); orderListResponse.setProvinceName(array[0]);
orderListResponse.setCityName(array[1]); orderListResponse.setCityName(array[1]);
orderListResponse.setCountryName(array[2]); orderListResponse.setCountryName(array[2]);
@ -1903,8 +1903,8 @@ public class OrderController extends BaseController {
orderListResponse.setWorkerName(worker.getName()); orderListResponse.setWorkerName(worker.getName());
orderListResponse.setWorkerPhone(worker.getPhone()); orderListResponse.setWorkerPhone(worker.getPhone());
orderListResponse.setWorkerId(detail.getWorkerId()); orderListResponse.setWorkerId(detail.getWorkerId());
orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName());
orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setPayType(orderMaster.getPayType());
@ -1945,7 +1945,7 @@ public class OrderController extends BaseController {
orderListResponse.setAddress(orderMaster.getAddress()); orderListResponse.setAddress(orderMaster.getAddress());
String addressSysArea = sysArea.getMergerName(); String addressSysArea = sysArea.getMergerName();
String[] array = addressSysArea.split(","); String[] array = addressSysArea.split(",");
if (StringUtils.isEmpty(orderMaster.getProvinceName())){ if (StringUtils.isEmpty(orderMaster.getProvinceName())) {
orderListResponse.setProvinceName(array[0]); orderListResponse.setProvinceName(array[0]);
orderListResponse.setCityName(array[1]); orderListResponse.setCityName(array[1]);
orderListResponse.setCountryName(array[2]); orderListResponse.setCountryName(array[2]);
@ -2057,8 +2057,18 @@ public class OrderController extends BaseController {
return AjaxResult.error("服务店铺未关联师傅信息"); return AjaxResult.error("服务店铺未关联师傅信息");
} }
// 获取服务店铺的第一个服务商品并生成OrderGoods
// 查询服务店铺的服务商品
Goods queryGoods = new Goods();
queryGoods.setShopId(serviceShopId);
queryGoods.setType(1); // 1表示服务类型
List<Goods> serviceGoodsList = goodsService.selectGoodsList(queryGoods);
// 创建服务主单 // 创建服务主单
OrderMaster serviceOrderMaster = new OrderMaster(); OrderMaster serviceOrderMaster = new OrderMaster();
serviceOrderMaster.setGoodsId(serviceGoodsList.size()>0?serviceGoodsList.get(0).getGoodsId():null);
serviceOrderMaster.setGoods(serviceGoodsList.size()>0?serviceGoodsList.get(0):null);
serviceOrderMaster.setDeptId(accessoryOrderMaster.getDeptId()); serviceOrderMaster.setDeptId(accessoryOrderMaster.getDeptId());
serviceOrderMaster.setCode(orderMasterService.createOrderCode()); serviceOrderMaster.setCode(orderMasterService.createOrderCode());
serviceOrderMaster.setOrderType(0); // 服务订单类型为0 serviceOrderMaster.setOrderType(0); // 服务订单类型为0
@ -2109,6 +2119,25 @@ public class OrderController extends BaseController {
financialMasterService.insertFinancialMaster(serviceFinancialMaster); financialMasterService.insertFinancialMaster(serviceFinancialMaster);
Assert.notNull(serviceFinancialMaster.getId(), "ServiceFinancialMaster.id is null!"); Assert.notNull(serviceFinancialMaster.getId(), "ServiceFinancialMaster.id is null!");
if (!CollectionUtils.isEmpty(serviceGoodsList)) {
Goods firstServiceGoods = serviceGoodsList.get(0); // 取第一个服务商品
OrderGoods serviceOrderGoods = new OrderGoods();
serviceOrderGoods.setOrderId(serviceOrderMaster.getId());
serviceOrderGoods.setGoodsStandardId(firstServiceGoods.getDeptGoodsCategoryId()); // 用标准ID
serviceOrderGoods.setGoodsName(firstServiceGoods.getGoodsName());
serviceOrderGoods.setGoodsNum(1); // 数量为1
serviceOrderGoods.setRemark("由配件订单自动生成的服务商品,服务金额:" + serviceMoney);
serviceOrderGoods.setCreateTime(new Date());
// 保存OrderGoods
orderGoodsService.insertOrderGoods(serviceOrderGoods);
logger.info("为服务订单[{}]生成服务商品[{}]商品ID{},金额:{}",
serviceOrderMaster.getCode(), firstServiceGoods.getGoodsName(),
firstServiceGoods.getGoodsId(), serviceMoney);
} else {
logger.warn("服务店铺[{}]没有找到服务商品无法生成OrderGoods", serviceShopId);
}
// 更新配件主单关联生成的服务订单并标记已派发服务订单 // 更新配件主单关联生成的服务订单并标记已派发服务订单
OrderMaster accessoryUpdate = new OrderMaster(); OrderMaster accessoryUpdate = new OrderMaster();
accessoryUpdate.setId(accessoryOrderMaster.getId()); accessoryUpdate.setId(accessoryOrderMaster.getId());
@ -2143,7 +2172,7 @@ public class OrderController extends BaseController {
result.put("serviceWorkerPhone", serviceWorker.getPhone()); result.put("serviceWorkerPhone", serviceWorker.getPhone());
logger.info("成功为配件订单[{}]生成服务订单[{}],服务金额:{},服务店铺:{}", logger.info("成功为配件订单[{}]生成服务订单[{}],服务金额:{},服务店铺:{}",
accessoryOrderMaster.getCode(), serviceOrderMaster.getCode(), serviceMoney, serviceShop.getShopName()); accessoryOrderMaster.getCode(), serviceOrderMaster.getCode(), serviceMoney, serviceShop.getShopName());
return AjaxResult.success("服务订单生成成功", result); return AjaxResult.success("服务订单生成成功", result);

View File

@ -1016,12 +1016,17 @@ public class OrderMasterController extends BaseController {
if (!CollectionUtils.isEmpty(workerIds)) { if (!CollectionUtils.isEmpty(workerIds)) {
List<Worker> workers = workerService.selectByIds(workerIds); List<Worker> workers = workerService.selectByIds(workerIds);
workers.forEach(worker -> workerMap.put(worker.getId(), worker)); workers.forEach(worker -> workerMap.put(worker.getWorkerId(), worker));
} }
if (!CollectionUtils.isEmpty(addressIds)) { if (!CollectionUtils.isEmpty(addressIds)) {
List<CustomerAddress> addresses = addressService.selectByCustomerAddressIds(addressIds); // 由于没有批量查询方法使用循环查询
addresses.forEach(address -> addressMap.put(address.getCustomerAddressId(), address)); addressIds.forEach(addressId -> {
CustomerAddress address = addressService.selectByCustomerAddressId(addressId);
if (address != null) {
addressMap.put(address.getCustomerAddressId(), address);
}
});
} }
if (!CollectionUtils.isEmpty(goodsIds)) { if (!CollectionUtils.isEmpty(goodsIds)) {
@ -1303,9 +1308,9 @@ public class OrderMasterController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId()); List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息 // 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); // GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); Goods goods = goodsService.selectById(master.getGoodsId());
// 财务信息 // 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
@ -1581,9 +1586,9 @@ public class OrderMasterController extends BaseController {
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(orderMaster.getId()); List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(orderMaster.getId());
// 商品信息 // 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); // GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId()); Goods goods = goodsService.selectById(orderMaster.getGoodsId());
if (goods != null) { if (goods != null) {
// 填充商品三级类目 // 填充商品三级类目
if(goods.getDeptGoodsCategoryId() != null){ if(goods.getDeptGoodsCategoryId() != null){

View File

@ -40,8 +40,8 @@ public class AfterServiceRecord extends BaseEntity
@Excel(name = "操作原因1为申请退款2为发起售后") @Excel(name = "操作原因1为申请退款2为发起售后")
private Long operType; private Long operType;
/** 师傅反馈结果0为拒绝1为同意2为上门补做/重做 */ /** 师傅反馈结果0为拒绝1为同意2为上门补做/重做3重做/补做完成 */
@Excel(name = "师傅反馈结果0为拒绝1为同意2为上门补做/重做") @Excel(name = "师傅反馈结果0为拒绝1为同意2为上门补做/重做3重做/补做完成")
private Long workerFeedbackResult; private Long workerFeedbackResult;
/** 师傅反馈原因类型1为客户原因2为师傅原因3为其他 */ /** 师傅反馈原因类型1为客户原因2为师傅原因3为其他 */
@ -69,6 +69,22 @@ public class AfterServiceRecord extends BaseEntity
private Date refundApplyTime; private Date refundApplyTime;
/** 客户是否同意上门重做方案0-未处理1-同意2-不同意 */
@Excel(name = "客户是否同意上门重做方案0-未处理1-同意2-不同意")
private Integer customerAgreeRedo;
/** 重做/补做完成时间 */
@Excel(name = "重做/补做完成时间")
private Date redoCompleteTime;
/** 重做/补做完成备注 */
@Excel(name = "重做/补做完成备注")
private String redoCompleteRemark;
/** 重做/补做完成图片 */
@Excel(name = "重做/补做完成图片")
private String redoCompleteImages;
private boolean excludeAfterServiceFinished; private boolean excludeAfterServiceFinished;
private List<AfterServiceImgs> imgsList; private List<AfterServiceImgs> imgsList;

View File

@ -184,6 +184,30 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
orderDetailService.updateAfterTimeout(afterServiceRecord.getOrderDetailId(), 0, 0); orderDetailService.updateAfterTimeout(afterServiceRecord.getOrderDetailId(), 0, 0);
log.info("客户是否同意{},客户操作{}",one.equals(param.getCustomerFinalCheck()),param); log.info("客户是否同意{},客户操作{}",one.equals(param.getCustomerFinalCheck()),param);
log.info("修改后的售后订单{}",orderDetail); log.info("修改后的售后订单{}",orderDetail);
// 新增处理客户同意上门重做方案
if (param.getCustomerAgreeRedo() != null) {
afterServiceRecord.setCustomerAgreeRedo(param.getCustomerAgreeRedo());
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
log.info("客户同意上门重做方案状态已更新:{}", param.getCustomerAgreeRedo());
return AjaxResult.success("客户同意方案状态已更新");
}
// 新增处理师傅重做/补做完成
if (param.getWorkerFeedbackResult() != null && param.getWorkerFeedbackResult().equals(3L)) {
afterServiceRecord.setWorkerFeedbackResult(3L);
afterServiceRecord.setRedoCompleteTime(new Date());
if (param.getRedoCompleteRemark() != null) {
afterServiceRecord.setRedoCompleteRemark(param.getRedoCompleteRemark());
}
if (param.getRedoCompleteImages() != null) {
afterServiceRecord.setRedoCompleteImages(param.getRedoCompleteImages());
}
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
log.info("师傅重做/补做完成记录ID{},完成时间:{}", param.getId(), afterServiceRecord.getRedoCompleteTime());
return AjaxResult.success("重做/补做完成状态已更新");
}
if (param.getCustomerFinalCheck()!=null ) { if (param.getCustomerFinalCheck()!=null ) {
// 师傅同意 客户同意退款 // 师傅同意 客户同意退款
//afterServiceRecord.setCustomerFinalCheck(1L); //afterServiceRecord.setCustomerFinalCheck(1L);

View File

@ -23,12 +23,17 @@
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="originalRefund" column="original_refund" /> <result property="originalRefund" column="original_refund" />
<result property="refundApplyTime" column="refund_apply_time" /> <result property="refundApplyTime" column="refund_apply_time" />
<result property="customerAgreeRedo" column="customer_agree_redo" />
<result property="redoCompleteTime" column="redo_complete_time" />
<result property="redoCompleteRemark" column="redo_complete_remark" />
<result property="redoCompleteImages" column="redo_complete_images" />
</resultMap> </resultMap>
<sql id="selectAfterServiceRecordVo"> <sql id="selectAfterServiceRecordVo">
select id, customer_reason_type, customer_reason, order_detail_id, oper_type, worker_feedback_result, select id, customer_reason_type, customer_reason, order_detail_id, oper_type, worker_feedback_result,
worker_feedback_reason_type, worker_feedback_reason, refund, agreed_refund, original_refund, worker_feedback_reason_type, worker_feedback_reason, refund, agreed_refund, original_refund,
customer_final_check, create_by, create_time, update_by, update_time, remark, refund_apply_time customer_final_check, create_by, create_time, update_by, update_time, remark, refund_apply_time, customer_agree_redo,
redo_complete_time, redo_complete_remark, redo_complete_images
from after_service_record from after_service_record
</sql> </sql>
@ -74,6 +79,10 @@
<if test="refund != null">refund,</if> <if test="refund != null">refund,</if>
<if test="agreedRefund != null">agreed_refund,</if> <if test="agreedRefund != null">agreed_refund,</if>
<if test="customerFinalCheck != null">customer_final_check,</if> <if test="customerFinalCheck != null">customer_final_check,</if>
<if test="customerAgreeRedo != null">customer_agree_redo,</if>
<if test="redoCompleteTime != null">redo_complete_time,</if>
<if test="redoCompleteRemark != null">redo_complete_remark,</if>
<if test="redoCompleteImages != null">redo_complete_images,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
@ -90,6 +99,10 @@
<if test="refund != null">#{refund},</if> <if test="refund != null">#{refund},</if>
<if test="agreedRefund != null">#{agreedRefund},</if> <if test="agreedRefund != null">#{agreedRefund},</if>
<if test="customerFinalCheck != null">#{customerFinalCheck},</if> <if test="customerFinalCheck != null">#{customerFinalCheck},</if>
<if test="customerAgreeRedo != null">#{customerAgreeRedo},</if>
<if test="redoCompleteTime != null">#{redoCompleteTime},</if>
<if test="redoCompleteRemark != null">#{redoCompleteRemark},</if>
<if test="redoCompleteImages != null">#{redoCompleteImages},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
@ -112,6 +125,10 @@
<if test="refund != null">refund = #{refund},</if> <if test="refund != null">refund = #{refund},</if>
<if test="agreedRefund != null">agreed_refund = #{agreedRefund},</if> <if test="agreedRefund != null">agreed_refund = #{agreedRefund},</if>
<if test="customerFinalCheck != null">customer_final_check = #{customerFinalCheck},</if> <if test="customerFinalCheck != null">customer_final_check = #{customerFinalCheck},</if>
<if test="customerAgreeRedo != null">customer_agree_redo = #{customerAgreeRedo},</if>
<if test="redoCompleteTime != null">redo_complete_time = #{redoCompleteTime},</if>
<if test="redoCompleteRemark != null">redo_complete_remark = #{redoCompleteRemark},</if>
<if test="redoCompleteImages != null">redo_complete_images = #{redoCompleteImages},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>