From d59b15c56925b5931edd0a989375696285e0358d Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Tue, 29 Jul 2025 08:34:57 +0800 Subject: [PATCH] no message --- .../web/controller/order/OrderController.java | 6 + .../order/OrderDetailController.java | 6 +- .../ghy/web/pojo/vo/OrderListResponse.java | 3 + .../com/ghy/common/utils/WechatMsgUtils.java | 8 +- .../ghy/order/service/OrderDetailService.java | 4 +- .../service/impl/OrderDetailServiceImpl.java | 117 ++++++++++++------ .../quartz/service/impl/OrderServiceImpl.java | 12 +- 7 files changed, 103 insertions(+), 53 deletions(-) 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 45ee43cc..bffe03a7 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 @@ -937,6 +937,7 @@ public class OrderController extends BaseController { orderDetail.setOrderStatus(OrderStatus.RECEIVE.code()); orderDetail.setWorkerId(request.getWorkerId()); orderDetail.setShelveStatus(0); + orderDetail.setOrderType(request.getOrderType()); Long newMasterOrderCount = orderMasterService.countOrderMasterList(orderMaster); Long newDetailOrderCount = orderDetailService.countOrderDetailList(orderDetail); // 统计新订单的单量 @@ -992,6 +993,7 @@ public class OrderController extends BaseController { orderDetail1.setDeptId(request.getDeptId()); orderDetail1.setWorkerId(request.getWorkerId()); orderDetail1.setShelveStatus(1); + orderDetail1.setOrderType(request.getOrderType()); response.setShelvedOrderNum(orderDetailService.countOrderDetailList(orderDetail1)); // 统计售后中单量 OrderListRequest orderListRequest = new OrderListRequest(); @@ -1000,6 +1002,7 @@ public class OrderController extends BaseController { orderListRequest.setIsMonitoredOrder(true); orderListRequest.setAllSelfAssigned(0); orderListRequest.setNeedImgs(false); + orderListRequest.setOrderType(request.getOrderType()); AjaxResult afterListRes = this.appMixAfterList(orderListRequest); List afterList = (List) afterListRes.get("data"); response.setAfterListNum(afterList.size()); @@ -1010,6 +1013,7 @@ public class OrderController extends BaseController { orderListRequest.setWorkerId(request.getWorkerId()); orderListRequest.setIsMonitoredOrder(true); orderListRequest.setNeedImgs(false); + orderListRequest.setOrderType(request.getOrderType()); response.setOverTimeOrderNum(this.appMixOrderCount(orderListRequest)); // 统计今日单量 LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); @@ -1055,6 +1059,7 @@ public class OrderController extends BaseController { // 增加主单下子单有超时的 OrderMaster param = new OrderMaster(); param.setWorkerId(orderListRequest.getWorkerId()); + param.setOrderType(orderListRequest.getOrderType()); List allOrderMaster = orderMasterService.selectOrderMasterList(param); if (CollectionUtils.isNotEmpty(allOrderMaster)) { OrderDetail countParam = new OrderDetail(); @@ -1690,6 +1695,7 @@ public class OrderController extends BaseController { orderListResponse.setIsInvoiced(master.getIsInvoiced()); orderListResponse.setOriginalWorkerId(master.getOriginalWorkerId()); + orderListResponse.setServerGoodsId(master.getServerGoodsId()); orderListResponse.setOrderType(master.getOrderType()); orderListResponse.setHasServiceOrder(master.getHasServiceOrder()); orderListResponse.setIsMonitoredOrder(condition); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index ae64c86d..9afb726d 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -1533,10 +1533,10 @@ public class OrderDetailController extends BaseController { @PostMapping("/app/delay") @ResponseBody @Transactional(rollbackFor = Exception.class) - public AjaxResult delayOrder(@RequestBody OrderDetail orderDetail) { - logger.info("延期到货,orderDetailId={}", orderDetail.getId()); + public AjaxResult delayOrder(@RequestBody OrderMaster orderMaster) { + logger.info("延期到货,orderDetailId={}", orderMaster.getId()); try { - return toAjax(orderDetailService.delayOrder(orderDetail.getId())); + return toAjax(orderDetailService.delayOrder(orderMaster.getId())); } catch (Exception e) { e.printStackTrace(); logger.error(ExceptionUtil.getExceptionMessage(e)); diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java index a89aa075..4c769d60 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java @@ -244,4 +244,7 @@ public class OrderListResponse { */ @Excel(name = "原师傅id", cellType = Excel.ColumnType.NUMERIC) private Long originalWorkerId; + + + private Long serverGoodsId; } diff --git a/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java b/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java index d5e61063..dbb674f6 100644 --- a/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java +++ b/ghy-common/src/main/java/com/ghy/common/utils/WechatMsgUtils.java @@ -78,10 +78,10 @@ public class WechatMsgUtils { paramMap.put("page", "index"); paramMap.put("template_id", mesType.getTempCode()); paramMap.put("url",""); - Map miniprogram=new HashMap<>(); - miniprogram.put("appid","wx105ce607b514ff2a"); - miniprogram.put("pagepath",wxStatusByWxMsgUrl); - paramMap.put("miniprogram",miniprogram); +// Map miniprogram=new HashMap<>(); +// miniprogram.put("appid","wx105ce607b514ff2a"); +// miniprogram.put("pagepath",wxStatusByWxMsgUrl); +// paramMap.put("miniprogram",miniprogram); JSONObject jsonObject = new JSONObject(); for (Map.Entry objectEntry : dataMap.entrySet()) { JSONObject model = new JSONObject(); diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java index ca37da8b..2482ceb6 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderDetailService.java @@ -210,10 +210,10 @@ public interface OrderDetailService { * 将confirm_start_time增加3天 * 延期次数最多2次 * - * @param orderDetailId 子订单ID + * @param orderMasterId 主订单ID * @return 成功条数 */ - int delayOrder(Long orderDetailId); + int delayOrder(Long orderMasterId); /** * 子订单退回 diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index f54425f6..05ea271b 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -41,6 +41,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.annotation.Order; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -1434,48 +1435,52 @@ public class OrderDetailServiceImpl implements OrderDetailService { return statisticsDTOByNow; } @Override - @Transactional(rollbackFor = Exception.class) - public int delayOrder(Long orderDetailId) { - // 查询订单信息 - OrderDetail orderDetail = orderDetailMapper.selectById(orderDetailId); - if (orderDetail == null) { - throw new BaseException("订单不存在"); - } + public int delayOrder(Long orderMasterId) { - // 检查延期次数 - Integer delayCount = orderDetail.getDelayCount(); - if (delayCount == null) { - delayCount = 0; - } - if (delayCount >= 2) { - throw new BaseException("延期次数已达上限,最多只能延期2次"); - } + List orderDetailList=orderDetailMapper.selectByOrderMasterId(orderMasterId); + int num=0; + for (OrderDetail orderDetail:orderDetailList){ + // 查询订单信息 + if (orderDetail == null) { + throw new BaseException("订单不存在"); + } - // 检查订单状态是否允许延期 - if (orderDetail.getOrderStatus() == null) { - throw new BaseException("订单状态异常"); + // 检查延期次数 + Integer delayCount = orderDetail.getDelayCount(); + if (delayCount == null) { + delayCount = 0; + } + if (delayCount >= 2) { + throw new BaseException("延期次数已达上限,最多只能延期2次"); + } + + // 检查订单状态是否允许延期 + if (orderDetail.getOrderStatus() == null) { + throw new BaseException("订单状态异常"); + } + + // 更新延期次数 + orderDetail.setDelayCount(delayCount + 1); + + // 处理confirm_start_time,增加3天 + Date confirmStartTime = orderDetail.getConfirmStartTime(); + if (confirmStartTime == null) { + confirmStartTime = new Date(); + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(confirmStartTime); + calendar.add(Calendar.DAY_OF_MONTH, 3); + orderDetail.setConfirmStartTime(calendar.getTime()); + + // 如果是待确认状态,则变为服务中 + if (OrderStatus.FINISH_CHECK.code()==orderDetail.getOrderStatus()) { + orderDetail.setOrderStatus(OrderStatus.SERVER.code()); + } + + // 更新订单 + num= orderDetailMapper.updateOrderDetail(orderDetail); } - - // 更新延期次数 - orderDetail.setDelayCount(delayCount + 1); - - // 处理confirm_start_time,增加3天 - Date confirmStartTime = orderDetail.getConfirmStartTime(); - if (confirmStartTime == null) { - confirmStartTime = new Date(); - } - Calendar calendar = Calendar.getInstance(); - calendar.setTime(confirmStartTime); - calendar.add(Calendar.DAY_OF_MONTH, 3); - orderDetail.setConfirmStartTime(calendar.getTime()); - - // 如果是待确认状态,则变为服务中 - if (OrderStatus.FINISH_CHECK.code()==orderDetail.getOrderStatus()) { - orderDetail.setOrderStatus(OrderStatus.SERVER.code()); - } - - // 更新订单 - return orderDetailMapper.updateOrderDetail(orderDetail); + return num; } @Override @@ -1483,6 +1488,8 @@ public class OrderDetailServiceImpl implements OrderDetailService { public int returnOrder(Long orderDetailId) { // 查询订单信息 OrderDetail orderDetail = orderDetailMapper.selectById(orderDetailId); + OrderMaster orderMaster=orderMasterMapper.selectById(orderDetail.getOrderMasterId()); + if (orderDetail == null) { throw new BaseException("订单不存在"); } @@ -1511,8 +1518,36 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 清除超时状态 orderDetail.setTimeout(0); + int num= orderDetailMapper.updateOrderDetail(orderDetail); + List orderDetailList=orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId()); + if (orderMaster.getOrderType()==0){ + Boolean bo= orderDetailList.stream() + .allMatch(subOrder -> + // 子单状态不为 null 且等于 1 + Objects.nonNull(subOrder.getOrderStatus()) && subOrder.getOrderStatus() == 3 + ); + if (bo){ + num= orderMasterMapper.updateStatus(orderMaster.getId(),3); + } + }else{ + Boolean bo= orderDetailList.stream() + .allMatch(subOrder -> + // 子单状态不为 null 且等于 1 + Objects.nonNull(subOrder.getOrderStatus()) && subOrder.getOrderStatus() == 1 + ); + if (bo){ + List idList = new ArrayList<>(); + idList.add(orderDetailId); + Long[] ids = idList.toArray(new Long[0]); + OrderMaster orderMaster1=new OrderMaster(); + orderMaster1.setHasDispatchedAll(0); + orderMaster1.setId(orderMaster.getId()); + orderMaster1.setOrderStatus(1); + num= orderMasterMapper.updateOrderMaster(orderMaster1); + orderDetailMapper.deleteOrderDetailByIds(ids); + } + } - // 更新订单 - return orderDetailMapper.updateOrderDetail(orderDetail); + return num; } } diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index 805bc227..c09e72db 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -790,7 +790,7 @@ public class OrderServiceImpl implements OrderService { tomorrow = LocalDateTime.of(LocalDate.now().plusDays(1), LocalTime.MAX); orderDetail.setExpectTimeEnd(Date.from(tomorrow.atZone(ZoneId.systemDefault()).toInstant())); long tomorrowNum =orderDetailService.countOrderDetailList(orderDetail); - log.info("明日单巡查超时数量{},超时师傅名称{}",num,worker.getName()); + log.info("明日单巡查超时数量{},超时师傅名称{}",tomorrowNum,worker.getName()); if (tomorrowNum>0){ log.info("订单[{}]明日订单通知", worker.getName()); try { @@ -1364,7 +1364,7 @@ public class OrderServiceImpl implements OrderService { log.error(e.getMessage(), e); } } - if (isInTimeRange(currentTime, oneHourTime.getHours(), oneHourTime.getMinutes())&&now.getDay()==oneHourTime.getDay()) { + if (isInTimeRange(currentTime, oneHourTime.getHours(), oneHourTime.getMinutes())&&isSameYearMonthDay(now,oneHourTime)) { log.info("订单[{}]约一小时上门服务", order.getId()); try { // 推送公众号通知数据。 @@ -1392,7 +1392,13 @@ public class OrderServiceImpl implements OrderService { } } - + public static boolean isSameYearMonthDay(Date date1, Date date2) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + // 格式化为本地时间的字符串(忽略时间部分) + String dateStr1 = sdf.format(date1); + String dateStr2 = sdf.format(date2); + return dateStr1.equals(dateStr2); + } @Override public void orderServerToFinishCheck() { List orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.SERVER.code()));