no message

This commit is contained in:
cb 2025-12-03 17:21:39 +08:00
parent 232509dc14
commit e66d6b56e9
6 changed files with 78 additions and 59 deletions

View File

@ -1249,9 +1249,11 @@ public class OrderController extends BaseController {
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetailReq);
long size = list.stream()
.filter(order -> order.getOrderStatus() != 6) // 先过滤状态不等于6的订单
.filter(order -> order.getOrderStatus() != 5)
.filter(order->order.getOrderType()==1&&order.getOrderStatus()!=OrderStatus.GOING.code())
.filter(order -> order.getOrderStatus() != 6) // 排除已取消的订单
.filter(order -> order.getOrderStatus() != 5) // 排除已完成的订单
// 排除商品订单中服务中(3)状态保留非商品订单或商品订单且状态 != 服务中
.filter(order -> order.getOrderType() != 1 ||
order.getOrderStatus() != OrderStatus.SERVER.code())
.count();
count += size;
logger.info("子单超时数量{}", count);
@ -1295,6 +1297,14 @@ public class OrderController extends BaseController {
orderMasterReq.setExceptOrderMasterIds(masterIdSet);
List<OrderMaster> masterList = orderMasterService.selectOrderMasterList(orderMasterReq);
allList.addAll(masterList);
allList=allList.stream()
.filter(order -> order.getOrderStatus() != 6) // 排除已取消的订单
.filter(order -> order.getOrderStatus() != 5) // 排除已完成的订单
// 排除商品订单中服务中(3)状态保留非商品订单或商品订单且状态 != 服务中
.filter(order -> order.getOrderType() != 1 ||
order.getOrderStatus() != OrderStatus.SERVER.code())
.filter(order -> order.getHasDispatchedAll()!=null&&order.getHasDispatchedAll()==0)
.collect(Collectors.toList());
List<Long> mateIds = allList.stream().map(OrderMaster::getId)
.collect(Collectors.toList());
// logger.info("查询符合条件的主单条件{}总数{}allList的数量{}allist的主单id{}", orderMasterReq, count, allList.size(), mateIds);

View File

@ -1234,9 +1234,11 @@ public class OrderDetailController extends BaseController {
e.printStackTrace();
}
}
orderDetail=orderDetailService.selectById(orderDetail.getId());
if (orderDetail.getIsQuicklyDelivery()!=null&&orderDetail.getIsQuicklyDelivery()==1) {
// 立即发货时更新订单商品的已发货数量
logger.info("立即发货订单[{}]开始更新商品已发货数量", orderDetail.getId());
orderDetail.setTimeout(0);
try {
// 获取子订单商品列表
List<OrderGoods> detailGoodsList = orderGoodsService.selectByOrderDetailId(orderDetail.getId());

View File

@ -111,41 +111,58 @@ public class WorkerAreaController extends BaseController {
byWorker = workerAreaService.getByWorker(workerId);
}
// 收集城市ID
Set<Long> cityIds = new HashSet<>();
// 收集只有cityId没有districtId的城市ID集合用于单独处理
Set<Long> cityOnlyIds = new HashSet<>();
// 按districtId分组收集cityIds
Map<Long, Set<Long>> districtCityMap = new HashMap<>();
for (WorkerArea area : byWorker){
List<String> ids;
if(countryMap.containsKey(area.getDistrictId())){
ids = countryMap.get(area.getDistrictId());
}else {
ids = new ArrayList<>();
}
Long districtId = area.getDistrictId();
// 收集城市ID
if (area.getCityId() != null) {
cityIds.add(area.getCityId());
}
// 如果有districtId按districtId分组处理
if (districtId != null) {
List<String> ids;
if(countryMap.containsKey(districtId)){
ids = countryMap.get(districtId);
} else {
ids = new ArrayList<>();
}
ids.add(String.valueOf(area.getStreetId()));
if (area.getDistrictId()!=null){
countryMap.put(area.getDistrictId(), ids);
// 收集该district下的城市ID
if (area.getCityId() != null) {
districtCityMap.computeIfAbsent(districtId, k -> new HashSet<>()).add(area.getCityId());
}
// 添加街道ID
if (area.getStreetId() != null) {
ids.add(String.valueOf(area.getStreetId()));
}
countryMap.put(districtId, ids);
} else {
// 如果只有cityId没有districtId收集到cityOnlyIds
if (area.getCityId() != null) {
cityOnlyIds.add(area.getCityId());
}
}
}
List<WorkerArea> result = new ArrayList<>();
// 处理有districtId的情况正常流程
for (Map.Entry<Long, List<String>> longListEntry : countryMap.entrySet()) {
WorkerArea model = new WorkerArea();
SysArea countryArea = sysAreaService.selectById(longListEntry.getKey());
Long districtId = longListEntry.getKey();
SysArea countryArea = sysAreaService.selectById(districtId);
model.setDistrictArea(countryArea);
SysArea cityArea = sysAreaService.selectById(Long.valueOf(countryArea.getParentCode()));
model.setCityArea(cityArea);
SysArea provinceArea = sysAreaService.selectById(Long.valueOf(cityArea.getParentCode()));
model.setProvinceArea(provinceArea);
// 需求2增加cityIds字段
List<Long> cityIdList = cityIds.stream()
.map(Long::valueOf)
.collect(Collectors.toList());
// 设置该district下的cityIds
Set<Long> districtCityIds = districtCityMap.getOrDefault(districtId, new HashSet<>());
List<Long> cityIdList = new ArrayList<>(districtCityIds);
model.setCityIds(cityIdList);
// 设置街道ID列表
@ -153,6 +170,24 @@ public class WorkerAreaController extends BaseController {
result.add(model);
}
// 处理只有cityId没有districtId的情况只返回省市信息
for (Long cityId : cityOnlyIds) {
WorkerArea model = new WorkerArea();
SysArea cityArea = sysAreaService.selectById(cityId);
model.setCityArea(cityArea);
// 获取省份信息
SysArea provinceArea = sysAreaService.selectById(Long.valueOf(cityArea.getParentCode()));
model.setProvinceArea(provinceArea);
// 只设置城市ID列表
List<Long> cityIdList = new ArrayList<>();
cityIdList.add(cityId);
model.setCityIds(cityIdList);
// 不设置district和street信息
result.add(model);
}
return AjaxResult.success(result);
}

View File

@ -195,6 +195,7 @@ public class AfterServiceTimeoutTask {
record.setCustomerFinalCheck(1L);
record.setIsAutoProcessed(1);
record.setRefundApplyTime(new Date());
record.setAfterServiceStatus(1);
// 更新记录
afterServiceRecordService.updateGoodsAfterServiceRecord(record);

View File

@ -288,7 +288,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
}
Assert.notNull(afterServiceRecord, "售后记录不存在!");
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
// 检查orderDetail是否为null避免NullPointerException
if (orderDetail == null) {
log.error("订单详情不存在售后记录ID{}订单详情ID{}", afterServiceRecord.getId(), afterServiceRecord.getOrderDetailId());
@ -602,6 +602,8 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
if (param.getWorkerReceiveConfirm() != null) {
afterServiceRecord.setWorkerReceiveConfirm(param.getWorkerReceiveConfirm());
}
afterServiceRecord.setUpdateTime(new Date());
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
Assert.notNull(afterServiceRecord, "售后记录不存在!");
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
boolean drawCash = orderDetail.getDrawCashTime() != null;
@ -658,37 +660,6 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
return AjaxResult.success("重做/补做完成状态已更新");
}
// 新增处理师傅反馈结果为0或1时设置redoCompleteTime为当前时间+36小时
// if (param.getWorkerFeedbackResult() != null && (param.getWorkerFeedbackResult().equals(0L) || param.getWorkerFeedbackResult().equals(1L))) {
// afterServiceRecord.setWorkerFeedbackResult(param.getWorkerFeedbackResult());
// // 设置当前时间推后36小时
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(new Date());
// calendar.add(Calendar.HOUR_OF_DAY, 36);
// afterServiceRecord.setRedoCompleteTime(calendar.getTime());
// // 处理师傅反馈相关字段
// if (param.getWorkerFeedbackReasonType() != null) {
// afterServiceRecord.setWorkerFeedbackReasonType(param.getWorkerFeedbackReasonType());
// }
// if (param.getWorkerFeedbackReason() != null) {
// afterServiceRecord.setWorkerFeedbackReason(param.getWorkerFeedbackReason());
// }
// if (param.getWorkerFeedbackImages() != null) {
// afterServiceRecord.setWorkerFeedbackImages(param.getWorkerFeedbackImages());
// }
// if (param.getAgreedRefund() != null) {
// afterServiceRecord.setAgreedRefund(param.getAgreedRefund());
// }
// if (param.getUpdateBy() != null) {
// afterServiceRecord.setUpdateBy(param.getUpdateBy());
// }
// afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
// log.info("商品售后-师傅反馈结果为{}记录ID{}redoCompleteTime设置为{}", param.getWorkerFeedbackResult(), param.getId(), afterServiceRecord.getRedoCompleteTime());
// return AjaxResult.success("师傅反馈结果已更新");
// }
// 新增处理师傅重发/补发方案
if (param.getWorkerResendPlan() != null) {
// 验证快递/物流方式必须提供单号
@ -824,7 +795,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
param.getId(), afterServiceRecord.getWorkerAgreeType());
}
} else {
} else if (afterServiceRecord.getCustomerFinalCheck() == null) {
afterServiceRecord.setCustomerFinalCheck(0L);
// 如果redoCompleteTime字段有值且师傅操作为0或1且客户不同意则将其设置为null
if (afterServiceRecord.getRedoCompleteTime() != null &&
@ -940,7 +911,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
afterServiceRecordMapper.updateAfterServiceRecord(param);
return drawCash ? AjaxResult.error("本单银联已确认货款结算完毕(订单支付完成),款项已到达或即将到达您所绑定帐户,需同意退款的同意后您线下与客户另行操作,系统无法提供原路返回退款!") : AjaxResult.success();
} else {
if(two.equals(param.getCustomerFinalCheck())){
if(two.equals(afterServiceRecord.getCustomerFinalCheck())){
// 客户不同意师傅的意见,如果订单是确认中,则需要将订单改为服务中
if(orderDetail.getOrderStatus() == OrderStatus.FINISH_CHECK.code() && orderDetail.getDrawCashTime()!= null ){
orderDetail.setOrderStatus(OrderStatus.SERVER.code());

View File

@ -322,7 +322,7 @@
OR
-- workerResendType为2或3送货上门/自提24小时倒计时
(worker_resend_type IN (2, 3) AND worker_resend_time &lt;= DATE_SUB(NOW(), INTERVAL 24 HOUR)
AND worker_resend_time &gt;= DATE_SUB(NOW(), INTERVAL 1440 MINUTE))
AND worker_resend_time &gt;= DATE_SUB(NOW(), INTERVAL 1800 MINUTE))
)
</select>