From 4b6aadb9271a64fe49553072cb7a68ead97d0f84 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 30 一月 2026 15:56:49 +0800
Subject: [PATCH] 仓储物流(1.合同 2.订单 3.发货)
---
src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierContractMapper.java | 12
src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeDeliveryTrackMapper.java | 12
src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierOrderServiceImpl.java | 54 +++
src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeDeliveryTrackServiceImpl.java | 72 ++++
src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierOrderController.java | 96 +++++
src/main/resources/mapper/fakeWarehousing/FakeDeliveryTrackMapper.xml | 23 +
src/main/resources/mapper/fakeWarehousing/FakeCarrierContractMapper.xml | 23 +
src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierContractServiceImpl.java | 55 +++
src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeDeliveryTrack.java | 113 ++++++
src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierContractService.java | 12
src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierContractController.java | 95 +++++
src/main/resources/mapper/fakeWarehousing/FakeCarrierOrderMapper.xml | 25 +
src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierOrderMapper.java | 12
src/main/java/com/ruoyi/fakeWarehousing/dto/FakeCarrierOrderDto.java | 12
src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java | 96 +++++
src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierOrderService.java | 17 +
src/main/java/com/ruoyi/fakeWarehousing/dto/FakeDeliveryTrackDto.java | 18 +
src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierContract.java | 114 ++++++
src/main/java/com/ruoyi/fakeWarehousing/service/IFakeDeliveryTrackService.java | 23 +
src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierOrder.java | 123 +++++++
20 files changed, 1,007 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierContractController.java b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierContractController.java
new file mode 100644
index 0000000..916e15f
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierContractController.java
@@ -0,0 +1,95 @@
+package com.ruoyi.fakeWarehousing.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierContract;
+import com.ruoyi.fakeWarehousing.service.IFakeCarrierContractService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+
+/**
+ * 鎵胯繍鍚堝悓绠$悊Controller
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/fakeWarehousing")
+@Api(value = "fakeWarehousing", tags = "鎵胯繍鍚堝悓绠$悊Controller")
+public class FakeCarrierContractController {
+
+ private final IFakeCarrierContractService fakeCarrierContractService;
+
+ /**
+ * 鍒嗛〉鏌ヨ鎵胯繍鍚堝悓鍒楄〃
+ *
+ * @param contract 鏌ヨ鏉′欢
+ * @return 鍒嗛〉缁撴灉
+ */
+ @GetMapping("/list")
+ @ApiOperation(value = "鍒嗛〉鏌ヨ鎵胯繍鍚堝悓鍒楄〃", notes = "鍒嗛〉鏌ヨ鎵胯繍鍚堝悓鍒楄〃")
+ public IPage<FakeCarrierContract> list(Page<FakeCarrierContract> page, FakeCarrierContract contract) {
+ return fakeCarrierContractService.selectAll(page, contract);
+ }
+
+ /**
+ * 鏍规嵁ID鏌ヨ鎵胯繍鍚堝悓璇︽儏
+ *
+ * @param id 鍚堝悓涓婚敭ID
+ * @return 鍚堝悓璇︽儏
+ */
+ @GetMapping("/{id}")
+ @ApiOperation(value = "鏍规嵁ID鏌ヨ鎵胯繍鍚堝悓璇︽儏", notes = "鏍规嵁ID鏌ヨ鎵胯繍鍚堝悓璇︽儏")
+ public R<FakeCarrierContract> getInfo(@PathVariable Long id) {
+ return R.ok(fakeCarrierContractService.getById(id));
+ }
+
+ /**
+ * 鏂板鎵胯繍鍚堝悓
+ *
+ * @param contract 鍚堝悓瀹炰綋锛堝惈鍚堝悓缂栧彿銆佹壙杩愬晢淇℃伅绛夋牳蹇冨瓧娈碉級
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鏂板鎵胯繍鍚堝悓", businessType = BusinessType.INSERT)
+ @PostMapping
+ @ApiOperation(value = "鏂板鎵胯繍鍚堝悓", notes = "鏂板鎵胯繍鍚堝悓")
+ public R add(@RequestBody FakeCarrierContract contract) {
+ return R.ok(fakeCarrierContractService.save(contract));
+ }
+
+ /**
+ * 淇敼鎵胯繍鍚堝悓
+ *
+ * @param contract 鍚堝悓瀹炰綋锛堝繀椤诲寘鍚富閿甀D锛�
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "淇敼鎵胯繍鍚堝悓", businessType = BusinessType.UPDATE)
+ @PutMapping
+ @ApiOperation(value = "淇敼鎵胯繍鍚堝悓", notes = "淇敼鎵胯繍鍚堝悓")
+ public R edit(@RequestBody FakeCarrierContract contract) {
+ if (contract.getId() == null) {
+ return R.fail("淇敼澶辫触锛屽悎鍚孖D涓嶈兘涓虹┖");
+ }
+ return R.ok(fakeCarrierContractService.updateById(contract));
+ }
+
+ /**
+ * 鍒犻櫎鎵胯繍鍚堝悓锛堟敮鎸佸崟鏉�/澶氭潯鍒犻櫎锛�
+ *
+ * @param ids 鍚堝悓涓婚敭ID鏁扮粍
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鎵胯繍鍚堝悓绠$悊", businessType = BusinessType.DELETE)
+ @ApiOperation(value = "鎵胯繍鍚堝悓绠$悊", notes = "鎵胯繍鍚堝悓绠$悊")
+ @DeleteMapping("/{ids}")
+ public R remove(@PathVariable Long[] ids) {
+ return R.ok(fakeCarrierContractService.removeByIds(Arrays.asList(ids)));
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierOrderController.java b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierOrderController.java
new file mode 100644
index 0000000..4b7ca89
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeCarrierOrderController.java
@@ -0,0 +1,96 @@
+package com.ruoyi.fakeWarehousing.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.fakeWarehousing.dto.FakeCarrierOrderDto;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder;
+import com.ruoyi.fakeWarehousing.service.IFakeCarrierOrderService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+
+/**
+ * 鎵胯繍璁㈠崟绠$悊鎺у埗鍣�
+ * 鍩虹璺緞锛�/fakeWarehousing/order
+ */
+@Api(tags = "鎵胯繍璁㈠崟绠$悊鎺ュ彛")
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/fakeWarehousing/order")
+public class FakeCarrierOrderController {
+
+ private final IFakeCarrierOrderService fakeCarrierOrderService;
+
+ /**
+ * 鍒嗛〉鏌ヨ鎵胯繍璁㈠崟鍒楄〃
+ *
+ * @param page 鍒嗛〉鍙傛暟
+ * @param order 鏌ヨ鏉′欢
+ * @return 鍒嗛〉缁撴灉
+ */
+ @GetMapping("/list")
+ @ApiOperation(value = "鍒嗛〉鏌ヨ鎵胯繍璁㈠崟鍒楄〃", notes = "鍒嗛〉鏌ヨ鎵胯繍璁㈠崟鍒楄〃")
+ public IPage<FakeCarrierOrder> list(Page<FakeCarrierOrder> page, FakeCarrierOrderDto orderDto) {
+ return fakeCarrierOrderService.selectAll(page, orderDto);
+ }
+
+ /**
+ * 鏍规嵁ID鏌ヨ鎵胯繍璁㈠崟璇︽儏
+ *
+ * @param id 璁㈠崟涓婚敭ID
+ * @return 璁㈠崟璇︽儏
+ */
+ @GetMapping("/{id}")
+ @ApiOperation(value = "鏍规嵁ID鏌ヨ鎵胯繍璁㈠崟璇︽儏", notes = "鏍规嵁ID鏌ヨ鎵胯繍璁㈠崟璇︽儏")
+ public R<FakeCarrierOrder> getInfo(@PathVariable Long id) {
+ return R.ok(fakeCarrierOrderService.getById(id));
+ }
+
+ /**
+ * 鏂板鎵胯繍璁㈠崟
+ *
+ * @param order 璁㈠崟瀹炰綋锛堝惈璁㈠崟缂栧彿銆佹壙杩愬晢淇℃伅銆佺墿娴佷俊鎭瓑鏍稿績瀛楁锛�
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鏂板鎵胯繍璁㈠崟", businessType = BusinessType.INSERT)
+ @PostMapping
+ @ApiOperation(value = "鏂板鎵胯繍璁㈠崟", notes = "鏂板鎵胯繍璁㈠崟")
+ public R add(@RequestBody FakeCarrierOrder order) {
+ return R.ok(fakeCarrierOrderService.saveDetail(order));
+ }
+
+ /**
+ * 淇敼鎵胯繍璁㈠崟
+ *
+ * @param order 璁㈠崟瀹炰綋锛堝繀椤诲寘鍚富閿甀D锛�
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "淇敼鎵胯繍璁㈠崟", businessType = BusinessType.UPDATE)
+ @PutMapping
+ @ApiOperation(value = "淇敼鎵胯繍璁㈠崟", notes = "淇敼鎵胯繍璁㈠崟")
+ public R edit(@RequestBody FakeCarrierOrder order) {
+ if (order.getId() == null) {
+ return R.fail("淇敼澶辫触锛岃鍗旾D涓嶈兘涓虹┖");
+ }
+ return R.ok(fakeCarrierOrderService.updateById(order));
+ }
+
+ /**
+ * 鍒犻櫎鎵胯繍璁㈠崟锛堟敮鎸佸崟鏉�/澶氭潯鍒犻櫎锛�
+ *
+ * @param ids 璁㈠崟涓婚敭ID鏁扮粍
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鎵胯繍璁㈠崟绠$悊", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ @ApiOperation(value = "鍒犻櫎鎵胯繍璁㈠崟", notes = "鍒犻櫎鎵胯繍璁㈠崟锛堟敮鎸佸崟鏉�/澶氭潯锛�")
+ public R remove(@PathVariable Long[] ids) {
+ return R.ok(fakeCarrierOrderService.removeByIds(Arrays.asList(ids)));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java
new file mode 100644
index 0000000..6decb30
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java
@@ -0,0 +1,96 @@
+package com.ruoyi.fakeWarehousing.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.fakeWarehousing.dto.FakeDeliveryTrackDto;
+import com.ruoyi.fakeWarehousing.pojo.FakeDeliveryTrack;
+import com.ruoyi.fakeWarehousing.service.IFakeDeliveryTrackService;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+
+/**
+ * 鍙戣揣璺熻釜绠$悊鎺у埗鍣�
+ * 鍩虹璺緞锛�/fakeWarehousing/deliveryTrack
+ */
+@Api(tags = "鍙戣揣璺熻釜绠$悊鎺ュ彛")
+@RestController
+@RequestMapping("/fakeWarehousing/deliveryTrack")
+public class FakeDeliveryTrackController {
+
+ @Resource
+ private IFakeDeliveryTrackService fakeDeliveryTrackService;
+
+ /**
+ * 鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃
+ *
+ * @param page 鍒嗛〉鍙傛暟
+ * @param track 鏌ヨ鏉′欢
+ * @return 鍒嗛〉缁撴灉
+ */
+ @GetMapping("/list")
+ @ApiOperation(value = "鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃", notes = "鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃")
+ public IPage<FakeDeliveryTrack> list(Page<FakeDeliveryTrack> page, FakeDeliveryTrackDto trackDto) {
+ return fakeDeliveryTrackService.selectAll(page, trackDto);
+ }
+
+ /**
+ * 鏍规嵁ID鏌ヨ鍙戣揣璺熻釜璇︽儏
+ *
+ * @param id 鍙戣揣璺熻釜涓婚敭ID
+ * @return 鍙戣揣璺熻釜璇︽儏
+ */
+ @GetMapping("/{id}")
+ @ApiOperation(value = "鏍规嵁ID鏌ヨ鍙戣揣璺熻釜璇︽儏", notes = "鏍规嵁ID鏌ヨ鍙戣揣璺熻釜璇︽儏")
+ public R<FakeDeliveryTrack> getInfo(@PathVariable Long id) {
+ return R.ok(fakeDeliveryTrackService.getById(id));
+ }
+
+ /**
+ * 鏂板鍙戣揣璺熻釜璁板綍
+ *
+ * @param track 鍙戣揣璺熻釜瀹炰綋锛堝惈璁㈠崟鍏宠仈淇℃伅銆佸彂璐т俊鎭瓑鏍稿績瀛楁锛�
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鏂板鍙戣揣璺熻釜璁板綍", businessType = BusinessType.INSERT)
+ @PostMapping
+ @ApiOperation(value = "鏂板鍙戣揣璺熻釜璁板綍", notes = "鏂板鍙戣揣璺熻釜璁板綍")
+ public R add(@RequestBody FakeDeliveryTrack track) {
+ return R.ok(fakeDeliveryTrackService.saveDetail(track));
+ }
+
+ /**
+ * 淇敼鍙戣揣璺熻釜璁板綍
+ *
+ * @param track 鍙戣揣璺熻釜瀹炰綋锛堝繀椤诲寘鍚富閿甀D锛�
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "淇敼鍙戣揣璺熻釜璁板綍", businessType = BusinessType.UPDATE)
+ @PutMapping
+ @ApiOperation(value = "淇敼鍙戣揣璺熻釜璁板綍", notes = "淇敼鍙戣揣璺熻釜璁板綍")
+ public R edit(@RequestBody FakeDeliveryTrack track) {
+ if (track.getId() == null) {
+ return R.fail("淇敼澶辫触锛屽彂璐ц窡韪狪D涓嶈兘涓虹┖");
+ }
+ return R.ok(fakeDeliveryTrackService.updateById(track));
+ }
+
+ /**
+ * 鍒犻櫎鍙戣揣璺熻釜璁板綍锛堟敮鎸佸崟鏉�/澶氭潯鍒犻櫎锛�
+ *
+ * @param ids 鍙戣揣璺熻釜涓婚敭ID鏁扮粍
+ * @return 鎿嶄綔缁撴灉
+ */
+ @Log(title = "鍙戣揣璺熻釜绠$悊", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ @ApiOperation(value = "鍒犻櫎鍙戣揣璺熻釜璁板綍", notes = "鍒犻櫎鍙戣揣璺熻釜璁板綍锛堟敮鎸佸崟鏉�/澶氭潯锛�")
+ public R remove(@PathVariable Long[] ids) {
+ return R.ok(fakeDeliveryTrackService.removeByIds(Arrays.asList(ids)));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeCarrierOrderDto.java b/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeCarrierOrderDto.java
new file mode 100644
index 0000000..e83118a
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeCarrierOrderDto.java
@@ -0,0 +1,12 @@
+package com.ruoyi.fakeWarehousing.dto;
+
+import lombok.Data;
+
+@Data
+public class FakeCarrierOrderDto{
+
+ private String keyword;
+
+ private Integer orderStatus;
+
+}
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeDeliveryTrackDto.java b/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeDeliveryTrackDto.java
new file mode 100644
index 0000000..4d847ca
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/dto/FakeDeliveryTrackDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.fakeWarehousing.dto;
+
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+
+@Data
+public class FakeDeliveryTrackDto {
+
+ private String keyword;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate startDate;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate endDate;
+}
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierContractMapper.java b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierContractMapper.java
new file mode 100644
index 0000000..2b4d29c
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierContractMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.fakeWarehousing.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierContract;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鎵胯繍鍚堝悓绠$悊Mapper
+ */
+@Mapper
+public interface FakeCarrierContractMapper extends BaseMapper<FakeCarrierContract> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierOrderMapper.java b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierOrderMapper.java
new file mode 100644
index 0000000..2dece8e
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeCarrierOrderMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.fakeWarehousing.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鎵胯繍璁㈠崟绠$悊Mapper
+ */
+@Mapper
+public interface FakeCarrierOrderMapper extends BaseMapper<FakeCarrierOrder> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeDeliveryTrackMapper.java b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeDeliveryTrackMapper.java
new file mode 100644
index 0000000..a9d348d
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeDeliveryTrackMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.fakeWarehousing.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeDeliveryTrack;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鍙戣揣璺熻釜绠$悊Mapper
+ */
+@Mapper
+public interface FakeDeliveryTrackMapper extends BaseMapper<FakeDeliveryTrack> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierContract.java b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierContract.java
new file mode 100644
index 0000000..fa186af
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierContract.java
@@ -0,0 +1,114 @@
+package com.ruoyi.fakeWarehousing.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鎵胯繍鍚堝悓绠$悊瀹炰綋绫�
+ * 瑕嗙洊鍚堝悓鍒涘缓銆佹煡鐪嬨�佺淮鎶ゃ�佹洿鏀瑰叏娴佺▼鏍稿績瀛楁
+ */
+@Data
+@TableName("fake_carrier_contract")
+public class FakeCarrierContract implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 涓婚敭ID
+ */
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭ID")
+ private Long id;
+
+ /**
+ * 鍚堝悓缂栧彿
+ */
+ @ApiModelProperty(value = "鍚堝悓缂栧彿")
+ private String contractCode;
+
+ /**
+ * 鎵胯繍鍟咺D
+ */
+ @ApiModelProperty(value = "鎵胯繍鍟咺D")
+ private Long carrierId;
+
+ /**
+ * 鎵胯繍鍟嗗悕绉�
+ */
+ @ApiModelProperty(value = "鎵胯繍鍟嗗悕绉�")
+ private String carrierName;
+
+ /**
+ * 鍚堝悓鍚嶇О
+ */
+ @ApiModelProperty(value = "鍚堝悓鍚嶇О")
+ private String contractName;
+
+ /**
+ * 鍚堝悓鐘舵��
+ */
+ @ApiModelProperty(value = "鍚堝悓鐘舵��")
+ private Integer contractStatus;
+
+ /**
+ * 鍚堝悓寮�濮嬫椂闂�
+ */
+ @ApiModelProperty(value = "鍚堝悓寮�濮嬫椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime startTime;
+
+ /**
+ * 鍚堝悓缁撴潫鏃堕棿
+ */
+ @ApiModelProperty(value = "鍚堝悓缁撴潫鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime endTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ private String remark;
+
+ /**
+ * 鍒涘缓鑰�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "鍒涘缓鑰�")
+ private Integer createUser;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鑰�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty(value = "淇敼鑰�")
+ private Integer updateUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ private LocalDateTime updateTime;
+
+ /**
+ * 绉熸埛ID
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "绉熸埛ID")
+ private Long tenantId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierOrder.java b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierOrder.java
new file mode 100644
index 0000000..36fd354
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeCarrierOrder.java
@@ -0,0 +1,123 @@
+package com.ruoyi.fakeWarehousing.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 鎵胯繍璁㈠崟绠$悊瀹炰綋绫�
+ */
+@Data
+@TableName("fake_carrier_order")
+public class FakeCarrierOrder implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * 涓婚敭ID
+ */
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭ID")
+ private Long id;
+
+ /**
+ * 璁㈠崟缂栧彿锛堜笟鍔″敮涓�锛屽锛歍O-20260130-0001锛�
+ */
+ @ApiModelProperty(value = "璁㈠崟缂栧彿")
+ private String orderCode;
+
+ /**
+ * 鎵胯繍鍟咺D
+ */
+ @ApiModelProperty(value = "鎵胯繍鍟咺D")
+ private Long carrierId;
+
+ /**
+ * 鎵胯繍鍟嗗悕绉�
+ */
+ @ApiModelProperty(value = "鎵胯繍鍟嗗悕绉�")
+ private String carrierName;
+
+ /**
+ * 濮嬪彂鍦帮紙濡傦細涓婃捣-娴︿笢锛�
+ */
+ @ApiModelProperty(value = "濮嬪彂鍦�")
+ private String origin;
+
+ /**
+ * 鐩殑鍦帮紙濡傦細鑻忓窞-宸ヤ笟鍥尯锛�
+ */
+ @ApiModelProperty(value = "鐩殑鍦�")
+ private String destination;
+
+ /**
+ * 璐х墿閲嶉噺锛堝崟浣嶏細kg锛屼繚鐣�1浣嶅皬鏁帮級
+ */
+ @ApiModelProperty(value = "璐х墿閲嶉噺(kg)")
+ private BigDecimal weight;
+
+ /**
+ * 璐х墿浣撶Н锛堝崟浣嶏細m鲁锛屼繚鐣�2浣嶅皬鏁帮級
+ */
+ @ApiModelProperty(value = "璐х墿浣撶Н(m鲁)")
+ private BigDecimal volume;
+
+ /**
+ * 棰勪及杩愯垂锛堝崟浣嶏細鍏冿紝淇濈暀1浣嶅皬鏁帮級
+ */
+ @ApiModelProperty(value = "棰勪及杩愯垂(鍏�)")
+ private BigDecimal estimatedFee;
+
+ /**
+ * 璁㈠崟鐘舵�侊紙1-宸插垱寤�/寰呮淳鍙� 鍙牴鎹笟鍔℃墿灞曪細2-宸叉淳鍙� 3-杩愯緭涓� 4-宸插畬鎴� 5-宸插彇娑堬級
+ */
+ @ApiModelProperty(value = "璁㈠崟鐘舵�侊紙1-宸插垱寤�/寰呮淳鍙� 2-宸叉淳鍙� 3-杩愯緭涓� 4-宸插畬鎴� 5-宸插彇娑堬級")
+ private Integer orderStatus;
+
+ /**
+ * 澶囨敞锛堝锛氶渶鍥炲崟銆佹槗纰庡搧绛夛級
+ */
+ @ApiModelProperty(value = "澶囨敞")
+ private String remark;
+
+ /**
+ * 鍒涘缓鏃堕棿锛圡yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鏃堕棿锛圡yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ private LocalDateTime updateTime;
+
+ /**
+ * 鍒涘缓鑰咃紙鑻ヤ緷妗嗘灦锛孧yBatis-Plus鑷姩濉厖锛岀敤鎴稩D锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "鍒涘缓鑰�", hidden = true)
+ private Integer createUser;
+
+ /**
+ * 淇敼鑰咃紙鑻ヤ緷妗嗘灦锛孧yBatis-Plus鑷姩濉厖锛岀敤鎴稩D锛�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty(value = "淇敼鑰�", hidden = true)
+ private Integer updateUser;
+
+ /**
+ * 绉熸埛ID锛堝绉熸埛闅旂锛孧yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "绉熸埛ID", hidden = true)
+ private Long tenantId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeDeliveryTrack.java b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeDeliveryTrack.java
new file mode 100644
index 0000000..b2c600a
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeDeliveryTrack.java
@@ -0,0 +1,113 @@
+package com.ruoyi.fakeWarehousing.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鍙戣揣璺熻釜绠$悊瀹炰綋绫�
+ */
+@Data
+@TableName("fake_delivery_track")
+public class FakeDeliveryTrack implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭ID
+ */
+ @ApiModelProperty(value = "涓婚敭ID")
+ private Long id;
+
+ /**
+ * 鍏宠仈鎵胯繍璁㈠崟id
+ */
+ @ApiModelProperty(value = "鍏宠仈鎵胯繍璁㈠崟id")
+ private Long orderId;
+
+ /**
+ * 鍏宠仈鎵胯繍璁㈠崟缂栧彿
+ */
+ @ApiModelProperty(value = "鍏宠仈鎵胯繍璁㈠崟缂栧彿")
+ private String orderCode;
+
+ /**
+ * 鎵胯繍鍟嗗悕绉�
+ */
+ @ApiModelProperty(value = "鎵胯繍鍟嗗悕绉�")
+ private String carrierName;
+
+ /**
+ * 鍙戣揣鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "鍙戣揣鏃堕棿")
+ private LocalDateTime shipTime;
+
+ /**
+ * 杩愯緭杞﹁締杞︾墝鍙�
+ */
+ @ApiModelProperty(value = "杩愯緭杞﹁締杞︾墝鍙�")
+ private String vehicleNo;
+
+ /**
+ * 鍙告満濮撳悕
+ */
+ @ApiModelProperty(value = "鍙告満濮撳悕")
+ private String driverName;
+
+ /**
+ * 鍙告満鑱旂郴鐢佃瘽
+ */
+ @ApiModelProperty(value = "鍙告満鑱旂郴鐢佃瘽")
+ private String driverPhone;
+
+ /**
+ * 鍙戣揣澶囨敞
+ */
+ @ApiModelProperty(value = "鍙戣揣澶囨敞")
+ private String remark;
+
+ /**
+ * 鍒涘缓鏃堕棿锛圡yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鏃堕棿锛圡yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ private LocalDateTime updateTime;
+
+ /**
+ * 鍒涘缓鑰咃紙鑻ヤ緷妗嗘灦锛孧yBatis-Plus鑷姩濉厖锛岀敤鎴稩D锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "鍒涘缓鑰�", hidden = true)
+ private Integer createUser;
+
+ /**
+ * 淇敼鑰咃紙鑻ヤ緷妗嗘灦锛孧yBatis-Plus鑷姩濉厖锛岀敤鎴稩D锛�
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty(value = "淇敼鑰�", hidden = true)
+ private Integer updateUser;
+
+ /**
+ * 绉熸埛ID锛堝绉熸埛闅旂锛孧yBatis-Plus鑷姩濉厖锛�
+ */
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty(value = "绉熸埛ID", hidden = true)
+ private Long tenantId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierContractService.java b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierContractService.java
new file mode 100644
index 0000000..6f8e39f
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierContractService.java
@@ -0,0 +1,12 @@
+package com.ruoyi.fakeWarehousing.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierContract;
+
+public interface IFakeCarrierContractService extends IService<FakeCarrierContract> {
+
+ IPage<FakeCarrierContract> selectAll(Page<FakeCarrierContract> page, FakeCarrierContract contract);
+
+}
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierOrderService.java b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierOrderService.java
new file mode 100644
index 0000000..a711003
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeCarrierOrderService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.fakeWarehousing.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.fakeWarehousing.dto.FakeCarrierOrderDto;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder;
+
+/**
+ * 鎵胯繍璁㈠崟绠$悊Service鎺ュ彛
+ */
+public interface IFakeCarrierOrderService extends IService<FakeCarrierOrder> {
+
+ IPage<FakeCarrierOrder> selectAll(Page<FakeCarrierOrder> page, FakeCarrierOrderDto orderDto);
+
+ boolean saveDetail(FakeCarrierOrder order);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeDeliveryTrackService.java b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeDeliveryTrackService.java
new file mode 100644
index 0000000..4a370bf
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/IFakeDeliveryTrackService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.fakeWarehousing.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.fakeWarehousing.dto.FakeDeliveryTrackDto;
+import com.ruoyi.fakeWarehousing.pojo.FakeDeliveryTrack;
+
+/**
+ * 鍙戣揣璺熻釜绠$悊Service鎺ュ彛
+ */
+public interface IFakeDeliveryTrackService extends IService<FakeDeliveryTrack> {
+
+ /**
+ * 鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃
+ * @param page 鍒嗛〉鍙傛暟
+ * @param track 鏌ヨ鏉′欢
+ * @return 鍒嗛〉缁撴灉
+ */
+ IPage<FakeDeliveryTrack> selectAll(Page<FakeDeliveryTrack> page, FakeDeliveryTrackDto trackDto);
+
+ boolean saveDetail(FakeDeliveryTrack track);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierContractServiceImpl.java b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierContractServiceImpl.java
new file mode 100644
index 0000000..651718e
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierContractServiceImpl.java
@@ -0,0 +1,55 @@
+package com.ruoyi.fakeWarehousing.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.mapper.FakeCarrierContractMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierContract;
+import com.ruoyi.fakeWarehousing.service.IFakeCarrierContractService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+/**
+ * 鎵胯繍鍚堝悓绠$悊Service瀹炵幇绫�
+ */
+@Service
+@RequiredArgsConstructor
+public class FakeCarrierContractServiceImpl extends ServiceImpl<FakeCarrierContractMapper, FakeCarrierContract> implements IFakeCarrierContractService {
+
+ private final FakeCarrierContractMapper fakeCarrierContractMapper;
+
+ @Override
+ public IPage<FakeCarrierContract> selectAll(Page<FakeCarrierContract> page, FakeCarrierContract contract) {
+ LambdaQueryWrapper<FakeCarrierContract> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+ if (contract.getContractCode() != null && !contract.getContractCode().trim().isEmpty()) {
+ lambdaQueryWrapper.like(FakeCarrierContract::getContractCode, contract.getContractCode());
+ }
+
+ if (contract.getCarrierName() != null && !contract.getCarrierName().trim().isEmpty()) {
+ lambdaQueryWrapper.like(FakeCarrierContract::getCarrierName, contract.getCarrierName());
+ }
+
+ if (contract.getContractStatus() != null) {
+ lambdaQueryWrapper.eq(FakeCarrierContract::getContractStatus, contract.getContractStatus());
+ }
+
+ if (contract.getStartTime() != null) {
+ lambdaQueryWrapper.ge(FakeCarrierContract::getStartTime, contract.getStartTime());
+ }
+
+ if (contract.getEndTime() != null) {
+ LocalDateTime endTimeWithSecond = contract.getEndTime().with(LocalTime.MAX);
+ lambdaQueryWrapper.le(FakeCarrierContract::getEndTime, endTimeWithSecond);
+ }
+
+ lambdaQueryWrapper.orderByDesc(FakeCarrierContract::getCreateTime);
+
+ return fakeCarrierContractMapper.selectPage(page, lambdaQueryWrapper);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierOrderServiceImpl.java b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierOrderServiceImpl.java
new file mode 100644
index 0000000..016d698
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeCarrierOrderServiceImpl.java
@@ -0,0 +1,54 @@
+package com.ruoyi.fakeWarehousing.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.FakeCarrierOrderDto;
+import com.ruoyi.fakeWarehousing.mapper.FakeCarrierOrderMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder;
+import com.ruoyi.fakeWarehousing.service.IFakeCarrierOrderService;
+import lombok.RequiredArgsConstructor;
+import org.apache.poi.util.StringUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鎵胯繍璁㈠崟绠$悊Service瀹炵幇绫�
+ */
+@Service
+@RequiredArgsConstructor
+public class FakeCarrierOrderServiceImpl extends ServiceImpl<FakeCarrierOrderMapper, FakeCarrierOrder> implements IFakeCarrierOrderService {
+
+ private final FakeCarrierOrderMapper fakeCarrierOrderMapper;
+
+ @Override
+ public IPage<FakeCarrierOrder> selectAll(Page<FakeCarrierOrder> page, FakeCarrierOrderDto orderDto) {
+ LambdaQueryWrapper<FakeCarrierOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+ if (StringUtil.isNotBlank(orderDto.getKeyword())) {
+ lambdaQueryWrapper.and(wrapper -> wrapper
+ .like(FakeCarrierOrder::getOrderCode, orderDto.getKeyword())
+ .or()
+ .like(FakeCarrierOrder::getCarrierName, orderDto.getKeyword())
+ .or()
+ .like(FakeCarrierOrder::getOrigin, orderDto.getKeyword())
+ .or()
+ .like(FakeCarrierOrder::getDestination, orderDto.getKeyword())
+ );
+ }
+
+ if (orderDto.getOrderStatus() != null) {
+ lambdaQueryWrapper.eq(FakeCarrierOrder::getOrderStatus, orderDto.getOrderStatus());
+ }
+
+ lambdaQueryWrapper.orderByDesc(FakeCarrierOrder::getCreateTime);
+
+ return fakeCarrierOrderMapper.selectPage(page, lambdaQueryWrapper);
+ }
+
+ @Override
+ public boolean saveDetail(FakeCarrierOrder order) {
+ order.setOrderStatus(1);
+ return fakeCarrierOrderMapper.insert(order) > 0;
+ }
+}
\ No newline at end of file
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
diff --git a/src/main/resources/mapper/fakeWarehousing/FakeCarrierContractMapper.xml b/src/main/resources/mapper/fakeWarehousing/FakeCarrierContractMapper.xml
new file mode 100644
index 0000000..12239af
--- /dev/null
+++ b/src/main/resources/mapper/fakeWarehousing/FakeCarrierContractMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.fakeWarehousing.mapper.FakeCarrierContractMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.fakeWarehousing.pojo.FakeCarrierContract">
+ <id column="id" property="id" jdbcType="BIGINT"/>
+ <result column="contract_code" property="contractCode" jdbcType="VARCHAR"/>
+ <result column="carrier_id" property="carrierId" jdbcType="BIGINT"/>
+ <result column="carrier_name" property="carrierName" jdbcType="VARCHAR"/>
+ <result column="contract_name" property="contractName" jdbcType="VARCHAR"/>
+ <result column="contract_status" property="contractStatus" jdbcType="TINYINT"/>
+ <result column="start_time" property="startTime" jdbcType="TIMESTAMP"/>
+ <result column="end_time" property="endTime" jdbcType="TIMESTAMP"/>
+ <result column="remark" property="remark" jdbcType="VARCHAR"/>
+ <result column="create_user" property="createUser" jdbcType="INTEGER"/>
+ <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+ <result column="update_user" property="updateUser" jdbcType="INTEGER"/>
+ <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+ <result column="tenant_id" property="tenantId" jdbcType="BIGINT"/>
+ </resultMap>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/fakeWarehousing/FakeCarrierOrderMapper.xml b/src/main/resources/mapper/fakeWarehousing/FakeCarrierOrderMapper.xml
new file mode 100644
index 0000000..09f619e
--- /dev/null
+++ b/src/main/resources/mapper/fakeWarehousing/FakeCarrierOrderMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.fakeWarehousing.mapper.FakeCarrierOrderMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.fakeWarehousing.pojo.FakeCarrierOrder">
+ <id column="id" property="id" jdbcType="BIGINT"/>
+ <result column="order_code" property="orderCode" jdbcType="VARCHAR"/>
+ <result column="carrier_id" property="carrierId" jdbcType="BIGINT"/>
+ <result column="carrier_name" property="carrierName" jdbcType="VARCHAR"/>
+ <result column="origin" property="origin" jdbcType="VARCHAR"/>
+ <result column="destination" property="destination" jdbcType="VARCHAR"/>
+ <result column="weight" property="weight" jdbcType="DECIMAL"/>
+ <result column="volume" property="volume" jdbcType="DECIMAL"/>
+ <result column="estimated_fee" property="estimatedFee" jdbcType="DECIMAL"/>
+ <result column="order_status" property="orderStatus" jdbcType="INTEGER"/>
+ <result column="remark" property="remark" jdbcType="VARCHAR"/>
+ <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+ <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+ <result column="create_user" property="createUser" jdbcType="INTEGER"/>
+ <result column="update_user" property="updateUser" jdbcType="INTEGER"/>
+ <result column="tenant_id" property="tenantId" jdbcType="BIGINT"/>
+ </resultMap>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/fakeWarehousing/FakeDeliveryTrackMapper.xml b/src/main/resources/mapper/fakeWarehousing/FakeDeliveryTrackMapper.xml
new file mode 100644
index 0000000..015c72d
--- /dev/null
+++ b/src/main/resources/mapper/fakeWarehousing/FakeDeliveryTrackMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.fakeWarehousing.mapper.FakeDeliveryTrackMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.fakeWarehousing.pojo.FakeDeliveryTrack">
+ <id column="id" property="id" jdbcType="BIGINT"/>
+ <result column="order_id" property="orderId" jdbcType="BIGINT"/>
+ <result column="order_code" property="orderCode" jdbcType="VARCHAR"/>
+ <result column="carrier_name" property="carrierName" jdbcType="VARCHAR"/>
+ <result column="ship_time" property="shipTime" jdbcType="TIMESTAMP"/>
+ <result column="vehicle_no" property="vehicleNo" jdbcType="VARCHAR"/>
+ <result column="driver_name" property="driverName" jdbcType="VARCHAR"/>
+ <result column="driver_phone" property="driverPhone" jdbcType="VARCHAR"/>
+ <result column="remark" property="remark" jdbcType="VARCHAR"/>
+ <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+ <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+ <result column="create_user" property="createUser" jdbcType="INTEGER"/>
+ <result column="update_user" property="updateUser" jdbcType="INTEGER"/>
+ <result column="tenant_id" property="tenantId" jdbcType="BIGINT"/>
+ </resultMap>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3