From cd4fcbc4243ef3e4824f8ea4ac43f02a8902fae9 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 30 一月 2026 16:59:54 +0800
Subject: [PATCH] 仓储物流(运费结算)

---
 src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeDeliveryTrackServiceImpl.java |   72 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeDeliveryTrackServiceImpl.java b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeDeliveryTrackServiceImpl.java
new file mode 100644
index 0000000..053ec68
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeDeliveryTrackServiceImpl.java
@@ -0,0 +1,72 @@
+package com.ruoyi.fakeWarehousing.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.fakeWarehousing.dto.FakeDeliveryTrackDto;
+import com.ruoyi.fakeWarehousing.mapper.FakeCarrierOrderMapper;
+import com.ruoyi.fakeWarehousing.mapper.FakeDeliveryTrackMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder;
+import com.ruoyi.fakeWarehousing.pojo.FakeDeliveryTrack;
+import com.ruoyi.fakeWarehousing.service.IFakeDeliveryTrackService;
+import lombok.RequiredArgsConstructor;
+import org.apache.poi.util.StringUtil;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+/**
+ * 鍙戣揣璺熻釜绠$悊Service瀹炵幇绫�
+ */
+@Service
+@RequiredArgsConstructor
+public class FakeDeliveryTrackServiceImpl extends ServiceImpl<FakeDeliveryTrackMapper, FakeDeliveryTrack>
+        implements IFakeDeliveryTrackService {
+
+    private final FakeCarrierOrderMapper fakeCarrierOrderMapper;
+
+    /**
+     * 鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃
+     * @param page 鍒嗛〉鍙傛暟
+     * @return 鍒嗛〉缁撴灉
+     */
+    @Override
+    public IPage<FakeDeliveryTrack> selectAll(Page<FakeDeliveryTrack> page, FakeDeliveryTrackDto fakeDeliveryTrackDto) {
+        LambdaQueryWrapper<FakeDeliveryTrack> wrapper = new LambdaQueryWrapper<>();
+
+        // 1. 鍏抽敭瀛梜eyword锛氭ā绯婂尮閰嶆壙杩愬晢鍚嶇О銆佽溅鐗屽彿銆佽鍗曠紪鍙凤紙浠绘剰涓�涓尮閰嶏級
+        if (StringUtil.isNotBlank(fakeDeliveryTrackDto.getKeyword())) {
+            wrapper.and(w -> w.like(FakeDeliveryTrack::getCarrierName, fakeDeliveryTrackDto.getKeyword())
+                    .or().like(FakeDeliveryTrack::getVehicleNo, fakeDeliveryTrackDto.getKeyword())
+                    .or().like(FakeDeliveryTrack::getOrderCode, fakeDeliveryTrackDto.getKeyword()));
+        }
+
+        // 2. 鍙戣揣鏃堕棿shipTime锛氬尮閰峀ocalDate[startDate, endDate]鏃堕棿鑼冨洿锛堟牳蹇冮�傞厤閫昏緫锛�
+        LocalDate startDate = fakeDeliveryTrackDto.getStartDate();
+        LocalDate endDate = fakeDeliveryTrackDto.getEndDate();
+        if (startDate != null) {
+            LocalDateTime startDateTime = LocalDateTime.of(startDate, LocalTime.MIN);
+            wrapper.ge(FakeDeliveryTrack::getShipTime, startDateTime);
+        }
+        if (endDate != null) {
+            LocalDateTime endDateTime = LocalDateTime.of(endDate, LocalTime.MAX);
+            wrapper.le(FakeDeliveryTrack::getShipTime, endDateTime);
+        }
+
+        wrapper.orderByDesc(FakeDeliveryTrack::getShipTime);
+
+        return baseMapper.selectPage(page, wrapper);
+    }
+
+    @Override
+    public boolean saveDetail(FakeDeliveryTrack track) {
+        fakeCarrierOrderMapper.update(null, new LambdaUpdateWrapper<FakeCarrierOrder>()
+                .eq(FakeCarrierOrder::getId, track.getOrderId())
+                .set(FakeCarrierOrder::getOrderStatus, 2));
+        return baseMapper.insert(track) > 0;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3