diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index 512b005e..3909492c 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -749,8 +749,52 @@ public class GoodsController extends BaseController { // 通过商品的服务类目获取服务店铺 if (goods.getDeptGoodsCategoryId() != null) { try { - // 使用新的方法通过商品ID直接获取服务类目下的所有商品 - List goodsList = goodsService.selectGoodsByServiceCategory(goodsId); + // 1. 通过商品的类目ID获取类目信息 + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + Long serviceCategoryId = null; + + if (deptGoodsCategory != null) { + // 先检查当前类目是否有服务类目ID + if (deptGoodsCategory.getServiceCategoryId() != null) { + serviceCategoryId = deptGoodsCategory.getServiceCategoryId(); + logger.debug("当前类目[{}]的服务类目ID: {}", deptGoodsCategory.getGoodsCategoryName(), serviceCategoryId); + } else { + // 如果当前类目没有服务类目ID,查找上一级类目 + logger.debug("当前类目[{}]未配置服务类目ID,查找上一级类目", deptGoodsCategory.getGoodsCategoryName()); + + if (deptGoodsCategory.getParentCategoryId() != null) { + DeptGoodsCategory parentCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(deptGoodsCategory.getParentCategoryId()); + if (parentCategory != null && parentCategory.getServiceCategoryId() != null) { + serviceCategoryId = parentCategory.getServiceCategoryId(); + logger.debug("上一级类目[{}]的服务类目ID: {}", parentCategory.getGoodsCategoryName(), serviceCategoryId); + } else { + logger.debug("上一级类目[{}]也未配置服务类目ID", parentCategory != null ? parentCategory.getGoodsCategoryName() : "null"); + } + } else { + logger.debug("当前类目没有父级类目"); + } + } + } + + List goodsList = new ArrayList<>(); + if (serviceCategoryId != null) { + // 2. 通过服务类目ID查询所有使用该服务类目的商品 + Goods queryGoods = new Goods(); + queryGoods.setDeptGoodsCategoryId(serviceCategoryId); + queryGoods.setStatus(0); // 只查询上架的商品 + goodsList = goodsService.selectGoodsList(queryGoods); + if (goodsList.size() == 0) { + DeptGoodsCategory deptGoodsCategory1 = deptGoodsCategoryService.selectOneByGoodsCategoryId(serviceCategoryId); + serviceCategoryId = deptGoodsCategory1.getDeptGoodsCategoryId(); + // 直接使用新方法获取商品列表 + goodsList = goodsStandardService.selectGoodsByDeptGoodsCategoryId(serviceCategoryId); + // 过滤只保留上架的商品 + goodsList = goodsList.stream() + .filter(g -> g.getStatus() != null && g.getStatus() == 0) + .collect(Collectors.toList()); + } + logger.info("获取到的服务类目id{} 取到的商品列表:{}", serviceCategoryId, goodsList); + } if (!goodsList.isEmpty()) { logger.debug("通过商品ID[{}]找到{}个相关服务商品", goodsId, goodsList.size()); @@ -901,13 +945,26 @@ public class GoodsController extends BaseController { @ResponseBody public AjaxResult editSave(@Validated Goods goods) { goods.setUpdateBy(getLoginName()); + + // 处理Long类型字段的空值情况 + // 当前端传入0或空字符串时,将shopId设置为null以便清空 + if (goods.getShopId() != null && goods.getShopId().equals(0L)) { + goods.setShopId(null); + } + return toAjax(goodsService.updateGoods(goods)); } @PostMapping("/app/edit") @ResponseBody public AjaxResult appEditSave(@RequestBody @Validated Goods goods) { - + + // 处理Long类型字段的空值情况 + // 当前端传入0或空字符串时,将shopId设置为null以便清空 + if (goods.getShopId() != null && goods.getShopId().equals(0L)) { + goods.setShopId(null); + } + goodsService.edit(goods); return AjaxResult.success(); } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 5a8cd4f0..8cc1bc4f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -61,7 +61,7 @@ import java.util.stream.Collectors; /** * @author clunt - * 下单接口 + * 下单接口 */ @Controller @RequestMapping("/order") @@ -169,7 +169,7 @@ public class OrderController extends BaseController { } } } - //计算新单的数量 + // 计算新单的数量 return AjaxResult.success(orderGoodsList); } catch (Exception e) { e.printStackTrace(); @@ -204,7 +204,8 @@ public class OrderController extends BaseController { } // 判断是否有客户地址 - if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null || StringUtils.isBlank(request.getFullAddress())) { + if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null + || StringUtils.isBlank(request.getFullAddress())) { return AjaxResult.error("请填写地址"); } CustomerAddress customerAddress = new CustomerAddress(); @@ -300,8 +301,10 @@ public class OrderController extends BaseController { // 服务时间 String[] split = request.getServTime().split("-"); try { - orderMaster.setExpectTimeStart(DateUtils.parseDate(request.getServDate() + " " + split[0], "yyyy-MM-dd hh:mm")); - orderMaster.setExpectTimeEnd(DateUtils.parseDate(request.getServDate() + " " + split[1], "yyyy-MM-dd hh:mm")); + orderMaster.setExpectTimeStart( + DateUtils.parseDate(request.getServDate() + " " + split[0], "yyyy-MM-dd hh:mm")); + orderMaster + .setExpectTimeEnd(DateUtils.parseDate(request.getServDate() + " " + split[1], "yyyy-MM-dd hh:mm")); } catch (Exception e) { } @@ -335,7 +338,8 @@ public class OrderController extends BaseController { // 名称 params.put("thing14", customer.getName()); // 预约时间 - params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", orderMaster.getExpectTimeStart())); + params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", + orderMaster.getExpectTimeStart())); // 消息推送 WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, params); } catch (Exception e) { @@ -364,20 +368,24 @@ public class OrderController extends BaseController { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId()); // 平台扣点 = 平台金额 + 商品单价 * 扣点比例 deptMoney = deptMoney.add(deptGoodsCategory.getPcDeptMoney()) - .add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcDeptRate())))); + .add(financialMaster.getPayMoney() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcDeptRate())))); // 截流扣点 = 截流金额 + 商品单价 * 扣点比例 specialMoney = specialMoney.add(deptGoodsCategory.getPcRetainMoney()) - .add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcRetainRate())))); + .add(financialMaster.getPayMoney() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcRetainRate())))); // 平台扣点记录 FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), deptMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), deptMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(deptDetail); // 剩余服务金额 serverMoney = serverMoney.subtract(deptMoney); // 截流扣点记录 FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), specialMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), specialMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(retainDetail); // 剩余服务金额 serverMoney = serverMoney.subtract(specialMoney); @@ -417,7 +425,7 @@ public class OrderController extends BaseController { return AjaxResult.error("派单金额不能大于订单总金额"); } boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId()); -// Assert.isTrue(checkInTeam, "接单师傅不在本团队"); + // Assert.isTrue(checkInTeam, "接单师傅不在本团队"); } // 创建子订单 OrderDetail od = new OrderDetail(); @@ -468,7 +476,8 @@ public class OrderController extends BaseController { logger.warn("订单[{}]发货类型为null,未设置确认截止时间", od.getCode()); } } 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.setRevTime(om.getRevTime()); @@ -478,7 +487,7 @@ public class OrderController extends BaseController { // 将主单的师傅备注复制到子单 od.setWorkerRemark(om.getWorkerRemark()); orderDetailService.insertOrderDetail(od); - logger.info("子订单是否创建完成{}", od); + logger.info("子订单是否创建完成{}商品详情{}分配参数详情{}", od, request.getGoodsList(), request); // 批量生成订单商品 request.getGoodsList().forEach(goods -> { // 查询规格信息 @@ -488,26 +497,29 @@ public class OrderController extends BaseController { orderGoods.setGoodsNum(goods.getNum()); orderGoods.setGoodsName(goodsStandard.getGoodsStandardName()); orderGoods.setOrderDetailId(od.getId()); - + logger.info("是否为立即发货{}", request.getIsQuicklyDelivery()); // 立即发货时,计算可发货数量(主单商品数量减去已分配给其他子单的数量);否则设置为0 if (request.getIsQuicklyDelivery() != null && request.getIsQuicklyDelivery() == 1) { // 获取主单中该商品的总数量 List masterOrderGoodsList = orderGoodsService.selectByOrderMasterId(om.getId()); Integer masterGoodsNum = 0; - for (OrderGoods masterGoods : masterOrderGoodsList) { - if (Objects.equals(masterGoods.getGoodsStandardId(), goods.getGoodsStandardId())) { - masterGoodsNum = masterGoods.getGoodsNum(); + OrderGoods mastGoods = null; + for (OrderGoods masterOrderGoods : masterOrderGoodsList) { + if (Objects.equals(masterOrderGoods.getGoodsStandardId(), goods.getGoodsStandardId())) { + masterGoodsNum = masterOrderGoods.getGoodsNum(); + mastGoods = masterOrderGoods; break; } } - + // 获取该商品已经分配给其他子单的数量 List existingOrderDetails = orderDetailService.selectByOrderMasterId(om.getId()); Integer allocatedGoodsNum = 0; for (OrderDetail existingDetail : existingOrderDetails) { // 排除当前正在创建的子单 if (!existingDetail.getId().equals(od.getId())) { - List existingOrderGoods = orderGoodsService.selectByOrderDetailId(existingDetail.getId()); + List existingOrderGoods = orderGoodsService + .selectByOrderDetailId(existingDetail.getId()); for (OrderGoods existingGoods : existingOrderGoods) { if (Objects.equals(existingGoods.getGoodsStandardId(), goods.getGoodsStandardId())) { allocatedGoodsNum += existingGoods.getGoodsNum(); @@ -515,27 +527,32 @@ public class OrderController extends BaseController { } } } - + // 计算剩余可发货数量 = 主单商品数量 - 已分配给其他子单的数量 Integer availableGoodsNum = masterGoodsNum - allocatedGoodsNum; // 取当前子单商品数量和剩余可发货数量的最小值 Integer serverGoodsNum = Math.min(goods.getNum(), Math.max(0, availableGoodsNum)); - + + if (mastGoods != null) { + mastGoods.setServerGoodsNum(serverGoodsNum); + orderGoodsService.updateOrderGoods(mastGoods); + } orderGoods.setServerGoodsNum(serverGoodsNum); - logger.info("立即发货订单[{}]商品[{}]主单总数量:{},已分配数量:{},当前子单数量:{},设置已发货数量:{}", - od.getCode(), goodsStandard.getGoodsStandardName(), masterGoodsNum, allocatedGoodsNum, goods.getNum(), serverGoodsNum); + logger.info("立即发货订单[{}]商品[{}]主单总数量:{},已分配数量:{},当前子单数量:{},设置已发货数量:{}", + od.getCode(), goodsStandard.getGoodsStandardName(), masterGoodsNum, allocatedGoodsNum, + goods.getNum(), serverGoodsNum); } else { orderGoods.setServerGoodsNum(0); } - - // orderGoods.setOrderId(om.getId()); + + // orderGoods.setOrderId(om.getId()); orderGoodsService.insertOrderGoods(orderGoods); }); - - //为接单师傅生成子财务单 + // 为接单师傅生成子财务单 FinancialDetail fd = new FinancialDetail(fm.getDeptId(), financialDetailService.createCode(), fm.getId(), - fm.getCode(), od.getId(), od.getCode(), request.getTotalPay(), FinancialDetailType.ORDER_FEE.getCode(), acceptWorker.getWorkerId(), + fm.getCode(), od.getId(), od.getCode(), request.getTotalPay(), FinancialDetailType.ORDER_FEE.getCode(), + acceptWorker.getWorkerId(), fm.getPayType(), fm.getPayStatus(), fm.getPayTime()); financialDetailService.insertFinancialDetail(fd); @@ -549,7 +566,8 @@ public class OrderController extends BaseController { // 保存订单操作记录 OrderBehavior orderBehavior = new OrderBehavior().setOrderMasterId(om.getId()).setOrderMasterCode(om.getCode()) - .setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()).setBehavior(OrderBehaviorEnum.ASSIGN_ORDER); + .setWorkerId(assignWorker.getWorkerId()).setWorkerName(assignWorker.getName()) + .setBehavior(OrderBehaviorEnum.ASSIGN_ORDER); orderBehaviorService.insert(orderBehavior); // 更新主订单 @@ -557,7 +575,8 @@ public class OrderController extends BaseController { om2up.setId(om.getId()); // 判断是否全部派完 if (orderMasterService.isAllAssign(om.getId())) { - Set workIds = orderDetailService.selectByOrderMasterId(om.getId()).stream().map(OrderDetail::getWorkerId).collect(Collectors.toSet()); + Set workIds = orderDetailService.selectByOrderMasterId(om.getId()).stream() + .map(OrderDetail::getWorkerId).collect(Collectors.toSet()); if (workIds.size() == 1 && workIds.contains(om.getWorkerId())) { // 派完单 并且只有自己接单 om2up.setHasDispatchedAll(1); @@ -594,11 +613,13 @@ public class OrderController extends BaseController { CustomerAddress address = customerAddressService.selectByCustomerAddressId(om.getAddressId()); paramsNew.put("thing14", address.getName()); // 预约时间 - paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", om.getExpectTimeStart())); + paramsNew.put("time4", + com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", om.getExpectTimeStart())); // 非自己承接的订单需要通知 logger.info("主订单师傅{},派单师傅{}", om.getWorkerId(), request.getWorkerId()); if (!om.getWorkerId().equals(request.getWorkerId())) { - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), acceptWorker.getWxOpenId(), WxMsgEnum.NORMAL_ORDER, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), acceptWorker.getWxOpenId(), + WxMsgEnum.NORMAL_ORDER, paramsNew); } } catch (Exception e) { @@ -609,20 +630,21 @@ public class OrderController extends BaseController { /** * 更新订单商品的已发货数量 + * * @param orderDetailId 子订单ID - * @param isIncrement 是否增加数量(true:增加,false:重置为0) + * @param isIncrement 是否增加数量(true:增加,false:重置为0) */ @Transactional(rollbackFor = Exception.class) public void updateOrderGoodsServerNum(Long orderDetailId, boolean isIncrement) { try { // 获取子订单商品列表 List orderGoodsList = orderGoodsService.selectByOrderDetailId(orderDetailId); - + if (CollectionUtils.isEmpty(orderGoodsList)) { logger.warn("订单详情[{}]未找到关联商品", orderDetailId); return; } - + // 更新每个商品的已发货数量 for (OrderGoods orderGoods : orderGoodsList) { if (isIncrement) { @@ -634,7 +656,7 @@ public class OrderController extends BaseController { orderGoods.setServerGoodsNum(0); logger.info("订单商品[{}]已发货数量重置为:0", orderGoods.getGoodsName()); } - + // 更新数据库 int updateResult = orderGoodsService.updateOrderGoods(orderGoods); if (updateResult <= 0) { @@ -642,9 +664,9 @@ public class OrderController extends BaseController { throw new RuntimeException("更新订单商品已发货数量失败"); } } - + logger.info("订单详情[{}]商品已发货数量更新完成,共更新{}个商品", orderDetailId, orderGoodsList.size()); - + } catch (Exception e) { logger.error("更新订单详情[{}]商品已发货数量异常:{}", orderDetailId, e.getMessage(), e); throw new RuntimeException("更新商品已发货数量失败:" + e.getMessage()); @@ -670,7 +692,8 @@ public class OrderController extends BaseController { BigDecimal totalPay = goodsService.calculate(appGoodsList); logger.info("获取到的商品:{},计算的商品价值{}", appGoodsList, totalPay); // 所有商品的ID - Set goodsStandardIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsStandardId).collect(Collectors.toSet()); + Set goodsStandardIds = appGoodsList.stream().map(AppGoodsRequest::getGoodsStandardId) + .collect(Collectors.toSet()); // 所有商品 List goodsList = goodsStandardService.selectByIds(goodsStandardIds); logger.info("商品信息{}", goodsList); @@ -686,33 +709,36 @@ public class OrderController extends BaseController { orderMaster.setOrderType(1); } - // // 通过商品的类目ID获取类目信息 - // DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); - // if (deptGoodsCategory != null && deptGoodsCategory.getServiceCategoryId() != null) { - // logger.info("配件商品的服务类目ID: {}", deptGoodsCategory.getServiceCategoryId()); + // // 通过商品的类目ID获取类目信息 + // DeptGoodsCategory deptGoodsCategory = + // deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + // if (deptGoodsCategory != null && deptGoodsCategory.getServiceCategoryId() != + // null) { + // logger.info("配件商品的服务类目ID: {}", deptGoodsCategory.getServiceCategoryId()); - // // 通过服务类目ID查询对应的服务商品 - // Goods serviceGoodsQuery = new Goods(); - // serviceGoodsQuery.setDeptGoodsCategoryId(deptGoodsCategory.getServiceCategoryId()); - // serviceGoodsQuery.setType(1); // 服务商品类型 - // serviceGoodsQuery.setStatus(0); // 上架状态 - // List serviceGoodsList = goodsService.selectGoodsList(serviceGoodsQuery); - // if (CollectionUtils.isNotEmpty(serviceGoodsList)) { - // Goods serviceGoods = serviceGoodsList.get(0); // 取第一个服务商品 - // logger.info("找到对应的服务商品: {}", serviceGoods); - // orderMaster.setServerGoodsId(serviceGoods.getGoodsId()); + // // 通过服务类目ID查询对应的服务商品 + // Goods serviceGoodsQuery = new Goods(); + // serviceGoodsQuery.setDeptGoodsCategoryId(deptGoodsCategory.getServiceCategoryId()); + // serviceGoodsQuery.setType(1); // 服务商品类型 + // serviceGoodsQuery.setStatus(0); // 上架状态 + // List serviceGoodsList = + // goodsService.selectGoodsList(serviceGoodsQuery); + // if (CollectionUtils.isNotEmpty(serviceGoodsList)) { + // Goods serviceGoods = serviceGoodsList.get(0); // 取第一个服务商品 + // logger.info("找到对应的服务商品: {}", serviceGoods); + // orderMaster.setServerGoodsId(serviceGoods.getGoodsId()); - // // 设置服务店铺ID - // if (serviceGoods.getShopId() != null) { - // orderMaster.setServiceShopId(serviceGoods.getShopId()); - // logger.info("设置服务店铺ID: {}", serviceGoods.getShopId()); - // } - // } else { - // logger.warn("未找到服务类目ID为 {} 的服务商品", deptGoodsCategory.getServiceCategoryId()); - // } - // } else { - // logger.warn("配件商品的类目信息中未配置服务类目ID"); - // } + // // 设置服务店铺ID + // if (serviceGoods.getShopId() != null) { + // orderMaster.setServiceShopId(serviceGoods.getShopId()); + // logger.info("设置服务店铺ID: {}", serviceGoods.getShopId()); + // } + // } else { + // logger.warn("未找到服务类目ID为 {} 的服务商品", deptGoodsCategory.getServiceCategoryId()); + // } + // } else { + // logger.warn("配件商品的类目信息中未配置服务类目ID"); + // } // } // 师傅信息 Worker worker = workerService.selectById(goods.getWorkerId()); @@ -734,14 +760,18 @@ public class OrderController extends BaseController { orderMaster.setCreateTime(new Date()); orderMaster.setWorkerId(goods.getWorkerId()); orderMaster.setGoodsId(appOrderRequest.getGoodsId()); -// orderMaster.setRevTime(DateUtils.parseDate(appOrderRequest.getServerTime(), com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); + // orderMaster.setRevTime(DateUtils.parseDate(appOrderRequest.getServerTime(), + // com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); orderMaster.setRemark(appOrderRequest.getRemark()); - orderMaster.setExpectTimeStart(DateUtils.parseDate(appOrderRequest.getExpectTimeStart(), com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); - orderMaster.setExpectTimeEnd(DateUtils.parseDate(appOrderRequest.getExpectTimeEnd(), com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); + orderMaster.setExpectTimeStart(DateUtils.parseDate(appOrderRequest.getExpectTimeStart(), + com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); + orderMaster.setExpectTimeEnd(DateUtils.parseDate(appOrderRequest.getExpectTimeEnd(), + com.ghy.common.utils.DateUtils.YYYY_MM_DD_HH_MM_SS)); orderMaster.setInsuranceId(appOrderRequest.getInsuranceId()); - //处理新增订单的地址 - CustomerAddress customerAddress = customerAddressService.selectByCustomerAddressId(appOrderRequest.getAddressId()); + // 处理新增订单的地址 + CustomerAddress customerAddress = customerAddressService + .selectByCustomerAddressId(appOrderRequest.getAddressId()); SysArea sysArea = sysAreaService.selectById(customerAddress.getStreetId()); String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); @@ -759,7 +789,6 @@ public class OrderController extends BaseController { orderMaster.setStreetId(customerAddress.getStreetId()); orderMaster.setStreetName(array[3]); - // TODO 优惠金额不知道咋算 暂时先给0 BigDecimal discountMoney = BigDecimal.ZERO; BigDecimal payMoney = totalPay.subtract(discountMoney); @@ -767,7 +796,8 @@ public class OrderController extends BaseController { // 保险金额 if (appOrderRequest.getInsuranceId() != null) { - InsuranceManager manager = insuranceManagerService.selectInsuranceManagerById(appOrderRequest.getInsuranceId()); + InsuranceManager manager = insuranceManagerService + .selectInsuranceManagerById(appOrderRequest.getInsuranceId()); if (manager != null) { payMoney = payMoney.add(manager.getInsuranceAmount()); insuranceMoney = insuranceMoney.add(manager.getInsuranceAmount()); @@ -788,10 +818,10 @@ public class OrderController extends BaseController { financialMasterService.insertFinancialMaster(financialMaster); Assert.notNull(financialMaster.getId(), "FinancialMaster.id is null!"); + // createFinancialDetail(goodsList.get(0).getDeptGoodsCategoryId(), deptId, + // customer, payMoney, financialMaster); -// createFinancialDetail(goodsList.get(0).getDeptGoodsCategoryId(), deptId, customer, payMoney, financialMaster); - - //生成财务子单 + // 生成财务子单 createFinancialDetail(appGoodsList, deptId, customer, payMoney, financialMaster, insuranceMoney); // 生成商品订单 @@ -816,17 +846,17 @@ public class OrderController extends BaseController { paramsNew.put("thing14", address.getName()); // 预约时间 paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.NORMAL_ORDER, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), worker.getWxOpenId(), WxMsgEnum.NORMAL_ORDER, + paramsNew); } catch (Exception e) { logger.error(e.getMessage(), e); } - return AjaxResult.success(orderMaster); } private void createFinancialDetail(List appGoodsList, Long deptId, Customer customer, - BigDecimal serverMoney, FinancialMaster financialMaster, BigDecimal insuranceMoney) { + BigDecimal serverMoney, FinancialMaster financialMaster, BigDecimal insuranceMoney) { // 平台 BigDecimal deptMoney = BigDecimal.ZERO; // 一级分销 @@ -845,18 +875,23 @@ public class OrderController extends BaseController { for (int index = 0; index < goodsRequest.getNum(); index++) { // 一级分销 = 商品单价 * 扣点比例 oneMoney = oneMoney - .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getOneRate())))); + .add(goodsStandard.getGoodsPrice() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getOneRate())))); // 二级分销 = 商品单价 * 扣点比例 - twoMoney = twoMoney.add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getTwoRate())))); + twoMoney = twoMoney.add(goodsStandard.getGoodsPrice() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getTwoRate())))); // 三级分销 = 提成额 + 商品单价 * 扣点比例 threeMoney = threeMoney.add(goodsStandard.getExtMoney()) - .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getThreeRate())))); + .add(goodsStandard.getGoodsPrice() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getThreeRate())))); // 平台扣点 = 平台金额 + 商品单价 * 扣点比例 deptMoney = deptMoney.add(deptGoodsCategory.getDeptMoney()) - .add(goodsStandard.getGoodsPrice().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getDeptRate())))); + .add(goodsStandard.getGoodsPrice() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getDeptRate())))); // 截流扣点 = 截流金额 + 商品单价 * 扣点比例 specialMoney = specialMoney.add(deptGoodsCategory.getRetainMoney()) - .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); @@ -865,7 +900,8 @@ public class OrderController extends BaseController { // 平台扣点记录 FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), deptMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), deptMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(deptDetail); // 剩余服务金额 @@ -873,7 +909,8 @@ public class OrderController extends BaseController { // 截流扣点记录 FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), specialMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), specialMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(retainDetail); // 剩余服务金额 @@ -893,7 +930,8 @@ public class OrderController extends BaseController { // 一级分销 if (customerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), threeMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialMaster.getId(), financialMaster.getCode(), threeMoney, + FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -903,7 +941,8 @@ public class OrderController extends BaseController { // 二级分销 if (parentCustomerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), twoMoney, FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); + financialMaster.getId(), financialMaster.getCode(), twoMoney, + FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -911,7 +950,8 @@ public class OrderController extends BaseController { } else if (customerPlaceId != null) { // 二级没有,且三级有 FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), twoMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialMaster.getId(), financialMaster.getCode(), twoMoney, + FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -922,7 +962,8 @@ public class OrderController extends BaseController { if (reparentCustomerPlaceId != null) { // 平台分销 FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), reparentCustomerPlaceId); + financialMaster.getId(), financialMaster.getCode(), oneMoney, + FinancialDetailType.PLACE_FEE.getCode(), reparentCustomerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -930,7 +971,8 @@ public class OrderController extends BaseController { } else if (parentCustomerPlaceId != null) { // 平台分销 FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); + financialMaster.getId(), financialMaster.getCode(), oneMoney, + FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -938,7 +980,8 @@ public class OrderController extends BaseController { } else if (customerPlaceId != null) { // 平台分销 FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), oneMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialMaster.getId(), financialMaster.getCode(), oneMoney, + FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); // 剩余服务金额 @@ -958,7 +1001,8 @@ public class OrderController extends BaseController { * @param payMoney 实付金额 * @param financialMaster 财务主单 */ - private void createFinancialDetail(Long deptGoodsCategoryId, Long deptId, Customer customer, BigDecimal payMoney, FinancialMaster financialMaster) { + private void createFinancialDetail(Long deptGoodsCategoryId, Long deptId, Customer customer, BigDecimal payMoney, + FinancialMaster financialMaster) { // 是否为0元购 是的话下面就不用多级分销了 if (BigDecimal.ZERO.compareTo(payMoney) == 0) { return; @@ -972,7 +1016,8 @@ public class OrderController extends BaseController { BigDecimal deptTotal = payMoney.multiply(deptRate).add(deptMoney); FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), deptTotal, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), deptTotal, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(deptDetail); /* 2 截留扣点 */ @@ -982,7 +1027,8 @@ public class OrderController extends BaseController { BigDecimal retainTotal = payMoney.multiply(retainRate).add(retainMoney); FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), retainTotal, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), retainTotal, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(retainDetail); /* 3 分销扣点 */ @@ -996,7 +1042,8 @@ public class OrderController extends BaseController { // 一级分销 if (customerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), onePlaceMoney, FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); + financialMaster.getId(), financialMaster.getCode(), onePlaceMoney, + FinancialDetailType.PLACE_FEE.getCode(), customerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); } else { deptPlaceTotal = deptPlaceTotal.add(onePlaceMoney); @@ -1006,7 +1053,8 @@ public class OrderController extends BaseController { Long parentCustomerPlaceId = customer.getParentCustomerPlace(); if (parentCustomerPlaceId != null) { FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), twoPlaceMoney, FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); + financialMaster.getId(), financialMaster.getCode(), twoPlaceMoney, + FinancialDetailType.PLACE_FEE.getCode(), parentCustomerPlaceId); financialDetailService.insertFinancialDetail(financialDetail); } else { deptPlaceTotal = deptPlaceTotal.add(twoPlaceMoney); @@ -1015,7 +1063,8 @@ public class OrderController extends BaseController { // 平台分销 deptPlaceTotal = deptPlaceTotal.add(threePlaceMoney); FinancialDetail financialDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), deptPlaceTotal, FinancialDetailType.PLACE_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), deptPlaceTotal, + FinancialDetailType.PLACE_FEE.getCode(), null); financialDetailService.insertFinancialDetail(financialDetail); // 更新订单服务金额 @@ -1065,22 +1114,28 @@ public class OrderController extends BaseController { response.setServingOrderNum(orderDetailService.countOrderDetailList(orderDetail)); // 统计待确认单量 orderDetail.setOrderStatus(null); - orderDetail.setOrderStatusList(new ArrayList() {{ - add(4); - add(5); - }}); + orderDetail.setOrderStatusList(new ArrayList() { + { + add(4); + add(5); + } + }); orderDetail.setWorkFinishTimeExisted(true); - orderDetail.setDrawCashStatusList(new ArrayList() {{ - add(0); - add(1); - }}); + orderDetail.setDrawCashStatusList(new ArrayList() { + { + add(0); + add(1); + } + }); response.setWaitSureOrderNum(orderDetailService.countOrderDetailList(orderDetail)); orderDetail.setOrderStatusList(null); // 统计已完成子单量 orderDetail.setOrderStatus(OrderStatus.FINISH.code()); - orderDetail.setDrawCashStatusList(new ArrayList() {{ - add(2); - }}); + orderDetail.setDrawCashStatusList(new ArrayList() { + { + add(2); + } + }); response.setFinishedOrderNum(orderDetailService.countOrderDetailList(orderDetail)); orderDetail.setWorkFinishTimeExisted(false); orderDetail.setDrawCashStatusList(null); @@ -1091,7 +1146,15 @@ public class OrderController extends BaseController { orderMaster.setOrderStatus(null); orderMaster.setIsMonitoredOrder(true); orderMaster.setAllSelfAssigned(0); - response.setMonitoredOrderNum(orderMasterService.countOrderMasterList(orderMaster)); + Long monitoredOrderNum = orderMasterService.countOrderMasterList(orderMaster); + if (orderMaster.getOrderType()!=null&&orderMaster.getOrderType() == 0) { + OrderMaster origiOrderMaster = new OrderMaster(); + origiOrderMaster.setOriginalWorkerId(orderMaster.getWorkerId()); + List originalList = orderMasterService.selectOrderMasterList(origiOrderMaster); + monitoredOrderNum += originalList.size(); + } + + response.setMonitoredOrderNum(monitoredOrderNum); orderMaster.setIsMonitoredOrder(false); orderMaster.setAllSelfAssigned(null); // 统计搁置单量 @@ -1173,15 +1236,15 @@ public class OrderController extends BaseController { allOrderMaster.stream() .filter(order -> order.getOrderStatus() != 6) // 先过滤状态不等于6的订单 .filter(order -> order.getOrderStatus() != 5) - .map(OrderMaster::getId) // 再提取id - .collect(Collectors.toList()) - ); + .map(OrderMaster::getId) // 再提取id + .collect(Collectors.toList())); if (CollectionUtils.isEmpty(countParam.getMasterIds())) { return count; } logger.info("符合条件的主单超时参数{},count{}", countParam, count); List orderDetails = orderDetailService.selectOrderDetailList(countParam); - List result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList()); + List result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)) + .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(result)) { masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList()); } @@ -1211,7 +1274,8 @@ public class OrderController extends BaseController { // 查询该主单下所有售后中的子单 OrderDetail detailAfterListOfMasterQry = new OrderDetail(); detailAfterListOfMasterQry.setOrderMasterCode(master.getCode()); - List tmpDetailListOfMasters = orderDetailService.selectOrderDetailList(detailAfterListOfMasterQry); + List tmpDetailListOfMasters = orderDetailService + .selectOrderDetailList(detailAfterListOfMasterQry); List detailListOfMasters = new ArrayList<>(); tmpDetailListOfMasters.forEach(model -> { OrderListResponse response = new OrderListResponse(); @@ -1224,7 +1288,8 @@ public class OrderController extends BaseController { break; } } - logger.info("主单id{},子单数据{},{}", master.getId(), CollectionUtils.isEmpty(tmpDetailListOfMasters), isKeep); + logger.info("主单id{},子单数据{},{}", master.getId(), CollectionUtils.isEmpty(tmpDetailListOfMasters), + isKeep); if (isKeep || CollectionUtils.isEmpty(tmpDetailListOfMasters)) { filteredMasterList.add(master); } @@ -1233,7 +1298,8 @@ public class OrderController extends BaseController { count += filteredMasterList.size(); mateIds = filteredMasterList.stream().map(OrderMaster::getId) .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)) { count += masterList.size(); } @@ -1262,62 +1328,71 @@ public class OrderController extends BaseController { // 拿到所有正常筛选出来的子单 List detailList = this.getDetailList(orderDetailReq); orderListResponses.addAll(detailList); -// List allList = new ArrayList<>(); -// List masterIdSet = new ArrayList(); -// if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { -// // 增加主单下子单有超时的 -// // 增加主单下子单有超时的 -// OrderMaster param = new OrderMaster(); -// param.setWorkerId(orderListRequest.getWorkerId()); -// List allOrderMaster = orderMasterService.selectOrderMasterList(param); -// if(CollectionUtils.isNotEmpty(allOrderMaster)){ -// OrderDetail countParam = new OrderDetail(); -// countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList())); -// List orderDetails = orderDetailService.selectOrderDetailList(countParam); -// List result = orderDetails.stream().filter(s -> s.getTimeout().equals(1)).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(result)) { -// masterIdSet = result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList()); -// } -// } -// if (CollectionUtils.isNotEmpty(masterIdSet)) { -// OrderMaster timeOutMaster = new OrderMaster(); -// timeOutMaster.setOrderMasterIdList(masterIdSet); -// allList.addAll(this.getMasterList(timeOutMaster)); -// } -// } + // List allList = new ArrayList<>(); + // List masterIdSet = new ArrayList(); + // if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == + // 1) { + // // 增加主单下子单有超时的 + // // 增加主单下子单有超时的 + // OrderMaster param = new OrderMaster(); + // param.setWorkerId(orderListRequest.getWorkerId()); + // List allOrderMaster = + // orderMasterService.selectOrderMasterList(param); + // if(CollectionUtils.isNotEmpty(allOrderMaster)){ + // OrderDetail countParam = new OrderDetail(); + // countParam.setMasterIds(allOrderMaster.stream().map(OrderMaster::getId).collect(Collectors.toList())); + // List orderDetails = + // orderDetailService.selectOrderDetailList(countParam); + // List result = orderDetails.stream().filter(s -> + // s.getTimeout().equals(1)).collect(Collectors.toList()); + // if (CollectionUtils.isNotEmpty(result)) { + // masterIdSet = + // result.stream().map(OrderDetail::getOrderMasterId).collect(Collectors.toList()); + // } + // } + // if (CollectionUtils.isNotEmpty(masterIdSet)) { + // OrderMaster timeOutMaster = new OrderMaster(); + // timeOutMaster.setOrderMasterIdList(masterIdSet); + // allList.addAll(this.getMasterList(timeOutMaster)); + // } + // } // 查询主单 OrderMaster orderMasterReq = new OrderMaster(); BeanUtils.copyProperties(orderListRequest, orderMasterReq); -// orderMasterReq.setExceptOrderMasterIds(masterIdSet); + // orderMasterReq.setExceptOrderMasterIds(masterIdSet); orderMasterReq.setGoodsName(null); List masterList = this.getMasterList(orderMasterReq); -// allList.addAll(masterList); + // allList.addAll(masterList); // 超时查询需要排除同个师傅的主单子单同时出现 -// if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { -// // 需要排除同个师傅的主单子单同时出现 -// List filteredMasterList = new ArrayList(); -// for (OrderListResponse master : allList) { -// boolean isKeep = false; -// // 查询该主单下所有售后中的子单 -// OrderDetail detailAfterListOfMasterQry = new OrderDetail(); -// detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); -// List detailListOfMasters = this.getDetailList(detailAfterListOfMasterQry); -// for (OrderListResponse detailListOfMaster : detailListOfMasters) { -// if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) { -// isKeep = true; -// break; -// } -// } -// if (isKeep) { -// filteredMasterList.add(master); -// } -// } -// orderListResponses.addAll(filteredMasterList); -// } else { + // if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == + // 1) { + // // 需要排除同个师傅的主单子单同时出现 + // List filteredMasterList = new + // ArrayList(); + // for (OrderListResponse master : allList) { + // boolean isKeep = false; + // // 查询该主单下所有售后中的子单 + // OrderDetail detailAfterListOfMasterQry = new OrderDetail(); + // detailAfterListOfMasterQry.setOrderMasterCode(master.getOrderMasterCode()); + // List detailListOfMasters = + // this.getDetailList(detailAfterListOfMasterQry); + // for (OrderListResponse detailListOfMaster : detailListOfMasters) { + // if (!detailListOfMaster.getWorkerId().equals(orderListRequest.getWorkerId())) + // { + // isKeep = true; + // break; + // } + // } + // if (isKeep) { + // filteredMasterList.add(master); + // } + // } + // orderListResponses.addAll(filteredMasterList); + // } else { orderListResponses.addAll(masterList); -// } + // } logger.info("未处理的订单{}", orderListResponses); if (orderListRequest.getTimeout() != null && orderListRequest.getTimeout() == 1) { if (orderListResponses.size() > 0) { @@ -1331,7 +1406,8 @@ public class OrderController extends BaseController { Collections.sort(orderListResponses, new Comparator() { @Override public int compare(OrderListResponse o1, OrderListResponse o2) { - if (Objects.equals(orderListRequest.getOrderStatus(), 0) || Objects.equals(orderListRequest.getTimeout(), 1)) { + if (Objects.equals(orderListRequest.getOrderStatus(), 0) + || Objects.equals(orderListRequest.getTimeout(), 1)) { return o2.getCreateTime().compareTo(o1.getCreateTime()); } else { return o2.getUpdateTime().compareTo(o1.getUpdateTime()); @@ -1375,7 +1451,8 @@ public class OrderController extends BaseController { break; } } - long count = detailAfterListOfMasters.stream().filter(x -> (x.getAfterTimeout() != null && x.getAfterTimeout() == 1)).count(); + long count = detailAfterListOfMasters.stream() + .filter(x -> (x.getAfterTimeout() != null && x.getAfterTimeout() == 1)).count(); if (isKeep) { if (count > 0) { master.setAfterTimeout(1); @@ -1401,9 +1478,11 @@ public class OrderController extends BaseController { // 查所有售后的单 AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); - List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + List afterServiceRecordList = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); // 踢重后的子单ids - List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct() + .collect(Collectors.toList()); StringBuilder orderDetailIds = new StringBuilder(); OrderDetail orderDetail = new OrderDetail(); orderDetail.setCustomerId(orderMaster.getCustomerId()); @@ -1434,7 +1513,7 @@ public class OrderController extends BaseController { List orderListResponses = new ArrayList<>(); List list = orderMasterService.selectOrderMasterList(orderMaster); list.forEach(master -> { - //子单 + // 子单 List detailList = orderDetailService.selectByOrderMasterId(master.getId()); // 初始化属性 @@ -1445,20 +1524,23 @@ public class OrderController extends BaseController { Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null; // 消费者信息 -// Customer customer = customerService.selectByCustomerId(master.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(master.getCustomerId()); // 商品规格及信息 List 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(master.getGoodsId()); - if (goods.getDeptGoodsCategoryId() != null) { + if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode())) { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } @@ -1486,17 +1568,19 @@ public class OrderController extends BaseController { // 财务信息 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 financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); -// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { -// totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); -// } -// } -// totalPayMoney = totalPayMoney.add(totalChangeMoney); + // BigDecimal totalChangeMoney = new BigDecimal(0); + // for (OrderDetail detail: detailList) { + // // 查询子单加价记录 + // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); + // changeRecordQry.setOrderDetailId(detail.getId()); + // List 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()); @@ -1514,7 +1598,8 @@ public class OrderController extends BaseController { detailOrderList.stream().forEach(detail -> { AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); afterServiceRecordQry.setOrderDetailId(detail.getId()); - List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + List records = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecordQry); afterServiceRecords.addAll(records); }); @@ -1543,11 +1628,13 @@ public class OrderController extends BaseController { orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setPayMoney(totalPayMoney); -// orderListResponse.setChangeMoney(totalChangeMoney); + // orderListResponse.setChangeMoney(totalChangeMoney); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone( + StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); @@ -1576,10 +1663,13 @@ public class OrderController extends BaseController { AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); afterServiceRecord.setNeedImgs(orderDetail.getNeedImgs()); - List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); - Map> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record -> record.getOrderDetailId())); + List afterServiceRecordList = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); + Map> detailRecordMap = afterServiceRecordList.stream() + .collect(Collectors.groupingBy(record -> record.getOrderDetailId())); // 踢重后的子单ids - List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct() + .collect(Collectors.toList()); StringBuilder orderDetailIds = new StringBuilder(); detailIds.forEach(id -> { orderDetailIds.append(id).append(","); @@ -1607,24 +1697,28 @@ public class OrderController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname() + workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() + : workerRealInfo.getSurname() + workerRealInfo.getName(); } // 消费者信息 -// Customer customer = customerService.selectByCustomerId(detail.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(detail.getCustomerId()); // 商品规格及信息 List 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(orderMaster.getGoodsId()); - if (goods.getDeptGoodsCategoryId() != null) { + if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode())) { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } @@ -1654,8 +1748,10 @@ public class OrderController extends BaseController { BigDecimal detailPayMoney = financialDetail.getPayMoney(); // 查询子单加价记录 - FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId()); - BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO : financialChangeRecord.getChangeMoney(); + FinancialChangeRecord financialChangeRecord = financialChangeRecordService + .selectNotPayRecordByDetailId(detail.getId()); + BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO + : financialChangeRecord.getChangeMoney(); // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); @@ -1678,9 +1774,11 @@ public class OrderController extends BaseController { } if (this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())) { - FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(detail.getOrderMasterId()); + FinancialMaster financialMaster = financialMasterService + .selectByOrderMasterId(detail.getOrderMasterId()); BigDecimal workerFee = financialMaster.getPayMoney(); - List financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId()); + List financialDetailList = financialDetailService + .selectByFinancialMasterId(financialMaster.getId()); for (FinancialDetail param : financialDetailList) { if (!detail.getWorkerId().equals(param.getPayeeId())) { workerFee = workerFee.subtract(param.getPayMoney()); @@ -1693,7 +1791,6 @@ public class OrderController extends BaseController { orderListResponse.setIsOnlyServ(Boolean.FALSE); } - // 编辑返回属性 orderListResponse.setGoodsBrand(orderMaster.getGoodsBrand()); orderListResponse.setGoodsSpecification(orderMaster.getGoodsSpecification()); @@ -1708,8 +1805,10 @@ public class OrderController extends BaseController { orderListResponse.setWorkerId(detail.getWorkerId()); orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() + : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); @@ -1751,7 +1850,8 @@ public class OrderController extends BaseController { OrderDetail masterIdsParam = new OrderDetail(); masterIdsParam.setMasterIds(orderMasterIds); List orderDetailsList = orderDetailService.selectOrderDetailList(masterIdsParam); - Map> orderMasterIdsMap = orderDetailsList.stream().collect(Collectors.groupingBy(OrderDetail::getOrderMasterId)); + Map> orderMasterIdsMap = orderDetailsList.stream() + .collect(Collectors.groupingBy(OrderDetail::getOrderMasterId)); // -- 都是同一个师傅的,师傅信息 Worker worker = orderMaster.getWorkerId() != null ? workerService.selectById(orderMaster.getWorkerId()) : null; @@ -1770,15 +1870,18 @@ public class OrderController extends BaseController { List 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(master.getGoodsId()); // 填充商品三级类目 if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode()) || "01".equals(orderMaster.getConsultMode())) { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode()) + || "01".equals(orderMaster.getConsultMode())) { + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } @@ -1809,7 +1912,8 @@ public class OrderController extends BaseController { // 查询加价价格 BigDecimal changeMoney = BigDecimal.ZERO; - List changeRecords = financialChangeRecordService.selectByDetailIds(StringUtils.join(orderDetailIds, ",")); + List changeRecords = financialChangeRecordService + .selectByDetailIds(StringUtils.join(orderDetailIds, ",")); for (FinancialChangeRecord changeRecord : changeRecords) { if (PayStatus.WAIT_PAY.getCode().equals(changeRecord.getPayStatus())) { changeMoney = changeMoney.add(changeRecord.getChangeMoney()); @@ -1832,7 +1936,8 @@ public class OrderController extends BaseController { detailOrderList.stream().forEach(detail -> { AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); afterServiceRecordQry.setOrderDetailId(detail.getId()); - List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + List records = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecordQry); afterServiceRecords.addAll(records); }); @@ -1844,11 +1949,11 @@ public class OrderController extends BaseController { } boolean condition = (master.getAllSelfAssigned() == null || master.getAllSelfAssigned() == 0) && (master.getOrderStatus() != null - && (master.getOrderStatus() == 0 - || master.getOrderStatus() == 1 - || master.getOrderStatus() == 2 - || master.getOrderStatus() == 3 - || master.getOrderStatus() == 4)) + && (master.getOrderStatus() == 0 + || master.getOrderStatus() == 1 + || master.getOrderStatus() == 2 + || master.getOrderStatus() == 3 + || master.getOrderStatus() == 4)) && master.getWorkerId() != null; logger.info("是否为监控单{}主单id{}", condition, master); // 编辑返回属性 @@ -1875,8 +1980,10 @@ public class OrderController extends BaseController { orderListResponse.setPayMoney(financialMaster.getPayMoney()); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone( + StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); @@ -1917,8 +2024,10 @@ public class OrderController extends BaseController { orderListResponse.setStreetId(master.getStreetId()); orderListResponse.setPhone(master.getPhone()); orderListResponse.setName(master.getName()); - orderListResponse.setCustomerName(StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone( + StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); orderListResponse.setAddress(master.getAddress()); String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); @@ -1926,7 +2035,7 @@ public class OrderController extends BaseController { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - if (array.length>3){ + if (array.length > 3) { orderListResponse.setStreetName(array[3]); } orderListResponse.setProvinceId(customerAddress.getProvinceId()); @@ -1938,7 +2047,6 @@ public class OrderController extends BaseController { orderListResponse.setAddress(completeAddress); } - orderListResponses.add(orderListResponse); } @@ -1958,13 +2066,15 @@ public class OrderController extends BaseController { Worker worker = workerService.selectById(detail.getWorkerId()); // 消费者信息 -// Customer customer = customerService.selectByCustomerId(detail.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(detail.getCustomerId()); // 商品规格及信息 List 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(orderMaster.getGoodsId()); // 填充商品三级类目 @@ -1972,7 +2082,8 @@ public class OrderController extends BaseController { Long categoryId = null; // 前端发单和后台派单 if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode())) { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } @@ -2002,8 +2113,10 @@ public class OrderController extends BaseController { FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); // 查询子单加价记录 - FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId()); - BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO : financialChangeRecord.getChangeMoney(); + FinancialChangeRecord financialChangeRecord = financialChangeRecordService + .selectNotPayRecordByDetailId(detail.getId()); + BigDecimal changeMoney = financialChangeRecord == null ? BigDecimal.ZERO + : financialChangeRecord.getChangeMoney(); // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); @@ -2036,9 +2149,10 @@ public class OrderController extends BaseController { } // 售后记录 -// AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); -// afterServiceRecord.setOrderDetailId(detail.getId()); -// List afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + // AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); + // afterServiceRecord.setOrderDetailId(detail.getId()); + // List afterServiceRecordList + // =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); // 编辑返回属性 orderListResponse.setWorkerRemark(detail.getWorkerRemark()); @@ -2057,8 +2171,10 @@ public class OrderController extends BaseController { orderListResponse.setWorkerName(worker.getName()); orderListResponse.setWorkerPhone(worker.getPhone()); orderListResponse.setWorkerId(detail.getWorkerId()); - orderListResponse.setCustomerName(StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone(StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() + : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); @@ -2083,7 +2199,6 @@ public class OrderController extends BaseController { orderListResponse.setConsultMode(orderMaster.getConsultMode()); orderListResponse.setInsuranceId(orderMaster.getInsuranceId()); - orderListResponse.setProvinceName(orderMaster.getProvinceName()); orderListResponse.setCityName(orderMaster.getCityName()); orderListResponse.setCountryName(orderMaster.getCountryName()); @@ -2103,7 +2218,7 @@ public class OrderController extends BaseController { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - if (array.length>3){ + if (array.length > 3) { orderListResponse.setStreetName(array[3]); } orderListResponse.setProvinceId(customerAddress.getProvinceId()); @@ -2116,12 +2231,13 @@ public class OrderController extends BaseController { } if (orderMaster.getInsuranceId() != null) { - InsuranceManager manager = insuranceManagerService.selectInsuranceManagerById(orderMaster.getInsuranceId()); + InsuranceManager manager = insuranceManagerService + .selectInsuranceManagerById(orderMaster.getInsuranceId()); if (manager != null) { orderListResponse.setInsuranceManager(manager); } } -// orderListResponse.setAfterServiceRecordList(afterServiceRecordList); + // orderListResponse.setAfterServiceRecordList(afterServiceRecordList); orderListResponses.add(orderListResponse); } return orderListResponses; @@ -2201,9 +2317,9 @@ public class OrderController extends BaseController { return AjaxResult.error("该配件订单已经派发过服务订单,不能重复操作"); } - Goods goods=goodsService.selectById(accessoryOrderMaster.getGoodsId()); - Shop goodsShop=shopService.getShop(goods.getShopId()); - String phone= goodsShop.getPhone(); + Goods goods = goodsService.selectById(accessoryOrderMaster.getGoodsId()); + Shop goodsShop = shopService.getShop(goods.getShopId()); + String phone = goodsShop.getPhone(); // 获取服务店铺信息 Shop serviceShop = shopService.getShop(serviceShopId); @@ -2218,17 +2334,16 @@ public class OrderController extends BaseController { } // 获取服务店铺的第一个服务商品并生成OrderGoods - // 查询服务店铺的服务商品 - Goods queryGoods = new Goods(); - queryGoods.setShopId(serviceShopId); - queryGoods.setType(1); // 1表示服务类型 - List serviceGoodsList = goodsService.selectGoodsList(queryGoods); - + // 查询服务店铺的服务商品 + Goods queryGoods = new Goods(); + queryGoods.setShopId(serviceShopId); + queryGoods.setType(1); // 1表示服务类型 + List serviceGoodsList = goodsService.selectGoodsList(queryGoods); // 创建服务主单 OrderMaster serviceOrderMaster = new OrderMaster(); - serviceOrderMaster.setGoodsId(serviceGoodsList.size()>0?serviceGoodsList.get(0).getGoodsId():null); - serviceOrderMaster.setGoods(serviceGoodsList.size()>0?serviceGoodsList.get(0):null); + serviceOrderMaster.setGoodsId(serviceGoodsList.size() > 0 ? serviceGoodsList.get(0).getGoodsId() : null); + serviceOrderMaster.setGoods(serviceGoodsList.size() > 0 ? serviceGoodsList.get(0) : null); serviceOrderMaster.setDeptId(accessoryOrderMaster.getDeptId()); serviceOrderMaster.setCode(orderMasterService.createOrderCode()); serviceOrderMaster.setOrderType(0); // 服务订单类型为0 @@ -2240,11 +2355,15 @@ public class OrderController extends BaseController { serviceOrderMaster.setCreateTime(new Date()); serviceOrderMaster.setWorkerId(serviceWorker.getWorkerId()); // 使用服务店铺的师傅ID serviceOrderMaster.setServiceShopId(serviceShopId); // 设置服务店铺ID - serviceOrderMaster.setRemark("由配件订单[" + accessoryOrderMaster.getCode() + "]自动生成的服务订单,接单后请约客户上门服务,服务费用已在订单内,完单后会自行结算,请勿重复向客户收取。服务时不要讲产品负面话题,不要生硬推销!杜绝一切不合常理的行为!服务客户过程中有任何问题可致电商品/配件店铺"+phone+"【致电时按商品信息说明是该商品安装服务方】" ); + serviceOrderMaster.setRemark("由配件订单[" + accessoryOrderMaster.getCode() + + "]自动生成的服务订单,接单后请约客户上门服务,服务费用已在订单内,完单后会自行结算,请勿重复向客户收取。服务时不要讲产品负面话题,不要生硬推销!杜绝一切不合常理的行为!服务客户过程中有任何问题可致电商品/配件店铺" + + phone + "【致电时按商品信息说明是该商品安装服务方】"); serviceOrderMaster.setExpectTimeStart(accessoryOrderMaster.getExpectTimeStart()); serviceOrderMaster.setExpectTimeEnd(accessoryOrderMaster.getExpectTimeEnd()); serviceOrderMaster.setInsuranceId(accessoryOrderMaster.getInsuranceId()); serviceOrderMaster.setGoodsOrderMasterId(orderMasterId); + // 设置原始师傅ID(配件订单的师傅ID) + serviceOrderMaster.setOriginalWorkerId(accessoryOrderMaster.getWorkerId()); // 设置服务商品金额 serviceOrderMaster.setServerGoodsMoney(serviceMoney); @@ -2273,8 +2392,7 @@ public class OrderController extends BaseController { serviceOrderMaster.getCode(), serviceMoney, BigDecimal.ZERO, - serviceMoney - ); + serviceMoney); serviceFinancialMaster.setServerMoney(serviceMoney); financialMasterService.insertFinancialMaster(serviceFinancialMaster); Assert.notNull(serviceFinancialMaster.getId(), "ServiceFinancialMaster.id is null!"); @@ -2301,7 +2419,8 @@ public class OrderController extends BaseController { // 更新配件主单,关联生成的服务订单并标记已派发服务订单 OrderMaster accessoryUpdate = new OrderMaster(); accessoryUpdate.setId(accessoryOrderMaster.getId()); - accessoryUpdate.setRemark(accessoryOrderMaster.getRemark() + " [已生成服务订单:" + serviceOrderMaster.getCode() + ",服务金额:" + serviceMoney + "]"); + accessoryUpdate.setRemark(accessoryOrderMaster.getRemark() + " [已生成服务订单:" + serviceOrderMaster.getCode() + + ",服务金额:" + serviceMoney + "]"); accessoryUpdate.setHasServiceOrder(1); // 标记已派发服务订单 orderMasterService.updateOrderMaster(accessoryUpdate); @@ -2310,10 +2429,12 @@ public class OrderController extends BaseController { Map paramsNew = new HashMap<>(); paramsNew.put("thing21", "您帐号收到1条新服务订单"); paramsNew.put("thing31", "请进入【我的订单--新订单】操作处理"); - CustomerAddress address = customerAddressService.selectByCustomerAddressId(serviceOrderMaster.getAddressId()); + CustomerAddress address = customerAddressService + .selectByCustomerAddressId(serviceOrderMaster.getAddressId()); paramsNew.put("thing14", address.getName()); paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), serviceWorker.getWxOpenId(), WxMsgEnum.NORMAL_ORDER, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), serviceWorker.getWxOpenId(), + WxMsgEnum.NORMAL_ORDER, paramsNew); } catch (Exception e) { logger.error("发送微信通知失败: {}", e.getMessage(), e); } @@ -2332,7 +2453,8 @@ public class OrderController extends BaseController { result.put("serviceWorkerPhone", serviceWorker.getPhone()); logger.info("成功为配件订单[{}]生成服务订单[{}],服务金额:{},服务店铺:{}", - accessoryOrderMaster.getCode(), serviceOrderMaster.getCode(), serviceMoney, serviceShop.getShopName()); + accessoryOrderMaster.getCode(), serviceOrderMaster.getCode(), serviceMoney, + serviceShop.getShopName()); return AjaxResult.success("服务订单生成成功", result); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index 37de8f48..af7c6be4 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -120,39 +120,37 @@ public class OrderMasterController extends BaseController { private IOrderAttachmentRecordService orderAttachmentRecordService; @Resource private InsuranceService insuranceService; -@Resource + @Resource private ShopService shopService; - @Autowired + @Autowired private BaiduMapUtils baiduMapUtils; @Resource private IInsuranceManagerService insuranceManagerService; @PostMapping("/orderInsurance") @ResponseBody - public AjaxResult orderInsurance(@RequestParam(value = "orderCode") String orderCode){ + public AjaxResult orderInsurance(@RequestParam(value = "orderCode") String orderCode) { try { insuranceService.orderInsurance(orderCode); return AjaxResult.success(); - }catch (Exception e){ + } catch (Exception e) { return AjaxResult.error("保险未响应,请再次点击操作,或稍等再试【本单联通保险公司系统,操作此按键时开始投保,偶遇未响应,请间隔一两分钟再次点接单即可!】"); } } @GetMapping("/changePrice/{orderIds}") - public String changePrice(@PathVariable("orderIds") String orderIds, ModelMap mmap) - { + public String changePrice(@PathVariable("orderIds") String orderIds, ModelMap mmap) { mmap.put("orderIds", orderIds); return "order/batchChangePrice"; } @PostMapping(value = "batchChangePrice") @ResponseBody - public AjaxResult batchChangePrice(@Validated OrderChangePriceReq changePriceReq){ + public AjaxResult batchChangePrice(@Validated OrderChangePriceReq changePriceReq) { return orderMasterService.batchChangePrice(changePriceReq); } - -// @RequiresPermissions("order:master:view") + // @RequiresPermissions("order:master:view") @GetMapping() public String orderMaster() { return prefix; @@ -160,15 +158,13 @@ public class OrderMasterController extends BaseController { @PostMapping("/changeIsCharge") @ResponseBody - public AjaxResult changeIsCharge(OrderMaster orderMaster) - { + public AjaxResult changeIsCharge(OrderMaster orderMaster) { return toAjax(orderMasterService.updateOrderMaster(orderMaster)); } @PostMapping("/changeIsContact") @ResponseBody - public AjaxResult changeIsContact(OrderMaster orderMaster) - { + public AjaxResult changeIsContact(OrderMaster orderMaster) { return toAjax(orderMasterService.updateOrderMaster(orderMaster)); } @@ -181,8 +177,7 @@ public class OrderMasterController extends BaseController { @PostMapping("/changeInvoiceStatus") @ResponseBody @Log(title = "订单开票状态管理", businessType = BusinessType.UPDATE) - public AjaxResult changeInvoiceStatus(@RequestBody OrderMaster orderMaster) - { + public AjaxResult changeInvoiceStatus(@RequestBody OrderMaster orderMaster) { try { if (orderMaster.getId() == null) { return AjaxResult.error("订单ID不能为空"); @@ -190,13 +185,13 @@ public class OrderMasterController extends BaseController { if (orderMaster.getIsInvoiced() == null) { return AjaxResult.error("开票状态不能为空"); } - + // 只更新开票状态字段 OrderMaster updateOrder = new OrderMaster(); updateOrder.setId(orderMaster.getId()); updateOrder.setIsInvoiced(orderMaster.getIsInvoiced()); - // updateOrder.setUpdateBy(getLoginName()); - + // updateOrder.setUpdateBy(getLoginName()); + int result = orderMasterService.updateOrderMaster(updateOrder); if (result > 0) { String statusDesc = orderMaster.getIsInvoiced() == 1 ? "已开票" : "未开票"; @@ -218,8 +213,7 @@ public class OrderMasterController extends BaseController { @PostMapping("/changeNeedBillStatus") @ResponseBody @Log(title = "订单是否需要开票状态管理", businessType = BusinessType.UPDATE) - public AjaxResult changeNeedBillStatus(@RequestBody OrderMaster orderMaster) - { + public AjaxResult changeNeedBillStatus(@RequestBody OrderMaster orderMaster) { try { if (orderMaster.getId() == null) { return AjaxResult.error("订单ID不能为空"); @@ -227,13 +221,13 @@ public class OrderMasterController extends BaseController { if (orderMaster.getIsNeedBill() == null) { return AjaxResult.error("是否需要开票状态不能为空"); } - + // 只更新是否需要开票状态字段 OrderMaster updateOrder = new OrderMaster(); updateOrder.setId(orderMaster.getId()); updateOrder.setIsNeedBill(orderMaster.getIsNeedBill()); updateOrder.setUpdateBy(getLoginName()); - + int result = orderMasterService.updateOrderMaster(updateOrder); if (result > 0) { String statusDesc = orderMaster.getIsNeedBill() == 1 ? "需要开票" : "不需要开票"; @@ -256,8 +250,7 @@ public class OrderMasterController extends BaseController { @ResponseBody @Log(title = "订单转单管理", businessType = BusinessType.UPDATE) @Transactional(rollbackFor = Exception.class) - public AjaxResult transferOrder(@RequestBody TransferOrderRequest request) - { + public AjaxResult transferOrder(@RequestBody TransferOrderRequest request) { try { // 参数校验 if (request.getOrderId() == null) { @@ -284,7 +277,8 @@ public class OrderMasterController extends BaseController { } // 如果原师傅和新师傅相同,则不允许转单 - if (originalOrder.getWorkerId() != null && originalOrder.getWorkerId().equals(request.getNewWorkerId())) { + if (originalOrder.getWorkerId() != null + && originalOrder.getWorkerId().equals(request.getNewWorkerId())) { return AjaxResult.error("新师傅不能与原师傅相同"); } } @@ -299,7 +293,7 @@ public class OrderMasterController extends BaseController { if (request.getTransferAmount() != null) { BigDecimal originalAmount = financialMaster.getServerMoney(); BigDecimal transferAmount = request.getTransferAmount(); - + // 验证转单金额 if (transferAmount.compareTo(BigDecimal.ZERO) <= 0) { return AjaxResult.error("转单金额必须大于0"); @@ -310,13 +304,13 @@ public class OrderMasterController extends BaseController { // 计算差价 BigDecimal differenceAmount = originalAmount.subtract(transferAmount); - + // 更新主单金额 financialMaster.setServerMoney(transferAmount); financialMaster.setPayMoney(transferAmount); financialMaster.setRemark("订单转单,原金额:" + originalAmount + ",新金额:" + transferAmount); financialMasterService.updateFinancialMaster(financialMaster); - + // 如果有差价,创建差额子单记录 if (differenceAmount.compareTo(BigDecimal.ZERO) > 0 && originalOrder.getWorkerId() != null) { FinancialDetail differenceDetail = new FinancialDetail(); @@ -326,74 +320,74 @@ public class OrderMasterController extends BaseController { differenceDetail.setFinancialDetailType(FinancialDetailType.TRANSFER_DIFFERENCE_FEE.getCode()); differenceDetail.setRemark("转单差价,原师傅获得"); financialDetailService.insertFinancialDetail(differenceDetail); - - logger.info("创建转单差价记录:订单ID={}, 原师傅ID={}, 差价金额={}", - request.getOrderId(), originalOrder.getWorkerId(), differenceAmount); + + logger.info("创建转单差价记录:订单ID={}, 原师傅ID={}, 差价金额={}", + request.getOrderId(), originalOrder.getWorkerId(), differenceAmount); } } // 执行转单操作 OrderMaster updateOrder = new OrderMaster(); updateOrder.setId(request.getOrderId()); - + // 保存原师傅ID到originalWorkerId字段 if (originalOrder.getWorkerId() != null) { updateOrder.setOriginalWorkerId(originalOrder.getWorkerId()); } - + // 设置新师傅ID(可以为null,表示进入接单大厅) - if(request.getNewWorkerId()==null){ + if (request.getNewWorkerId() == null) { updateOrder.setWorkerId(-1L); - }else{ + } else { updateOrder.setWorkerId(request.getNewWorkerId()); } -// updateOrder.setUpdateBy(getLoginName()); - + // updateOrder.setUpdateBy(getLoginName()); + // 构建转单备注 String newRemark = originalOrder.getRemark() != null ? originalOrder.getRemark() : ""; String transferInfo = "【转单记录:" + - "于" + DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", new Date()); - + "于" + DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", new Date()); + if (request.getNewWorkerId() != null) { transferInfo += "转单给师傅ID:" + request.getNewWorkerId(); } else { transferInfo += "转单到接单大厅"; } - + if (request.getTransferAmount() != null) { transferInfo += ",转单金额:" + request.getTransferAmount(); } - + if (StringUtils.isNotEmpty(request.getTransferReason())) { transferInfo += ",原因:" + request.getTransferReason(); } - + transferInfo += "】"; updateOrder.setRemark(newRemark + transferInfo); int result = orderMasterService.updateOrderMaster(updateOrder); - + if (result > 0) { // 记录转单日志 - logger.info("订单转单成功:订单ID={}, 原师傅ID={}, 新师傅ID={}, 转单金额={}, 操作人={}", - request.getOrderId(), - originalOrder.getWorkerId(), - request.getNewWorkerId(), - request.getTransferAmount()); - + logger.info("订单转单成功:订单ID={}, 原师傅ID={}, 新师傅ID={}, 转单金额={}, 操作人={}", + request.getOrderId(), + originalOrder.getWorkerId(), + request.getNewWorkerId(), + request.getTransferAmount()); + String message; if (request.getNewWorkerId() != null) { - message = String.format("转单成功!订单已从师傅[%s]转给师傅[%s]", - originalOrder.getWorkerId() != null ? originalOrder.getWorkerId() : "无", - newWorker.getName()); + message = String.format("转单成功!订单已从师傅[%s]转给师傅[%s]", + originalOrder.getWorkerId() != null ? originalOrder.getWorkerId() : "无", + newWorker.getName()); } else { message = "转单成功!订单已转入接单大厅"; } - + if (request.getTransferAmount() != null) { message += ",转单金额:" + request.getTransferAmount(); } - + return AjaxResult.success(message); } else { return AjaxResult.error("转单失败,请重试"); @@ -437,7 +431,8 @@ public class OrderMasterController extends BaseController { public String batchChangeInsurance(@PathVariable(value = "orderIds") String orderIds, ModelMap mmap) { // 不知道为啥参数可能会带上双引号 这里去掉再转Long orderIds = orderIds.replace("\"", ""); - List insuranceManagers = insuranceManagerService.selectInsuranceManagerList(new InsuranceManager()); + List insuranceManagers = insuranceManagerService + .selectInsuranceManagerList(new InsuranceManager()); mmap.put("orderIds", orderIds); mmap.put("insurances", insuranceManagers); return "order/batchPcOrderInsurance"; @@ -447,7 +442,8 @@ public class OrderMasterController extends BaseController { public String pcOrderInsurance(@PathVariable(value = "orderIds") String orderIds, ModelMap mmap) { // 不知道为啥参数可能会带上双引号 这里去掉再转Long orderIds = orderIds.replace("\"", ""); - List insuranceManagers = insuranceManagerService.selectInsuranceManagerList(new InsuranceManager()); + List insuranceManagers = insuranceManagerService + .selectInsuranceManagerList(new InsuranceManager()); mmap.put("orderIds", orderIds); mmap.put("insurances", insuranceManagers); return "order/pcOrderInsurance"; @@ -457,24 +453,25 @@ public class OrderMasterController extends BaseController { @ResponseBody @Transactional(rollbackFor = Exception.class) public AjaxResult batchChangeInsurance(OrderMaster orderMaster) { - String [] orderIdArr = orderMaster.getOrderMasterIds().split(","); + String[] orderIdArr = orderMaster.getOrderMasterIds().split(","); for (String id : orderIdArr) { // 原单 OrderMaster master = orderMasterService.selectById(Long.valueOf(id)); - if(master==null || master.getInsuranceId() != null){ + if (master == null || master.getInsuranceId() != null) { return AjaxResult.error(master.getCode() + "订单已经选择过保险了!"); } } // 查询保险信息 - InsuranceManager insuranceManager = insuranceManagerService.selectInsuranceManagerById(orderMaster.getInsuranceId()); - if(insuranceManager == null){ + InsuranceManager insuranceManager = insuranceManagerService + .selectInsuranceManagerById(orderMaster.getInsuranceId()); + if (insuranceManager == null) { return AjaxResult.error("保险信息有误!"); } for (String id : orderIdArr) { // 原单 OrderMaster master = orderMasterService.selectById(Long.valueOf(id)); - if(master==null || master.getInsuranceId() != null){ + if (master == null || master.getInsuranceId() != null) { return AjaxResult.error(master.getCode() + "订单已经选择过保险了!"); } // 修改主单金额 财务单总金额增加 平台金额增加 @@ -483,8 +480,9 @@ public class OrderMasterController extends BaseController { financialMaster.setTotalMoney(financialMaster.getTotalMoney().add(insuranceManager.getInsuranceAmount())); financialMasterService.updateFinancialMaster(financialMaster); // 修改子单 - List details = financialDetailService.selectByFinancialMasterIdAndType(financialMaster.getId(), FinancialDetailType.PLATFORM_FEE.getCode()); - if(CollectionUtils.isNotEmpty(details)){ + List details = financialDetailService.selectByFinancialMasterIdAndType( + financialMaster.getId(), FinancialDetailType.PLATFORM_FEE.getCode()); + if (CollectionUtils.isNotEmpty(details)) { FinancialDetail detail = details.get(0); detail.setPayMoney(detail.getPayMoney().add(insuranceManager.getInsuranceAmount())); financialDetailService.updateFinancialDetail(detail); @@ -504,12 +502,13 @@ public class OrderMasterController extends BaseController { public AjaxResult changeInsurance(OrderMaster orderMaster) { // 原单 OrderMaster master = orderMasterService.selectById(orderMaster.getId()); - if(master==null || master.getInsuranceId() != null){ + if (master == null || master.getInsuranceId() != null) { return AjaxResult.error("订单已经选择过保险了!"); } // 查询保险信息 - InsuranceManager insuranceManager = insuranceManagerService.selectInsuranceManagerById(orderMaster.getInsuranceId()); - if(insuranceManager == null){ + InsuranceManager insuranceManager = insuranceManagerService + .selectInsuranceManagerById(orderMaster.getInsuranceId()); + if (insuranceManager == null) { return AjaxResult.error("保险信息有误!"); } // 修改主单金额 财务单总金额增加 平台金额增加 @@ -518,8 +517,9 @@ public class OrderMasterController extends BaseController { financialMaster.setTotalMoney(financialMaster.getTotalMoney().add(insuranceManager.getInsuranceAmount())); financialMasterService.updateFinancialMaster(financialMaster); // 修改子单 - List details = financialDetailService.selectByFinancialMasterIdAndType(financialMaster.getId(), FinancialDetailType.PLATFORM_FEE.getCode()); - if(CollectionUtils.isNotEmpty(details)){ + List details = financialDetailService.selectByFinancialMasterIdAndType(financialMaster.getId(), + FinancialDetailType.PLATFORM_FEE.getCode()); + if (CollectionUtils.isNotEmpty(details)) { FinancialDetail detail = details.get(0); detail.setPayMoney(detail.getPayMoney().add(insuranceManager.getInsuranceAmount())); financialDetailService.updateFinancialDetail(detail); @@ -531,15 +531,15 @@ public class OrderMasterController extends BaseController { @PostMapping("/assign") @ResponseBody - public AjaxResult assign(@RequestBody OrderMaster orderMaster){ + public AjaxResult assign(@RequestBody OrderMaster orderMaster) { OrderMaster param = new OrderMaster(); param.setOrderMasterIds(orderMaster.getOrderMasterIds()); List masters = orderMasterService.selectOrderMasterList(param); - long count = masters.stream().filter(x->!x.getOrderStatus().equals(OrderStatus.RECEIVE.code())).count(); - if(count > 0){ + long count = masters.stream().filter(x -> !x.getOrderStatus().equals(OrderStatus.RECEIVE.code())).count(); + if (count > 0) { return AjaxResult.error("请选择待接单且无师傅接单订单指派"); } - masters.forEach(master->{ + masters.forEach(master -> { OrderMaster updateEntity = new OrderMaster(); updateEntity.setId(master.getId()); updateEntity.setWorkerId(orderMaster.getWorkerId()); @@ -556,9 +556,11 @@ public class OrderMasterController extends BaseController { CustomerAddress address = customerAddressService.selectByCustomerAddressId(master.getAddressId()); paramsNew.put("thing14", address.getName()); // 预约时间 - paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", master.getExpectTimeStart())); + paramsNew.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", + master.getExpectTimeStart())); // 消息推送 - WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.NORMAL_ORDER, paramsNew); + WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), + WxMsgEnum.NORMAL_ORDER, paramsNew); } catch (Exception e) { // 暂时不做任何操作。 logger.error(e.getMessage(), e); @@ -571,52 +573,51 @@ public class OrderMasterController extends BaseController { @PostMapping("/importData") @ResponseBody @Transactional(rollbackFor = Exception.class) - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(SysOrderRequest.class); List jsonObjects = util.importExcel(file.getInputStream()); boolean flag = false; for (SysOrderRequest model : jsonObjects) { - if("序号".equals(model.getSeq())){ + if ("序号".equals(model.getSeq())) { flag = true; continue; } - if(flag){ + if (flag) { sysOrder(format(model)); } } return AjaxResult.success(jsonObjects); } - public SysOrderAssignRequest format(SysOrderRequest orderRequest) throws Exception{ + public SysOrderAssignRequest format(SysOrderRequest orderRequest) throws Exception { SysOrderAssignRequest request = new SysOrderAssignRequest(); - if(StringUtils.isEmpty(orderRequest.getSeq())){ + if (StringUtils.isEmpty(orderRequest.getSeq())) { throw new Exception("导入表格序号,序号不能为空!"); } - if(StringUtils.isEmpty(orderRequest.getName())){ + if (StringUtils.isEmpty(orderRequest.getName())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",姓名不能为空!"); } - if(StringUtils.isEmpty(orderRequest.getPrice())){ + if (StringUtils.isEmpty(orderRequest.getPrice())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列,发布价格填写不能为空!"); } try { Integer.parseInt(orderRequest.getPrice()); - }catch (Exception e){ + } catch (Exception e) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列,发布价格不能有小数点!"); } - if(StringUtils.isEmpty(orderRequest.getNum())){ + if (StringUtils.isEmpty(orderRequest.getNum())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",H列,数量填写不能为空!"); } try { Integer.parseInt(orderRequest.getNum()); - }catch (Exception e){ + } catch (Exception e) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",H列,数量不能含小数点。"); } - if(StringUtils.isEmpty(orderRequest.getLastCategory())){ + if (StringUtils.isEmpty(orderRequest.getLastCategory())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",C列,四级类目不能为空!"); } request.setCustomerName(orderRequest.getName()); - if(StringUtils.isEmpty(orderRequest.getPhone())){ + if (StringUtils.isEmpty(orderRequest.getPhone())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",导入手机号不能为空!"); } request.setCustomerPhone(orderRequest.getPhone()); @@ -624,50 +625,51 @@ public class OrderMasterController extends BaseController { request.setServTime(orderRequest.getTime()); request.setGoodsBrand(orderRequest.getBrand()); request.setRemark(orderRequest.getRemark()); - if(StringUtils.isEmpty(orderRequest.getMode())){ + if (StringUtils.isEmpty(orderRequest.getMode())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列,下单模式名称有误/或带有其它字符!"); - }else { - if(orderRequest.getMode().contains("-")){ + } else { + if (orderRequest.getMode().contains("-")) { String orderModel = orderRequest.getMode().split("-")[0]; String payType = orderRequest.getMode().split("-")[1]; - if("带价下单".equals(orderModel)){ + if ("带价下单".equals(orderModel)) { request.setOrderMode("02"); - }else if("一票价".equals(orderModel)){ + } else if ("一票价".equals(orderModel)) { request.setOrderMode("01"); - }else { + } else { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列,下单模式名称有误/或带有其它字符!"); } - if("到付".equals(payType)){ + if ("到付".equals(payType)) { request.setPayMode("01"); - }else { + } else { request.setPayMode("02"); } - }else { - if("带价下单".equals(orderRequest.getMode())){ + } else { + if ("带价下单".equals(orderRequest.getMode())) { request.setOrderMode("02"); request.setPayMode("02"); - }else if("一票价".equals(orderRequest.getMode())){ + } else if ("一票价".equals(orderRequest.getMode())) { request.setOrderMode("01"); request.setPayMode("02"); - }else { + } else { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",G列,下单模式名称有误/或带有其它字符!"); } } } - if(StringUtils.isEmpty(orderRequest.getPrice())){ + if (StringUtils.isEmpty(orderRequest.getPrice())) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",I列,发布价格填写不能为空!\n"); } request.setPrice(new BigDecimal(orderRequest.getPrice())); request.setVideoUrl(orderRequest.getUrl()); request.setImageUrl("http://gqz.opsoul.com/default.jpeg"); List goodsStandards = new ArrayList<>(); - String [] categoryNames = orderRequest.getCategory().split("-"); - if(categoryNames.length != 3){ + String[] categoryNames = orderRequest.getCategory().split("-"); + if (categoryNames.length != 3) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列,三级类目名称有误/或格式有误!"); - }else { - if(StringUtils.isEmpty(categoryNames[0])||StringUtils.isEmpty(categoryNames[1])||StringUtils.isEmpty(categoryNames[2])){ + } else { + if (StringUtils.isEmpty(categoryNames[0]) || StringUtils.isEmpty(categoryNames[1]) + || StringUtils.isEmpty(categoryNames[2])) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列,三级类目名称有误/或格式有误!"); } try { @@ -686,44 +688,47 @@ public class OrderMasterController extends BaseController { param3.setGoodsCategoryName(categoryNames[2]); GoodsCategory category3 = goodsCategoryService.selectGoodsCategoryList(param3).get(0); - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(category3.getGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(category3.getGoodsCategoryId()); request.setCategoryId3(deptGoodsCategory.getDeptGoodsCategoryId()); // 第四层 GoodsCategory param4 = new GoodsCategory(); param4.setParentCategoryId(category3.getGoodsCategoryId()); param4.setGoodsCategoryName(orderRequest.getLastCategory()); - List categories = goodsCategoryService.selectGoodsCategoryList(param4); - if(CollectionUtils.isEmpty(categories)){ + List categories = goodsCategoryService.selectGoodsCategoryList(param4); + if (CollectionUtils.isEmpty(categories)) { param4.setGoodsCategoryName(null); categories = goodsCategoryService.selectGoodsCategoryList(param4); } GoodsCategory category4 = categories.get(0); SysOrderGoodsStandards standards = new SysOrderGoodsStandards(); - DeptGoodsCategory deptGoodsCategory2 = deptGoodsCategoryService.selectOneByGoodsCategoryId(category4.getGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory2 = deptGoodsCategoryService + .selectOneByGoodsCategoryId(category4.getGoodsCategoryId()); standards.setDeptCategoryId(deptGoodsCategory2.getDeptGoodsCategoryId()); standards.setGoodsStandardNum(Integer.parseInt(orderRequest.getNum())); standards.setGoodsStandardName(orderRequest.getLastCategory()); goodsStandards.add(standards); - }catch (Exception e){ + } catch (Exception e) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",B列,三级类目名称有误/或格式有误!"); } } request.setOrderGoodsStandards(goodsStandards); - String [] addressName = orderRequest.getAddress().split("-"); - if(addressName.length == 1){ + String[] addressName = orderRequest.getAddress().split("-"); + if (addressName.length == 1) { addressName = orderRequest.getAddress().split(","); - if(addressName.length == 1){ + if (addressName.length == 1) { addressName = orderRequest.getAddress().split(" "); - }if(addressName.length == 1){ + } + if (addressName.length == 1) { addressName = orderRequest.getAddress().split("/"); } } - if(addressName.length < 4){ + if (addressName.length < 4) { throw new Exception("导入表格序号" + orderRequest.getSeq() + ",L列,服务地址不能为空或分隔符不能少于3个!"); - }else { + } else { // 省 SysArea param1 = new SysArea(); param1.setAreaName(addressName[0]); @@ -745,9 +750,9 @@ public class OrderMasterController extends BaseController { request.setDistrictId(area3.getAreaId()); // 详细地址 - if(addressName.length == 5){ - request.setFullAddress(addressName[3]+addressName[4]); - }else { + if (addressName.length == 5) { + request.setFullAddress(addressName[3] + addressName[4]); + } else { request.setFullAddress(addressName[3]); } @@ -758,7 +763,7 @@ public class OrderMasterController extends BaseController { public synchronized void sysOrder(@RequestBody SysOrderAssignRequest request) throws Exception { // 判断传递价格是否有小数 - if (new BigDecimal(request.getPrice().intValue()).compareTo(request.getPrice())!=0){ + if (new BigDecimal(request.getPrice().intValue()).compareTo(request.getPrice()) != 0) { throw new Exception("后台发单金额不能含有小数!"); } @@ -775,7 +780,8 @@ public class OrderMasterController extends BaseController { } // 判断是否有客户地址 - if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null || org.apache.commons.lang3.StringUtils.isBlank(request.getFullAddress())) { + if (request.getProvinceId() == null || request.getCityId() == null || request.getDistrictId() == null + || org.apache.commons.lang3.StringUtils.isBlank(request.getFullAddress())) { throw new Exception("请填写地址"); } @@ -846,7 +852,7 @@ public class OrderMasterController extends BaseController { orderMaster.setGoodsSpecification(request.getGoodsSpecification()); orderMaster.setOrderImages(request.getOrderImages()); - //在订单表保存地址信息 + // 在订单表保存地址信息 orderMaster.setProvinceId(request.getProvinceId()); orderMaster.setCityId(request.getCityId()); orderMaster.setCountryId(request.getDistrictId()); @@ -860,21 +866,23 @@ public class OrderMasterController extends BaseController { orderMaster.setStreetName(customerAddress.getStreetName()); // 存在登陆用户的情况下 - if(getSysUser() != null){ + if (getSysUser() != null) { orderMaster.setCreateBy(getSysUser().getUserId().toString()); } - if(StringUtils.isEmpty(request.getServDate())){ + if (StringUtils.isEmpty(request.getServDate())) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 1); String dateStr = DateUtil.format(calendar.getTime(), "yyyy-MM-dd"); - orderMaster.setExpectTimeStart(DateUtil.parse(dateStr+" 08:00", "yyyy-MM-dd HH:mm")); - orderMaster.setExpectTimeEnd(DateUtil.parse(dateStr+" 10:00", "yyyy-MM-dd HH:mm")); - }else { + orderMaster.setExpectTimeStart(DateUtil.parse(dateStr + " 08:00", "yyyy-MM-dd HH:mm")); + orderMaster.setExpectTimeEnd(DateUtil.parse(dateStr + " 10:00", "yyyy-MM-dd HH:mm")); + } else { // 服务时间 String[] split = request.getServTime().split("-"); try { - orderMaster.setExpectTimeStart(org.apache.commons.lang3.time.DateUtils.parseDate(request.getServDate() + " " + split[0], "yyyy-MM-dd hh:mm")); - orderMaster.setExpectTimeEnd(org.apache.commons.lang3.time.DateUtils.parseDate(request.getServDate() + " " + split[1], "yyyy-MM-dd hh:mm")); + orderMaster.setExpectTimeStart(org.apache.commons.lang3.time.DateUtils + .parseDate(request.getServDate() + " " + split[0], "yyyy-MM-dd hh:mm")); + orderMaster.setExpectTimeEnd(org.apache.commons.lang3.time.DateUtils + .parseDate(request.getServDate() + " " + split[1], "yyyy-MM-dd hh:mm")); } catch (Exception e) { } @@ -909,7 +917,8 @@ public class OrderMasterController extends BaseController { // 名称 params.put("thing14", customer.getName()); // 预约时间 - params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", orderMaster.getExpectTimeStart())); + params.put("time4", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", + orderMaster.getExpectTimeStart())); // 消息推送 WechatMsgUtils.sendWeChatMsg(WechatMsgUtils.getToken(), assignWorker.getWxOpenId(), WxMsgEnum.TEXT, params); } catch (Exception e) { @@ -930,20 +939,24 @@ public class OrderMasterController extends BaseController { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId()); // 平台扣点 = 平台金额 + 商品单价 * 扣点比例 deptMoney = deptMoney.add(deptGoodsCategory.getPcDeptMoney()) - .add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcDeptRate())))); + .add(financialMaster.getPayMoney() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcDeptRate())))); // 截流扣点 = 截流金额 + 商品单价 * 扣点比例 specialMoney = specialMoney.add(deptGoodsCategory.getPcRetainMoney()) - .add(financialMaster.getPayMoney().multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcRetainRate())))); + .add(financialMaster.getPayMoney() + .multiply(BigDecimal.valueOf(Double.parseDouble(deptGoodsCategory.getPcRetainRate())))); // 平台扣点记录 FinancialDetail deptDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), deptMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), deptMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(deptDetail); // 剩余服务金额 serverMoney = serverMoney.subtract(deptMoney); // 截流扣点记录 FinancialDetail retainDetail = new FinancialDetail(deptId, financialDetailService.createCode(), - financialMaster.getId(), financialMaster.getCode(), specialMoney, FinancialDetailType.PLATFORM_FEE.getCode(), null); + financialMaster.getId(), financialMaster.getCode(), specialMoney, + FinancialDetailType.PLATFORM_FEE.getCode(), null); financialDetailService.insertFinancialDetail(retainDetail); // 剩余服务金额 serverMoney = serverMoney.subtract(specialMoney); @@ -971,7 +984,7 @@ public class OrderMasterController extends BaseController { @PostMapping("/app/list") @ResponseBody public TableDataInfo appList(@RequestBody OrderMaster orderMaster) { -// TableDataInfo rspData = new TableDataInfo(); + // TableDataInfo rspData = new TableDataInfo(); List orderListResponses = new ArrayList<>(); // 入参中的城市id存在时,查询符合条件的地址id if (CollectionUtils.isNotEmpty(orderMaster.getDistrictIds()) @@ -984,26 +997,33 @@ public class OrderMasterController extends BaseController { customerAddress.setStreetIds(orderMaster.getStreetIds()); customerAddress.setNeedNameFlag(true); List addressList = addressService.getCustomerAddressList(customerAddress); - orderMaster.setAddressIds(addressList.stream().map(CustomerAddress::getCustomerAddressId).collect(Collectors.toList())); + orderMaster.setAddressIds( + addressList.stream().map(CustomerAddress::getCustomerAddressId).collect(Collectors.toList())); if (CollectionUtils.isEmpty(orderMaster.getAddressIds())) { return voDataTable(orderListResponses, new ArrayList<>()); } } startPage(); -// if (orderMaster.getOrderStatus()==OrderStatus.FINISH_CHECK.code()){ -// orderMaster.setOrderStatuses(); -// } + // if (orderMaster.getOrderStatus()==OrderStatus.FINISH_CHECK.code()){ + // orderMaster.setOrderStatuses(); + // } List list = orderMasterService.selectOrderMasterList(orderMaster); - + OrderMaster origiOrderMaster = new OrderMaster(); + if (orderMaster.getOrderType() == 0) { + origiOrderMaster.setOriginalWorkerId(orderMaster.getWorkerId()); + List originalList = orderMasterService.selectOrderMasterList(origiOrderMaster); + list.addAll(originalList); + } + if (CollectionUtils.isEmpty(list)) { return voDataTable(orderListResponses, new ArrayList<>()); } - + // 优化1:收集所有需要查询的ID,避免重复查询 Set workerIds = new HashSet<>(); Set addressIds = new HashSet<>(); Set goodsIds = new HashSet<>(); - + list.forEach(master -> { if (master.getWorkerId() != null) { workerIds.add(master.getWorkerId()); @@ -1015,34 +1035,30 @@ public class OrderMasterController extends BaseController { goodsIds.add(master.getGoodsId()); } }); - + // 优化2:批量查询常用数据,避免循环中的重复查询 Map workerMap = new HashMap<>(); Map addressMap = new HashMap<>(); Map goodsMap = new HashMap<>(); - + if (!CollectionUtils.isEmpty(workerIds)) { List workers = workerService.selectByIds(workerIds); workers.forEach(worker -> workerMap.put(worker.getWorkerId(), worker)); } - + if (!CollectionUtils.isEmpty(addressIds)) { - // 由于没有批量查询方法,使用循环查询 - addressIds.forEach(addressId -> { - CustomerAddress address = addressService.selectByCustomerAddressId(addressId); - if (address != null) { - addressMap.put(address.getCustomerAddressId(), address); - } - }); + // 使用批量查询方法优化性能 + List addresses = addressService.selectByIds(new ArrayList<>(addressIds)); + addresses.forEach(address -> addressMap.put(address.getCustomerAddressId(), address)); } - + if (!CollectionUtils.isEmpty(goodsIds)) { List goodsList = goodsService.selectByIds(goodsIds); goodsList.forEach(goods -> goodsMap.put(goods.getGoodsId(), goods)); } - + list.forEach(master -> { - //子单 + // 子单 List detailList = orderDetailService.selectByOrderMasterId(master.getId()); // 初始化属性 @@ -1053,14 +1069,16 @@ public class OrderMasterController extends BaseController { Worker worker = workerMap.get(master.getWorkerId()); // 消费者信息 -// Customer customer = customerService.selectByCustomerId(master.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(master.getCustomerId()); // 商品规格及信息 List orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId()); Goods goods = new Goods(); if (orderStandardList.size() > 0) { // 商品信息 - GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId()); + GoodsStandard goodsStandard = goodsStandardService + .selectById(orderStandardList.get(0).getGoodsStandardId()); if (goodsStandard != null) { goods = goodsService.selectById(goodsStandard.getGoodsId()); } @@ -1074,7 +1092,8 @@ public class OrderMasterController extends BaseController { Long categoryId = null; // 前端发单和后台派单 if (com.ghy.common.utils.StringUtils.isEmpty(master.getOrderMode())) { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } @@ -1108,7 +1127,8 @@ public class OrderMasterController extends BaseController { if (financialMaster.getPayStatus() == 1) { paymentMoney = paymentMoney.add(financialMaster.getPayMoney()); } - List financialChangeRecords = financialChangeRecordService.selectByMasterId(master.getId()); + List financialChangeRecords = financialChangeRecordService + .selectByMasterId(master.getId()); BigDecimal changePaymentMoney = financialChangeRecords.stream() .filter(record -> record.getPayStatus() == 1) .map(FinancialChangeRecord::getChangeMoney) @@ -1117,14 +1137,16 @@ public class OrderMasterController extends BaseController { for (OrderDetail detail : detailList) { // 查询子单加价记录 - FinancialChangeRecord record = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId()); + FinancialChangeRecord record = financialChangeRecordService + .selectNotPayRecordByDetailId(detail.getId()); if (record != null) { totalChangeMoney = totalChangeMoney.add(record.getChangeMoney()); } OrderAttachmentRecord param = new OrderAttachmentRecord(); param.setOrderDetailId(detail.getId()); - List orderAttachmentRecordList = orderAttachmentRecordService.selectOrderAttachmentRecordList(param); + List orderAttachmentRecordList = orderAttachmentRecordService + .selectOrderAttachmentRecordList(param); for (OrderAttachmentRecord orderAttachmentRecord : orderAttachmentRecordList) { if (record != null && record.getPayStatus() == 0) { totalChangeMoney = totalChangeMoney.add(orderAttachmentRecord.getAttachMoney()); @@ -1155,7 +1177,8 @@ public class OrderMasterController extends BaseController { detailList.forEach(detail -> { AfterServiceRecord afterServiceRecordQry = new AfterServiceRecord(); afterServiceRecordQry.setOrderDetailId(detail.getId()); - List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecordQry); + List records = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecordQry); afterServiceRecords.addAll(records); }); @@ -1188,8 +1211,12 @@ public class OrderMasterController extends BaseController { orderListResponse.setChangeMoney(totalChangeMoney); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(master.getName()) ? master.getName() : customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() : customerAddress.getPhone()); + orderListResponse.setCustomerName( + org.apache.commons.lang3.StringUtils.isNotEmpty(master.getName()) ? master.getName() + : customerAddress.getName()); + orderListResponse.setCustomerPhone( + org.apache.commons.lang3.StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() + : customerAddress.getPhone()); orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); @@ -1265,9 +1292,11 @@ public class OrderMasterController extends BaseController { // 查所有售后的单 AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); - List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + List afterServiceRecordList = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); // 踢重后的子单ids - List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct() + .collect(Collectors.toList()); StringBuilder orderDetailIds = new StringBuilder(); OrderDetail orderDetail = new OrderDetail(); orderDetail.setCustomerId(orderMaster.getCustomerId()); @@ -1286,8 +1315,8 @@ public class OrderMasterController extends BaseController { StringBuilder orderMasterIds = new StringBuilder(); orderDetailList.stream().map(OrderDetail::getOrderMasterId).distinct() .collect(Collectors.toList()).forEach(id -> { - orderMasterIds.append(id).append(","); - }); + orderMasterIds.append(id).append(","); + }); String orderIds = orderMasterIds.toString(); if (StringUtils.isNotEmpty(orderIds)) { orderMaster.setOrderMasterIds(orderIds.substring(0, orderIds.length() - 1)); @@ -1299,8 +1328,9 @@ public class OrderMasterController extends BaseController { List orderListResponses = new ArrayList<>(); List list = orderMasterService.selectOrderMasterList(orderMaster); list.forEach(master -> { - //子单 -// List detailList = orderDetailService.selectByOrderMasterId(master.getId()); + // 子单 + // List detailList = + // orderDetailService.selectByOrderMasterId(master.getId()); // 初始化属性 OrderListResponse orderListResponse = new OrderListResponse(); @@ -1310,37 +1340,41 @@ public class OrderMasterController extends BaseController { Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null; // 消费者信息 -// Customer customer = customerService.selectByCustomerId(master.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(master.getCustomerId()); // 商品规格及信息 List 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(master.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 financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); -// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { -// totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); -// } -// } -// totalPayMoney = totalPayMoney.add(totalChangeMoney); + // BigDecimal totalChangeMoney = new BigDecimal(0); + // for (OrderDetail detail: detailList) { + // // 查询子单加价记录 + // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); + // changeRecordQry.setOrderDetailId(detail.getId()); + // List 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; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -1360,11 +1394,15 @@ public class OrderMasterController extends BaseController { orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setPayMoney(totalPayMoney); -// orderListResponse.setChangeMoney(totalChangeMoney); + // orderListResponse.setChangeMoney(totalChangeMoney); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(master.getName())?master.getName():customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(master.getPhone())?master.getPhone():customerAddress.getPhone()); + orderListResponse.setCustomerName( + org.apache.commons.lang3.StringUtils.isNotEmpty(master.getName()) ? master.getName() + : customerAddress.getName()); + orderListResponse.setCustomerPhone( + org.apache.commons.lang3.StringUtils.isNotEmpty(master.getPhone()) ? master.getPhone() + : customerAddress.getPhone()); orderListResponse.setServerTime(master.getRevTime()); orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); @@ -1384,18 +1422,18 @@ public class OrderMasterController extends BaseController { }); -// PageDomain pageDomain = TableSupport.buildPageRequest(); -// if (null == pageDomain.getPageNum() || null == pageDomain.getPageSize()) { -// rspData.setRows(orderListResponses); -// rspData.setTotal(orderListResponses.size()); -// return rspData; -// } -// Integer pageSize = pageDomain.getPageNum(); -// if (pageSize > orderListResponses.size()) { -// pageSize = orderListResponses.size(); -// } -// rspData.setRows(orderListResponses.subList(0, pageSize)); -// rspData.setTotal(orderListResponses.size()); + // PageDomain pageDomain = TableSupport.buildPageRequest(); + // if (null == pageDomain.getPageNum() || null == pageDomain.getPageSize()) { + // rspData.setRows(orderListResponses); + // rspData.setTotal(orderListResponses.size()); + // return rspData; + // } + // Integer pageSize = pageDomain.getPageNum(); + // if (pageSize > orderListResponses.size()) { + // pageSize = orderListResponses.size(); + // } + // rspData.setRows(orderListResponses.subList(0, pageSize)); + // rspData.setTotal(orderListResponses.size()); return voDataTable(orderListResponses, list); } @@ -1405,9 +1443,11 @@ public class OrderMasterController extends BaseController { // 查所有售后的单 AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); - List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + List afterServiceRecordList = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); // 踢重后的子单ids - List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct() + .collect(Collectors.toList()); StringBuilder orderDetailIds = new StringBuilder(); OrderDetail orderDetail = new OrderDetail(); orderDetail.setCustomerId(orderMaster.getCustomerId()); @@ -1426,8 +1466,8 @@ public class OrderMasterController extends BaseController { StringBuilder orderMasterIds = new StringBuilder(); orderDetailList.stream().map(OrderDetail::getOrderMasterId).distinct() .collect(Collectors.toList()).forEach(id -> { - orderMasterIds.append(id).append(","); - }); + orderMasterIds.append(id).append(","); + }); String orderIds = orderMasterIds.toString(); if (StringUtils.isNotEmpty(orderIds)) { orderMaster.setOrderMasterIds(orderIds.substring(0, orderIds.length() - 1)); @@ -1446,10 +1486,12 @@ public class OrderMasterController extends BaseController { afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE); // 只查询售后纠纷的记录(客户不同意的记录) afterServiceRecord.setCustomerFinalCheck(0L); // 客户不同意 - List afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); - + List afterServiceRecordList = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); + // 踢重后的子单ids - List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); + List detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct() + .collect(Collectors.toList()); StringBuilder orderDetailIds = new StringBuilder(); OrderDetail orderDetail = new OrderDetail(); orderDetail.setCustomerId(orderMaster.getCustomerId()); @@ -1463,14 +1505,14 @@ public class OrderMasterController extends BaseController { } else { orderDetail.setOrderDetailIds("0"); } - + // 所有售后纠纷的子单 List orderDetailList = orderDetailService.selectOrderDetailList(orderDetail); StringBuilder orderMasterIds = new StringBuilder(); orderDetailList.stream().map(OrderDetail::getOrderMasterId).distinct() .collect(Collectors.toList()).forEach(id -> { - orderMasterIds.append(id).append(","); - }); + orderMasterIds.append(id).append(","); + }); String orderIds = orderMasterIds.toString(); if (StringUtils.isNotEmpty(orderIds)) { orderMaster.setOrderMasterIds(orderIds.substring(0, orderIds.length() - 1)); @@ -1486,28 +1528,28 @@ public class OrderMasterController extends BaseController { public AjaxResult getAfterServiceRecordsByMasterId(@RequestBody OrderMaster orderMaster) { try { logger.info("查询主单[{}]的售后纠纷记录", orderMaster.getId()); - + // 查询主单下的所有子单 OrderDetail orderDetail = new OrderDetail(); List orderDetailList = orderDetailService.selectByOrderMasterId(orderMaster.getId()); - + if (orderDetailList.isEmpty()) { logger.info("主单[{}]没有子单", orderMaster.getId()); return AjaxResult.success(new ArrayList<>()); } - + // 获取所有子单ID List orderDetailIds = orderDetailList.stream() .map(OrderDetail::getId) .collect(Collectors.toList()); - + logger.info("主单[{}]的子单IDs: {}", orderMaster.getId(), orderDetailIds); - + // 使用IN查询一次性获取所有售后纠纷记录 AfterServiceRecord queryRecord = new AfterServiceRecord(); queryRecord.setCustomerFinalCheck(0L); // 客户不同意 queryRecord.setExcludeAfterServiceFinished(Boolean.TRUE); // 排除已完成的售后 - + // 构建子单ID的IN查询条件 StringBuilder orderDetailIdsStr = new StringBuilder(); for (int i = 0; i < orderDetailIds.size(); i++) { @@ -1516,18 +1558,19 @@ public class OrderMasterController extends BaseController { } orderDetailIdsStr.append(orderDetailIds.get(i)); } - + // 设置子单ID列表用于IN查询 queryRecord.setOrderDetailIds(orderDetailIdsStr.toString()); - - List disputeRecords = afterServiceRecordService.selectAfterServiceRecordList(queryRecord); - + + List disputeRecords = afterServiceRecordService + .selectAfterServiceRecordList(queryRecord); + logger.info("主单[{}]的子单IDs: {},找到{}条售后纠纷记录", orderMaster.getId(), orderDetailIds, disputeRecords.size()); - + // 为每个售后记录添加子单信息 Map orderDetailMap = orderDetailList.stream() .collect(Collectors.toMap(OrderDetail::getId, detail -> detail)); - + disputeRecords.forEach(record -> { OrderDetail detail = orderDetailMap.get(record.getOrderDetailId()); if (detail != null) { @@ -1540,7 +1583,7 @@ public class OrderMasterController extends BaseController { logger.info("主单[{}]总共找到{}条售后纠纷记录", orderMaster.getId(), disputeRecords.size()); return AjaxResult.success(disputeRecords); - + } catch (Exception e) { logger.error("查询主单[{}]售后纠纷记录异常", orderMaster.getId(), e); return AjaxResult.error("查询售后纠纷记录失败:" + e.getMessage()); @@ -1552,17 +1595,18 @@ public class OrderMasterController extends BaseController { public AjaxResult getAfterServiceRecordsByDetailId(@RequestBody OrderDetail orderDetail) { try { logger.info("查询子单[{}]的售后纠纷记录", orderDetail.getId()); - + // 直接查询该子单的售后纠纷记录 AfterServiceRecord queryRecord = new AfterServiceRecord(); queryRecord.setOrderDetailId(orderDetail.getId()); queryRecord.setCustomerFinalCheck(0L); // 客户不同意 queryRecord.setExcludeAfterServiceFinished(Boolean.TRUE); // 排除已完成的售后 - - List disputeRecords = afterServiceRecordService.selectAfterServiceRecordList(queryRecord); - + + List disputeRecords = afterServiceRecordService + .selectAfterServiceRecordList(queryRecord); + logger.info("子单[{}]找到{}条售后纠纷记录", orderDetail.getId(), disputeRecords.size()); - + // 为每个售后记录添加子单信息 OrderDetail detail = orderDetailService.selectById(orderDetail.getId()); if (detail != null) { @@ -1572,7 +1616,7 @@ public class OrderMasterController extends BaseController { } return AjaxResult.success(disputeRecords); - + } catch (Exception e) { logger.error("查询子单[{}]售后纠纷记录异常", orderDetail.getId(), e); return AjaxResult.error("查询售后纠纷记录失败:" + e.getMessage()); @@ -1584,26 +1628,26 @@ public class OrderMasterController extends BaseController { public AjaxResult handleAfterServiceDispute(@RequestBody AfterServiceDisputeRequest request) { try { logger.info("处理售后纠纷退款,记录ID:{},退款金额:{}", request.getRecordId(), request.getRefundAmount()); - + // 查询售后记录 AfterServiceRecord record = afterServiceRecordService.selectAfterServiceRecordById(request.getRecordId()); if (record == null) { return AjaxResult.error("售后记录不存在"); } - + // 验证是否为售后纠纷(客户不同意) if (record.getCustomerFinalCheck() == null || !record.getCustomerFinalCheck().equals(0L)) { return AjaxResult.error("该记录不是售后纠纷,无法处理"); } - + // 设置退款金额 record.setRefund(request.getRefundAmount()); record.setAgreedRefund(request.getRefundAmount()); record.setRefundApplyTime(new Date()); - + // 更新售后记录 afterServiceRecordService.updateAfterServiceRecord(record); - + // 执行退款逻辑 try { afterServiceRecordService.executeRefundLogic(record); @@ -1613,7 +1657,7 @@ public class OrderMasterController extends BaseController { logger.error("售后纠纷退款执行失败,记录ID:{},错误:{}", request.getRecordId(), e.getMessage()); return AjaxResult.error("退款执行失败:" + e.getMessage()); } - + } catch (Exception e) { logger.error("处理售后纠纷异常,记录ID:{}", request.getRecordId(), e); return AjaxResult.error("处理售后纠纷失败:" + e.getMessage()); @@ -1635,13 +1679,14 @@ public class OrderMasterController extends BaseController { FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId()); // 计算总额 BigDecimal totalPayMoney = financialMaster.getPayMoney(); - BigDecimal leaderMoney= BigDecimal.ZERO; + BigDecimal leaderMoney = BigDecimal.ZERO; for (OrderDetail orderDetail : orderDetailList) { List standardList = new ArrayList<>(); // 子单施工师傅信息 Worker detailWorker = workerService.selectById(orderDetail.getWorkerId()); // 师傅实名信息 - WorkerCertification detailWorkerRealInfo = workerCertificationService.selectByWorkerId(orderDetail.getWorkerId()); + WorkerCertification detailWorkerRealInfo = workerCertificationService + .selectByWorkerId(orderDetail.getWorkerId()); // 子单商品规格及信息 List orderStandardList = orderGoodsService.selectByOrderDetailId(orderDetail.getId()); @@ -1649,7 +1694,8 @@ public class OrderMasterController extends BaseController { OrderStandard orderStandard = new OrderStandard(); orderStandard.setStandardName(orderGoods.getGoodsName()); orderStandard.setStandardNum(orderGoods.getGoodsNum()); - orderStandard.setServerNum(orderGoods.getServerGoodsNum() == null ? 0 : orderGoods.getServerGoodsNum()); + orderStandard + .setServerNum(orderGoods.getServerGoodsNum() == null ? 0 : orderGoods.getServerGoodsNum()); orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum()); standardList.add(orderStandard); } @@ -1670,39 +1716,42 @@ public class OrderMasterController extends BaseController { // 查询子单加价记录 FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); changeRecordQry.setOrderDetailId(orderDetail.getId()); - List financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); -// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { -// financialChangeRecord = financialChangeRecords.get(0); -// totalPayMoney = totalPayMoney.add(financialChangeRecord.getChangeMoney()); -// detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney()); -// } + List financialChangeRecords = financialChangeRecordService + .selectFinancialChangeRecordList(changeRecordQry); + // if (CollectionUtils.isNotEmpty(financialChangeRecords)) { + // financialChangeRecord = financialChangeRecords.get(0); + // totalPayMoney = totalPayMoney.add(financialChangeRecord.getChangeMoney()); + // detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney()); + // } OrderAttachmentRecord param = new OrderAttachmentRecord(); param.setOrderDetailId(orderDetail.getId()); - List orderAttachmentRecordList = orderAttachmentRecordService.selectOrderAttachmentRecordList(param); - BigDecimal addMoneyTotal= BigDecimal.ZERO; - String remark=null; - for (FinancialChangeRecord financialChangeRecord:financialChangeRecords){ - addMoneyTotal= addMoneyTotal.add(financialChangeRecord.getChangeMoney()); - if (StringUtils.isNotEmpty(financialChangeRecord.getRemark())){ - remark= financialChangeRecord.getRemark(); + List orderAttachmentRecordList = orderAttachmentRecordService + .selectOrderAttachmentRecordList(param); + BigDecimal addMoneyTotal = BigDecimal.ZERO; + String remark = null; + for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) { + addMoneyTotal = addMoneyTotal.add(financialChangeRecord.getChangeMoney()); + if (StringUtils.isNotEmpty(financialChangeRecord.getRemark())) { + remark = financialChangeRecord.getRemark(); } OrderAttachmentRecord param1 = new OrderAttachmentRecord(); param1.setFinancialChangeRecordId(financialChangeRecord.getId()); - BigDecimal attachmentMoney= BigDecimal.ZERO; - List orderAttachmentRecords=orderAttachmentRecordService.selectOrderAttachmentRecordList(param1); - if(orderAttachmentRecords!=null&&orderAttachmentRecords.size()>0){ - attachmentMoney= attachmentMoney.add(orderAttachmentRecords.get(0).getAttachMoney()); + BigDecimal attachmentMoney = BigDecimal.ZERO; + List orderAttachmentRecords = orderAttachmentRecordService + .selectOrderAttachmentRecordList(param1); + if (orderAttachmentRecords != null && orderAttachmentRecords.size() > 0) { + attachmentMoney = attachmentMoney.add(orderAttachmentRecords.get(0).getAttachMoney()); financialChangeRecord.setAttachmentMoney(attachmentMoney); } - if (financialChangeRecord.getPayStatus()==1){ - if (financialChangeRecord.getLeaderMoney().compareTo(BigDecimal.ZERO)>0){ - leaderMoney=leaderMoney.add(financialChangeRecord.getLeaderMoney()); + if (financialChangeRecord.getPayStatus() == 1) { + if (financialChangeRecord.getLeaderMoney().compareTo(BigDecimal.ZERO) > 0) { + leaderMoney = leaderMoney.add(financialChangeRecord.getLeaderMoney()); } } } - for (OrderAttachmentRecord orderAttachmentRecord:orderAttachmentRecordList){ - addMoneyTotal= addMoneyTotal.add(orderAttachmentRecord.getAttachMoney()); + for (OrderAttachmentRecord orderAttachmentRecord : orderAttachmentRecordList) { + addMoneyTotal = addMoneyTotal.add(orderAttachmentRecord.getAttachMoney()); } OrderStandardDetail orderStandardDetail = new OrderStandardDetail(); @@ -1718,7 +1767,9 @@ public class OrderMasterController extends BaseController { orderStandardDetail.setOrderDetailCode(orderDetail.getCode()); orderStandardDetail.setWorkBeginTime(orderDetail.getWorkBeginTime()); orderStandardDetail.setWorkFinishTime(orderDetail.getWorkFinishTime()); - orderStandardDetail.setWorkerName(detailWorkerRealInfo != null ?detailWorkerRealInfo.getSurname()+ detailWorkerRealInfo.getName() : detailWorker.getName()); + orderStandardDetail.setWorkerName(detailWorkerRealInfo != null + ? detailWorkerRealInfo.getSurname() + detailWorkerRealInfo.getName() + : detailWorker.getName()); orderStandardDetail.setWorkerPhone(detailWorker.getPhone()); orderStandardDetail.setRevTime(orderDetail.getRevTime()); orderStandardDetail.setExpectTimeStart(orderDetail.getExpectTimeStart()); @@ -1736,10 +1787,13 @@ public class OrderMasterController extends BaseController { orderStandardDetail.setServerMoney(financialMaster.getServerMoney()); AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); afterServiceRecord.setOrderDetailId(orderDetail.getId()); - List records = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); + List records = afterServiceRecordService + .selectAfterServiceRecordList(afterServiceRecord); orderStandardDetail.setAfterServiceRecordList(records); - orderStandardDetail.setIsOnlyServ(this.checkIsOnlyServer(orderMaster.getId(), orderDetail.getWorkerId()) ? Boolean.TRUE : Boolean.FALSE); + orderStandardDetail.setIsOnlyServ( + this.checkIsOnlyServer(orderMaster.getId(), orderDetail.getWorkerId()) ? Boolean.TRUE + : Boolean.FALSE); orderStandardDetail.setDrawCashStatus(orderDetail.getDrawCashStatus()); orderStandardDetail.setDrawCashTime(orderDetail.getDrawCashTime()); @@ -1765,7 +1819,8 @@ public class OrderMasterController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname()+workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() + : workerRealInfo.getSurname() + workerRealInfo.getName(); } String masterWorkerName = ""; String masterCompanyName = ""; @@ -1773,42 +1828,47 @@ public class OrderMasterController extends BaseController { if (masterWorker != null) { // 大师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - masterWorkerName = workerRealInfo == null ? masterWorker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + masterWorkerName = workerRealInfo == null ? masterWorker.getName() + : workerRealInfo.getSurname() + workerRealInfo.getName(); masterCompanyName = workerRealInfo == null ? null : workerRealInfo.getCompanyName(); } // 消费者信息 -// Customer customer = customerService.selectByCustomerId(orderMaster.getCustomerId()); + // Customer customer = + // customerService.selectByCustomerId(orderMaster.getCustomerId()); // 商品规格及信息 List 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(orderMaster.getGoodsId()); if (goods != null) { // 填充商品三级类目 - if(goods.getDeptGoodsCategoryId() != null){ + if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if(com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode())){ - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (com.ghy.common.utils.StringUtils.isEmpty(orderMaster.getOrderMode())) { + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } - }else { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + } else { + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .get(goods.getDeptGoodsCategoryId()); + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } } - if(categoryId != null){ + if (categoryId != null) { GoodsCategory one = goodsCategoryService.selectById(categoryId); - if(one != null && one.getParentCategoryId() != null){ + if (one != null && one.getParentCategoryId() != null) { GoodsCategory two = goodsCategoryService.selectById(one.getParentCategoryId()); - if(two != null && two.getParentCategoryId() != null){ + if (two != null && two.getParentCategoryId() != null) { GoodsCategory three = goodsCategoryService.selectById(two.getParentCategoryId()); - if(three != null){ + if (three != null) { orderListResponse.setTotalName(three.getGoodsCategoryName() + "-" + two.getGoodsCategoryName() + "-" + one.getGoodsCategoryName()); @@ -1825,9 +1885,9 @@ public class OrderMasterController extends BaseController { // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); SysArea sysArea; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -1850,12 +1910,12 @@ public class OrderMasterController extends BaseController { for (FinancialDetail financialDetail : financialDetailList) { finalRecvMoney = finalRecvMoney.add(financialDetail.getPayMoney()); } - BigDecimal serverMoney =BigDecimal.ZERO; - serverMoney=serverMoney.add(financialMaster.getServerMoney()); - serverMoney=serverMoney.add(leaderMoney); - logger.info("大师傅的服务金额{}大师傅的分成{}",serverMoney,leaderMoney); - Shop shop=shopService.getShop(goods.getShopId()); - Shop serviceShop=shopService.getShop(orderMaster.getServiceShopId()); + BigDecimal serverMoney = BigDecimal.ZERO; + serverMoney = serverMoney.add(financialMaster.getServerMoney()); + serverMoney = serverMoney.add(leaderMoney); + logger.info("大师傅的服务金额{}大师傅的分成{}", serverMoney, leaderMoney); + Shop shop = shopService.getShop(goods.getShopId()); + Shop serviceShop = shopService.getShop(orderMaster.getServiceShopId()); shop = calculateShopDistance(orderMaster, shop); // 编辑返回属性 orderListResponse.setDeliveryType(orderMaster.getDeliveryType()); @@ -1878,8 +1938,12 @@ public class OrderMasterController extends BaseController { orderListResponse.setWorkerId(worker == null ? null : worker.getWorkerId()); orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); + orderListResponse.setCustomerName( + org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() + : customerAddress.getName()); + orderListResponse.setCustomerPhone( + org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() + : customerAddress.getPhone()); orderListResponse.setOrderStatus(orderMaster.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); @@ -1904,7 +1968,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setMasterCompanyName(masterCompanyName); orderListResponse.setMasterWorkerPhone(masterWorker == null ? "" : masterWorker.getPhone()); orderListResponse.setMasterWorkerName(masterWorkerName); - if (StringUtils.isNotEmpty(orderMaster.getProvinceName())){ + if (StringUtils.isNotEmpty(orderMaster.getProvinceName())) { orderListResponse.setProvinceId(orderMaster.getProvinceId()); orderListResponse.setCityId(orderMaster.getCityId()); orderListResponse.setCountryId(orderMaster.getCountryId()); @@ -1916,16 +1980,16 @@ public class OrderMasterController extends BaseController { orderListResponse.setStreetId(orderMaster.getStreetId()); orderListResponse.setStreetName(orderMaster.getStreetName()); orderListResponse.setAddress(orderMaster.getAddress()); - }else{ - if (!StringUtils.isEmpty(customerAddress.getStreetId()+"")){ - String addressSysArea=sysArea.getMergerName(); + } else { + if (!StringUtils.isEmpty(customerAddress.getStreetId() + "")) { + String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); - if (array.length==3){ + if (array.length == 3) { orderListResponse.setCountryName(array[2]); } - if (array.length==4){ + if (array.length == 4) { orderListResponse.setStreetName(array[3]); } @@ -1939,7 +2003,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setName(customerAddress.getName()); } - logger.info("主单id{},主单数据1{}",request.getId(),orderListResponse); + logger.info("主单id{},主单数据1{}", request.getId(), orderListResponse); return AjaxResult.success(orderListResponse); } catch (Exception e) { @@ -1948,7 +2012,7 @@ public class OrderMasterController extends BaseController { } } -// @RequiresPermissions("order:master:list") + // @RequiresPermissions("order:master:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(OrderMaster orderMaster) { @@ -1957,13 +2021,13 @@ public class OrderMasterController extends BaseController { // 直接使用afterServiceStatus字段查询售后纠纷订单 orderMaster.setAfterServiceStatus(1); orderMaster.setOrderStatus(null); // 清除orderStatus条件,避免冲突 - } else if (orderMaster.getSearchAfterList() !=null && orderMaster.getSearchAfterList()) { + } else if (orderMaster.getSearchAfterList() != null && orderMaster.getSearchAfterList()) { // 保持原有的售后查询逻辑 List rows = this.afterList(orderMaster).getRows(); StringBuilder masterIds = new StringBuilder(); - if(CollectionUtils.isNotEmpty(rows)){ - rows.forEach(model->{ - OrderListResponse response = (OrderListResponse)model; + if (CollectionUtils.isNotEmpty(rows)) { + rows.forEach(model -> { + OrderListResponse response = (OrderListResponse) model; masterIds.append(response.getOrderMasterId()).append(","); }); } @@ -2009,15 +2073,15 @@ public class OrderMasterController extends BaseController { master.setCustomerName(customer.getName()); master.setCustomerPhone(customer.getPhone()); } - if(StringUtils.isNotEmpty(orderMaster.getOrderStatusName())){ + if (StringUtils.isNotEmpty(orderMaster.getOrderStatusName())) { master.setOrderStatusName(orderMaster.getOrderStatusName()); } - + // 如果数据库中的afterServiceStatus为null,则设置为0(无售后) if (master.getAfterServiceStatus() == null) { master.setAfterServiceStatus(0); } - + FinancialMaster fm = financialMasterMap.get(master.getId()); if (fm != null) { master.setFinancialMasterMoney(fm.getPayMoney()); @@ -2026,37 +2090,44 @@ public class OrderMasterController extends BaseController { OrderCallRecord orderCallRecordParam = new OrderCallRecord(); orderCallRecordParam.setOrderType("01"); orderCallRecordParam.setOrderId(master.getId()); - List orderCallRecords = orderCallRecordService.selectOrderCallRecordList(orderCallRecordParam); - if(CollectionUtils.isNotEmpty(orderCallRecords)){ - OrderCallRecord newOne = orderCallRecords.stream().sorted(Comparator.comparing(OrderCallRecord::getCallTime).reversed()).collect(Collectors.toList()).get(0); - master.setLastCallTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",newOne.getCallTime()) + " 拨号次数x" + orderCallRecords.size()); + List orderCallRecords = orderCallRecordService + .selectOrderCallRecordList(orderCallRecordParam); + if (CollectionUtils.isNotEmpty(orderCallRecords)) { + OrderCallRecord newOne = orderCallRecords.stream() + .sorted(Comparator.comparing(OrderCallRecord::getCallTime).reversed()) + .collect(Collectors.toList()).get(0); + master.setLastCallTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", newOne.getCallTime()) + " 拨号次数x" + + orderCallRecords.size()); } Goods good = goodsMap.get(master.getGoodsId()); if (good != null) { master.setGoods(good); // 填充商品三级类目 - if(good.getDeptGoodsCategoryId() != null){ + if (good.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if(com.ghy.common.utils.StringUtils.isEmpty(master.getOrderMode())){ - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(good.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (com.ghy.common.utils.StringUtils.isEmpty(master.getOrderMode())) { + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .selectOneByGoodsCategoryId(good.getDeptGoodsCategoryId()); + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } - }else { - DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(good.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + } else { + DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService + .get(good.getDeptGoodsCategoryId()); + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } } - if(categoryId != null){ + if (categoryId != null) { GoodsCategory one = goodsCategoryService.selectById(categoryId); - if(one != null && one.getParentCategoryId() != null){ + if (one != null && one.getParentCategoryId() != null) { GoodsCategory two = goodsCategoryService.selectById(one.getParentCategoryId()); - if(two != null && two.getParentCategoryId() != null){ + if (two != null && two.getParentCategoryId() != null) { GoodsCategory three = goodsCategoryService.selectById(two.getParentCategoryId()); - if(three != null){ - int totalNum = orderGoodsService.selectByOrderMasterId(master.getId()).stream().mapToInt(OrderGoods::getGoodsNum).sum(); + if (three != null) { + int totalNum = orderGoodsService.selectByOrderMasterId(master.getId()).stream() + .mapToInt(OrderGoods::getGoodsNum).sum(); master.setConsoleGoodsName("【" + three.getGoodsCategoryName() + "-" + two.getGoodsCategoryName() + "-" + one.getGoodsCategoryName() + "】x" + totalNum); @@ -2070,9 +2141,9 @@ public class OrderMasterController extends BaseController { CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId()); if (customerAddress != null) { SysArea sysArea; - if(customerAddress.getStreetId() != null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } @@ -2081,22 +2152,23 @@ public class OrderMasterController extends BaseController { master.setAddressPhone(customerAddress.getPhone()); master.setAddress(completeAddress); } - if(master.getExpectTimeStart() != null && master.getExpectTimeEnd() != null){ - master.setMixExpectTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm",master.getExpectTimeStart()) +"-"+ DateUtils.parseDateToStr("HH:mm",master.getExpectTimeEnd())); + if (master.getExpectTimeStart() != null && master.getExpectTimeEnd() != null) { + master.setMixExpectTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm", master.getExpectTimeStart()) + "-" + + DateUtils.parseDateToStr("HH:mm", master.getExpectTimeEnd())); } - if("01".equals(master.getConsultMode())){ + if ("01".equals(master.getConsultMode())) { master.setOrderMode("05"); } else if (StringUtils.isEmpty(master.getOrderMode())) { master.setOrderMode("01"); } List details = orderDetailService.selectByOrderMasterId(master.getId()); StringBuilder stringBuilder = new StringBuilder(); - details.forEach(model->{ + details.forEach(model -> { GoodsImgs param = new GoodsImgs(); param.setRemark(String.valueOf(model.getId())); param.setImgType(ImgType.FINISH_IMG.getId()); List imgsList = goodsImgsService.qryGoodsImgs(param); - imgsList.forEach(imgs->{ + imgsList.forEach(imgs -> { stringBuilder.append("查看图片"); }); }); @@ -2106,7 +2178,7 @@ public class OrderMasterController extends BaseController { } @Log(title = "主订单管理", businessType = BusinessType.EXPORT) -// @RequiresPermissions("order:master:export") + // @RequiresPermissions("order:master:export") @PostMapping("/export") @ResponseBody public AjaxResult export(OrderMaster orderMaster) { @@ -2115,7 +2187,7 @@ public class OrderMasterController extends BaseController { return util.exportExcel(list, "主订单数据"); } -// @RequiresPermissions("order:master:remove") + // @RequiresPermissions("order:master:remove") @Log(title = "主订单管理", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody @@ -2130,7 +2202,7 @@ public class OrderMasterController extends BaseController { /** * 修改主订单 */ -// @RequiresPermissions("order:master:edit") + // @RequiresPermissions("order:master:edit") @GetMapping("/edit/{orderMasterId}") public String edit(@PathVariable("orderMasterId") Long orderMasterId, ModelMap mmap) { mmap.put("orderMaster", orderMasterService.selectById(orderMasterId)); @@ -2140,18 +2212,19 @@ public class OrderMasterController extends BaseController { /** * 修改保存主订单 */ -// @RequiresPermissions("order:master:edit") + // @RequiresPermissions("order:master:edit") @Log(title = "主订单管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(@Validated OrderMaster orderMaster) throws BaseAdaPayException { try { - if (UserConstants.ORDER_CODE_NOT_UNIQUE.equals(orderMasterService.checkOrderMasterCodeUnique(orderMaster))) { + if (UserConstants.ORDER_CODE_NOT_UNIQUE + .equals(orderMasterService.checkOrderMasterCodeUnique(orderMaster))) { return error("修改主订单'" + orderMaster.getCode() + "'失败,主订单编码已存在"); } orderMaster.setUpdateBy(getLoginName()); return toAjax(orderMasterService.updateOrderMaster(orderMaster)); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); logger.error("修改订单信息失败:" + e.getMessage()); return AjaxResult.error(); @@ -2168,21 +2241,21 @@ public class OrderMasterController extends BaseController { try { int result = orderMasterService.updateOrderMaster(orderMaster); // 下单 - if(orderMaster.getOrderStatus() != null && OrderStatus.PLAIN.code() == orderMaster.getOrderStatus()){ + if (orderMaster.getOrderStatus() != null && OrderStatus.PLAIN.code() == orderMaster.getOrderStatus()) { OrderMaster model = orderMasterService.selectById(orderMaster.getId()); -// try { -// if(model.getInsuranceId()!=null){ -// insuranceService.orderInsurance(model.getCode()); -// } -// }catch (Exception e){ -// logger.error("下单报错:" + ExceptionUtils.getMessage(e)); -// return AjaxResult.error("保险正生成中,可能需几秒或几分钟,请稍等即可!若超半小时可联系发单方或平台!"); -// } + // try { + // if(model.getInsuranceId()!=null){ + // insuranceService.orderInsurance(model.getCode()); + // } + // }catch (Exception e){ + // logger.error("下单报错:" + ExceptionUtils.getMessage(e)); + // return AjaxResult.error("保险正生成中,可能需几秒或几分钟,请稍等即可!若超半小时可联系发单方或平台!"); + // } // 判断是否是在线支付订单--如果是在线支付,且未付款,则需要提示支付后接单 - if(PayTypeEnum.WX_LITE.getCode().equals(model.getPayType())){ + if (PayTypeEnum.WX_LITE.getCode().equals(model.getPayType())) { // 查询财务信息 FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(model.getId()); - if(!PayStatus.PAID.getCode().equals(financialMaster.getPayStatus())){ + if (!PayStatus.PAID.getCode().equals(financialMaster.getPayStatus())) { return AjaxResult.error("客户支付中,请稍后!待支付完成可接单!"); } } @@ -2206,7 +2279,7 @@ public class OrderMasterController extends BaseController { @ResponseBody @Transactional(rollbackFor = Exception.class) public AjaxResult editServingInfo(@RequestBody OrderMaster request) { - logger.info("另一处修改地址库的方法{}",request); + logger.info("另一处修改地址库的方法{}", request); try { // 更新期望时间 orderMasterService.updateOrderMaster(request); @@ -2234,7 +2307,7 @@ public class OrderMasterController extends BaseController { orderMaster.setTimeout(0); } int i = orderMasterService.updateOrderMaster(orderMaster); - if(i > 0){ + if (i > 0) { OrderCallRecord param = new OrderCallRecord(); param.setOrderId(orderMaster.getId()); param.setCallTime(new Date()); @@ -2270,7 +2343,7 @@ public class OrderMasterController extends BaseController { for (OrderDetail detail : orderDetails) { if (detail.getOrderStatus() == 6 || detail.getOrderStatus() == 0 || detail.getOrderStatus() == 1) { - }else { + } else { return AjaxResult.error("请详情内退单退款!"); } } @@ -2279,48 +2352,51 @@ public class OrderMasterController extends BaseController { } /* - * 主单退单 - * */ + * 主单退单 + */ @PostMapping("/console/cancel") @ResponseBody @Transactional(rollbackFor = Exception.class) public AjaxResult consoleCancel(@RequestBody OrderMaster orderMaster) { - if(orderMaster.getId() == null){ + if (orderMaster.getId() == null) { return AjaxResult.error("订单编码id不能为空!"); } - + // 判断该主单状态 OrderMaster orderMasterInfo = orderMasterService.selectById(orderMaster.getId()); - if(!orderMasterInfo.getOrderStatus().equals(OrderStatus.PLAIN.code()) && !orderMasterInfo.getOrderStatus().equals(OrderStatus.RECEIVE.code())){ + if (!orderMasterInfo.getOrderStatus().equals(OrderStatus.PLAIN.code()) + && !orderMasterInfo.getOrderStatus().equals(OrderStatus.RECEIVE.code())) { return AjaxResult.error("该订单处于无法退单状态!"); } - + // 含有子单 List orderDetails = orderDetailService.selectByOrderMasterId(orderMaster.getId()); - if(CollectionUtils.isNotEmpty(orderDetails)){ + if (CollectionUtils.isNotEmpty(orderDetails)) { return AjaxResult.error("该订单已经派发过子单,无法退单状态!"); } - + try { // 判断是否为服务订单且需要退还服务金额 - if (isServiceOrder(orderMasterInfo) && - orderMasterInfo.getGoodsOrderMasterId() != null && - orderMasterInfo.getServerGoodsMoney() != null && - orderMasterInfo.getServerGoodsMoney().compareTo(BigDecimal.ZERO) > 0) { - - logger.info("检测到服务订单退单,开始退还服务金额:订单[{}],金额[{}],目标商品订单[{}]", - orderMasterInfo.getId(), orderMasterInfo.getServerGoodsMoney(), orderMasterInfo.getGoodsOrderMasterId()); - + if (isServiceOrder(orderMasterInfo) && + orderMasterInfo.getGoodsOrderMasterId() != null && + orderMasterInfo.getServerGoodsMoney() != null && + orderMasterInfo.getServerGoodsMoney().compareTo(BigDecimal.ZERO) > 0) { + + logger.info("检测到服务订单退单,开始退还服务金额:订单[{}],金额[{}],目标商品订单[{}]", + orderMasterInfo.getId(), orderMasterInfo.getServerGoodsMoney(), + orderMasterInfo.getGoodsOrderMasterId()); + // 退还服务金额到商品订单 - refundServerMoneyToGoodsOrder(orderMasterInfo.getGoodsOrderMasterId(), orderMasterInfo.getServerGoodsMoney()); - + refundServerMoneyToGoodsOrder(orderMasterInfo.getGoodsOrderMasterId(), + orderMasterInfo.getServerGoodsMoney()); + // 重置配件主单的服务订单派发状态 OrderMaster goodsOrderUpdate = new OrderMaster(); goodsOrderUpdate.setId(orderMasterInfo.getGoodsOrderMasterId()); goodsOrderUpdate.setHasServiceOrder(0); // 重置为未派发状态 orderMasterService.updateOrderMaster(goodsOrderUpdate); } - + // 保存退单信息 OrderMaster returnOrderUpdate = new OrderMaster(); returnOrderUpdate.setId(orderMaster.getId()); @@ -2328,32 +2404,32 @@ public class OrderMasterController extends BaseController { returnOrderUpdate.setReturnReasonDetail(orderMaster.getReturnReasonDetail()); returnOrderUpdate.setReturnImages(orderMaster.getReturnImages()); orderMasterService.updateOrderMaster(returnOrderUpdate); - + // 清空id orderMasterService.removeWorker(orderMaster.getId()); // 更新状态待接单 orderMasterService.updateStatus(orderMaster.getId(), OrderStatus.RECEIVE.code()); - + return AjaxResult.success("退单成功"); - + } catch (Exception e) { logger.error("退单失败:订单ID={}, 错误信息={}", orderMaster.getId(), e.getMessage(), e); return AjaxResult.error("退单失败:" + e.getMessage()); } } - + /** * 判断是否为服务订单 */ private boolean isServiceOrder(OrderMaster orderMaster) { return orderMaster.getOrderType() != null && orderMaster.getOrderType() == 0; } - + /** * 服务订单退单时,退还服务金额给商品订单 * * @param goodsOrderMasterId 商品订单主单ID - * @param serverGoodsMoney 需要退还的服务金额 + * @param serverGoodsMoney 需要退还的服务金额 */ private void refundServerMoneyToGoodsOrder(Long goodsOrderMasterId, BigDecimal serverGoodsMoney) { try { @@ -2363,26 +2439,26 @@ public class OrderMasterController extends BaseController { logger.error("商品订单不存在,无法退还服务金额,goodsOrderMasterId={}", goodsOrderMasterId); throw new RuntimeException("商品订单不存在"); } - + // 2. 查询商品订单的财务记录 FinancialMaster goodsFinancial = financialMasterService.selectByOrderMasterId(goodsOrderMasterId); if (goodsFinancial == null) { logger.error("商品订单财务记录不存在,无法退还服务金额,goodsOrderMasterId={}", goodsOrderMasterId); throw new RuntimeException("商品订单财务记录不存在"); } - + // 3. 更新商品订单的可用金额(增加退还的服务金额) BigDecimal currentPayMoney = goodsFinancial.getPayMoney(); BigDecimal newPayMoney = currentPayMoney.add(serverGoodsMoney); - + goodsFinancial.setPayMoney(newPayMoney); financialMasterService.updateFinancialMaster(goodsFinancial); - + logger.info("服务订单退单成功,已退还{}元服务金额到商品订单[{}]", serverGoodsMoney, goodsOrderMasterId); - + } catch (Exception e) { - logger.error("退还服务金额失败:goodsOrderMasterId={}, serverGoodsMoney={}, error={}", - goodsOrderMasterId, serverGoodsMoney, e.getMessage(), e); + logger.error("退还服务金额失败:goodsOrderMasterId={}, serverGoodsMoney={}, error={}", + goodsOrderMasterId, serverGoodsMoney, e.getMessage(), e); throw new RuntimeException("退还服务金额失败:" + e.getMessage()); } } @@ -2419,16 +2495,18 @@ public class OrderMasterController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(detail.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() + : workerRealInfo.getSurname() + workerRealInfo.getName(); } // 查询子单加价记录 -// FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); -// changeRecordQry.setOrderDetailId(detail.getId()); -// List financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); -// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { -// totalMoney = totalMoney.add(financialChangeRecords.get(0).getChangeMoney()); -// } + // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); + // changeRecordQry.setOrderDetailId(detail.getId()); + // List financialChangeRecords = + // financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); + // if (CollectionUtils.isNotEmpty(financialChangeRecords)) { + // totalMoney = totalMoney.add(financialChangeRecords.get(0).getChangeMoney()); + // } OrderStandardDetail detailRes = new OrderStandardDetail(); detailRes.setOrderDetailId(detail.getId()); @@ -2497,7 +2575,7 @@ public class OrderMasterController extends BaseController { @ResponseBody public AjaxResult differentStatusOrderCount(OrderMaster orderMaster) { SysUser user = this.getSysUser(); - if(user != null && user.getRoles().get(0).getRoleId() == 101L ){ + if (user != null && user.getRoles().get(0).getRoleId() == 101L) { orderMaster.setCreateBy(this.getSysUser().getUserId().toString()); } return AjaxResult.success(orderMasterService.differentStatusOrderCount(orderMaster)); @@ -2506,7 +2584,7 @@ public class OrderMasterController extends BaseController { @GetMapping("/count") @ResponseBody public AjaxResult OrderMasterCount(OrderMaster orderMaster) { - if(this.getSysUser() != null && this.getSysUser().getRoles().get(0).getRoleId() == 101L){ + if (this.getSysUser() != null && this.getSysUser().getRoles().get(0).getRoleId() == 101L) { orderMaster.setCreateBy(this.getSysUser().getUserId().toString()); } return AjaxResult.success(orderMasterService.countOrderMasterList(orderMaster)); @@ -2526,7 +2604,6 @@ public class OrderMasterController extends BaseController { return AjaxResult.success(orderMasterService.orderStatisticsReturn()); } - @PostMapping("/updateMasterAddress") @ResponseBody public AjaxResult updateMasterAddress(@RequestBody OrderMaster orderMaster) { @@ -2534,22 +2611,21 @@ public class OrderMasterController extends BaseController { return toAjax(orderMasterService.updateOrderMasterAddressById(orderMaster)); } - /** * 保存主单师傅备注 */ @PostMapping("/saveMasterWorkerRemark") - @ResponseBody + @ResponseBody public AjaxResult saveMasterWorkerRemark(@RequestBody OrderMaster orderMaster) { try { if (orderMaster.getWorkerRemark() == null || orderMaster.getWorkerRemark().trim().isEmpty()) { return AjaxResult.error("师傅备注不能为空"); } - + if (orderMaster.getId() == null) { return AjaxResult.error("主单ID不能为空"); } - + int result = orderMasterService.saveMasterWorkerRemark(orderMaster.getId(), orderMaster.getWorkerRemark()); if (result > 0) { return AjaxResult.success("主单师傅备注保存成功"); @@ -2562,20 +2638,20 @@ public class OrderMasterController extends BaseController { } } - /** * 计算商家与主单地址之间的距离 + * * @param orderMaster 主单信息 - * @param shop 商家信息 + * @param shop 商家信息 * @return 带有距离信息的商家对象 */ private Shop calculateShopDistance(OrderMaster orderMaster, Shop shop) { try { // 直接使用主单地址获取经纬度 logger.info("使用主单地址获取经纬度"); - + StringBuilder fullAddress = new StringBuilder(); - + // 构建完整地址 if (orderMaster.getProvinceId() != null) { SysArea province = sysAreaService.selectById(orderMaster.getProvinceId()); @@ -2583,55 +2659,56 @@ public class OrderMasterController extends BaseController { fullAddress.append(province.getAreaName()); } } - + if (orderMaster.getCityId() != null) { SysArea city = sysAreaService.selectById(orderMaster.getCityId()); if (city != null) { fullAddress.append(city.getAreaName()); } } - + if (orderMaster.getCountryId() != null) { SysArea area = sysAreaService.selectById(orderMaster.getCountryId()); if (area != null) { fullAddress.append(area.getAreaName()); } } - + if (orderMaster.getStreetId() != null) { SysArea street = sysAreaService.selectById(orderMaster.getStreetId()); if (street != null) { fullAddress.append(street.getAreaName()); } } - + if (StringUtils.isNotEmpty(orderMaster.getAddress())) { fullAddress.append(orderMaster.getAddress()); } - + String addressStr = fullAddress.toString(); logger.info("构建的完整地址:{}", addressStr); - + if (StringUtils.isNotEmpty(addressStr)) { // 调用百度地图API获取经纬度 - Map coordinates = baiduMapUtils.getCoordinatesByAddress(shop.getProvinceName(), shop.getCityName(), shop.getCountryName(), shop.getStreetName(), addressStr); - - if (coordinates != null && coordinates.containsKey("longitude") && coordinates.containsKey("latitude")) { + Map coordinates = baiduMapUtils.getCoordinatesByAddress(shop.getProvinceName(), + shop.getCityName(), shop.getCountryName(), shop.getStreetName(), addressStr); + + if (coordinates != null && coordinates.containsKey("longitude") + && coordinates.containsKey("latitude")) { BigDecimal lng = new BigDecimal(coordinates.get("longitude").toString()); BigDecimal lat = new BigDecimal(coordinates.get("latitude").toString()); - + logger.info("通过地址获取到经纬度:longitude={}, latitude={}", lng, lat); - + // 计算距离 - if (shop.getLongitude() != null && shop.getLatitude() != null ) { - + if (shop.getLongitude() != null && shop.getLatitude() != null) { + double distance = LocationUtils.getDistanceInMeters( - lat.doubleValue(), - lng.doubleValue(), - shop.getLatitude().doubleValue(), - shop.getLongitude().doubleValue() - ); - + lat.doubleValue(), + lng.doubleValue(), + shop.getLatitude().doubleValue(), + shop.getLongitude().doubleValue()); + String formattedDistance = LocationUtils.formatDistance(distance); shop.setDistance(formattedDistance); logger.info("通过地址获取经纬度后计算距离成功,商家[{}]与主单地址距离:{}", shop.getShopName(), formattedDistance); @@ -2645,7 +2722,7 @@ public class OrderMasterController extends BaseController { } catch (Exception e) { logger.error("计算商家与主单地址距离时发生异常", e); } - + return shop; } } diff --git a/ghy-custom/src/main/java/com/ghy/customer/mapper/CustomerAddressMapper.java b/ghy-custom/src/main/java/com/ghy/customer/mapper/CustomerAddressMapper.java index 7289d34b..51c836c6 100644 --- a/ghy-custom/src/main/java/com/ghy/customer/mapper/CustomerAddressMapper.java +++ b/ghy-custom/src/main/java/com/ghy/customer/mapper/CustomerAddressMapper.java @@ -55,4 +55,11 @@ public interface CustomerAddressMapper { @Param("cityId") Long cityId, @Param("countryId") Long countryId, @Param("address") String address); + + /** + * 批量查询地址信息 + * @param customerAddressIds 地址ID列表 + * @return 地址列表 + */ + List selectByIds(@Param("customerAddressIds") List customerAddressIds); } diff --git a/ghy-custom/src/main/java/com/ghy/customer/service/CustomerAddressService.java b/ghy-custom/src/main/java/com/ghy/customer/service/CustomerAddressService.java index 8303811e..8830cea5 100644 --- a/ghy-custom/src/main/java/com/ghy/customer/service/CustomerAddressService.java +++ b/ghy-custom/src/main/java/com/ghy/customer/service/CustomerAddressService.java @@ -51,4 +51,11 @@ public interface CustomerAddressService { int updateCustomerAddress(CustomerAddress customerAddress); CustomerAddress selectByCustomerAndAddress(Long customerId, Long provinceId, Long cityId, Long countryId, String address); + + /** + * 批量查询地址信息 + * @param customerAddressIds 地址ID列表 + * @return 地址列表 + */ + List selectByIds(List customerAddressIds); } diff --git a/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerAddressServiceImpl.java b/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerAddressServiceImpl.java index ad3daf62..45f2156f 100644 --- a/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerAddressServiceImpl.java +++ b/ghy-custom/src/main/java/com/ghy/customer/service/impl/CustomerAddressServiceImpl.java @@ -95,6 +95,14 @@ public class CustomerAddressServiceImpl implements CustomerAddressService { public CustomerAddress selectByCustomerAndAddress(Long customerId, Long provinceId, Long cityId, Long countryId, String address) { return customerAddressMapper.selectByCustomerAndAddress(customerId, provinceId, cityId, countryId, address); } + + @Override + public List selectByIds(List customerAddressIds) { + if (customerAddressIds == null || customerAddressIds.isEmpty()) { + return null; + } + return customerAddressMapper.selectByIds(customerAddressIds); + } /** * 为地址设置经纬度信息 diff --git a/ghy-custom/src/main/resources/mapper/customer/CustomerAddressMapper.xml b/ghy-custom/src/main/resources/mapper/customer/CustomerAddressMapper.xml index 406e96e9..b9bac04a 100644 --- a/ghy-custom/src/main/resources/mapper/customer/CustomerAddressMapper.xml +++ b/ghy-custom/src/main/resources/mapper/customer/CustomerAddressMapper.xml @@ -161,4 +161,13 @@ where customer_address_id = #{customerAddressId} + + diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml index effa2ba6..2dfb1e5a 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml @@ -50,26 +50,26 @@ UPDATE goods - goods_name = #{goodsName}, - goods_desc = #{goodsDesc}, - goods_sort = #{goodsSort}, + goods_name = #{goodsName}, + goods_desc = #{goodsDesc}, + goods_sort = #{goodsSort}, dept_goods_category_id = #{deptGoodsCategoryId}, - goods_img_url = #{goodsImgUrl}, - goods_video_url = #{goodsVideoUrl}, + goods_img_url = #{goodsImgUrl}, + goods_video_url = #{goodsVideoUrl}, `status` = #{status}, remark = #{remark}, - goods_unit = #{goodsUnit}, - warranty_period = #{warrantyPeriod}, - serv_activity = #{servActivity}, - expect_duration = #{expectDuration}, - update_by = #{updateBy}, - area_desc = #{areaDesc}, + goods_unit = #{goodsUnit}, + warranty_period = #{warrantyPeriod}, + serv_activity = #{servActivity}, + expect_duration = #{expectDuration}, + update_by = #{updateBy}, + area_desc = #{areaDesc}, type = #{type}, store_service = #{storeService}, install_service = #{installService}, delivery_service = #{deliveryService}, - shop_id = #{shopId}, - shop_name = #{shopName}, + shop_id = #{shopId}, + shop_name = #{shopName}, update_time = sysdate() WHERE goods_id = #{goodsId} diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 12b55f5e..8a991cc1 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -292,6 +292,9 @@ and om.worker_id IS not NULL + + AND om.original_worker_id = #{originalWorkerId} + AND om.pay_mode = #{payMode} diff --git a/ghy-system/src/main/resources/mapper/system/SysAreaMapper.xml b/ghy-system/src/main/resources/mapper/system/SysAreaMapper.xml index 238ac6a3..6096dcf0 100644 --- a/ghy-system/src/main/resources/mapper/system/SysAreaMapper.xml +++ b/ghy-system/src/main/resources/mapper/system/SysAreaMapper.xml @@ -58,11 +58,7 @@