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/FakeFreightSettlementService.java          |   14 ++
 src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java        |    6 
 src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeFreightSettlement.java                    |  110 ++++++++++++++++++++++
 src/main/java/com/ruoyi/fakeWarehousing/controller/FakeFreightSettlementController.java    |   92 ++++++++++++++++++
 src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeFreightSettlementServiceImpl.java |   39 +++++++
 src/main/resources/mapper/fakeWarehousing/FakeFreightSettlementMapper.xml                  |   20 ++++
 src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeFreightSettlementMapper.java            |   11 ++
 7 files changed, 289 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java
index 6decb30..9309b81 100644
--- a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java
+++ b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java
@@ -10,9 +10,9 @@
 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 javax.annotation.Resource;
 import java.util.Arrays;
 
 /**
@@ -21,11 +21,11 @@
  */
 @Api(tags = "鍙戣揣璺熻釜绠$悊鎺ュ彛")
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("/fakeWarehousing/deliveryTrack")
 public class FakeDeliveryTrackController {
 
-    @Resource
-    private IFakeDeliveryTrackService fakeDeliveryTrackService;
+    private final IFakeDeliveryTrackService fakeDeliveryTrackService;
 
     /**
      * 鍒嗛〉鏌ヨ鍙戣揣璺熻釜鍒楄〃
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeFreightSettlementController.java b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeFreightSettlementController.java
new file mode 100644
index 0000000..a99623a
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/controller/FakeFreightSettlementController.java
@@ -0,0 +1,92 @@
+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.FakeFreightSettlement;
+import com.ruoyi.fakeWarehousing.service.FakeFreightSettlementService;
+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;
+
+/**
+ * 杩愯垂缁撶畻鍗曟帶鍒跺櫒
+ * 閫傞厤妗嗘灦缁熶竴杩斿洖R銆両Page鍒嗛〉銆佹瀯閫犲櫒娉ㄥ叆绛夎鑼�
+ *
+ * @author ruoyi
+ * @date 2026-01-30
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/fakeWarehousing/freightSettlement")
+@Api(tags = "杩愯垂缁撶畻鍗曠鐞�")
+public class FakeFreightSettlementController {
+
+    private final FakeFreightSettlementService fakeFreightSettlementService;
+
+    /**
+     * 鍒嗛〉鏌ヨ杩愯垂缁撶畻鍗曞垪琛�
+     *
+     * @param page 鍒嗛〉鍙傛暟
+     * @param settlement 鏌ヨ鏉′欢
+     * @return 鍒嗛〉缁撴灉
+     */
+    @GetMapping("/list")
+    @ApiOperation(value = "鍒嗛〉鏌ヨ杩愯垂缁撶畻鍗曞垪琛�", notes = "鍒嗛〉鏌ヨ杩愯垂缁撶畻鍗曞垪琛紝鏀寔澶氭潯浠舵ā绯婃煡璇�")
+    public IPage<FakeFreightSettlement> list(Page<FakeFreightSettlement> page, FakeFreightSettlement settlement) {
+        return fakeFreightSettlementService.selectFakeFreightSettlementPage(page, settlement);
+    }
+
+    /**
+     * 鏍规嵁缁撶畻ID鏌ヨ
+     *
+     * @param
+     * @return 缁撶畻鍗曡鎯�
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "鏍规嵁缁撶畻ID鏌ヨ", notes = "鏍规嵁缁撶畻ID鏌ヨ")
+    public R<FakeFreightSettlement> getById(@PathVariable Long id) {
+        return R.ok(fakeFreightSettlementService.getById(id));
+    }
+
+    /**
+     * 鏂板杩愯垂缁撶畻鍗�
+     *
+     * @param settlement 缁撶畻鍗曞疄浣擄紙鍚壙杩愬晢銆佸彂绁ㄧ瓑鏍稿績瀛楁锛�
+     * @return 鎿嶄綔缁撴灉
+     */
+    @Log(title = "鏂板杩愯垂缁撶畻鍗�", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "鏂板杩愯垂缁撶畻鍗�", notes = "鏂板杩愯垂缁撶畻鍗曪紝鑷姩鐢熸垚缁撶畻鍗曞彿")
+    public R add(@RequestBody FakeFreightSettlement settlement) {
+        return R.ok(fakeFreightSettlementService.save(settlement));
+    }
+
+    /**
+     * 淇敼杩愯垂缁撶畻鍗�
+     *
+     * @param settlement 缁撶畻鍗曞疄浣擄紙蹇呴』鍖呭惈缁撶畻鍗曞彿锛�
+     * @return 鎿嶄綔缁撴灉
+     */
+    @Log(title = "淇敼杩愯垂缁撶畻鍗�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "淇敼杩愯垂缁撶畻鍗�", notes = "淇敼杩愯垂缁撶畻鍗曪紝浠呭緟缁撶畻鐘舵�佸彲缂栬緫")
+    public R edit(@RequestBody FakeFreightSettlement settlement) {
+        return R.ok(fakeFreightSettlementService.updateById(settlement));
+    }
+
+    /**
+     * 鍒犻櫎杩愯垂缁撶畻鍗曪紙鏀寔鍗曟潯/澶氭潯鍒犻櫎锛�
+     */
+    @Log(title = "鍒犻櫎杩愯垂缁撶畻鍗�", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    @ApiOperation(value = "鍒犻櫎杩愯垂缁撶畻鍗�", notes = "鍒犻櫎杩愯垂缁撶畻鍗曪紙鏀寔鍗曟潯/澶氭潯锛夛紝浠呭緟缁撶畻鐘舵�佸彲鍒犻櫎")
+    public R remove(@PathVariable Long[] ids) {
+        return R.ok(fakeFreightSettlementService.removeByIds(Arrays.asList(ids)));
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeFreightSettlementMapper.java b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeFreightSettlementMapper.java
new file mode 100644
index 0000000..91a05cd
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeFreightSettlementMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.fakeWarehousing.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeFreightSettlement;
+
+/**
+ * 杩愯垂缁撶畻鍗昅apper鎺ュ彛
+ */
+public interface FakeFreightSettlementMapper extends BaseMapper<FakeFreightSettlement> {
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeFreightSettlement.java b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeFreightSettlement.java
new file mode 100644
index 0000000..e206dbe
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeFreightSettlement.java
@@ -0,0 +1,110 @@
+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.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 杩愯垂缁撶畻鍗�
+ */
+@Data
+@TableName("fake_freight_settle")
+public class FakeFreightSettlement implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缁撶畻鍗旾D锛堜富閿級
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "缁撶畻鍗旾D")
+    private Long id;
+
+    /**
+     * 缁撶畻鍗曞彿锛堜笟鍔″敮涓�鏍囪瘑锛�
+     */
+    @ApiModelProperty(value = "缁撶畻鍗曞彿")
+    private String settleNo;
+
+    // -------- 鎵胯繍鍟嗕俊鎭� --------
+    /**
+     * 鎵胯繍鍟嗗悕绉�
+     */
+    @ApiModelProperty(value = "鎵胯繍鍟嗗悕绉�")
+    private String carrierName;
+
+    // -------- 鍙戠エ淇℃伅 --------
+    /**
+     * 鍙戠エ鍙风爜
+     */
+    @ApiModelProperty(value = "鍙戠エ鍙风爜")
+    private String invoiceNo;
+
+    /**
+     * 鍙戠エ閲戦锛堝崟浣嶏細鍏冿紝楂樼簿搴︿繚鐣�2浣嶅皬鏁帮級
+     */
+    @ApiModelProperty(value = "鍙戠エ閲戦(鍏�)")
+    private BigDecimal invoiceAmt;
+
+    /**
+     * 寮�绁ㄦ棩鏈�
+     */
+    @ApiModelProperty(value = "寮�绁ㄦ棩鏈�")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate invoiceDate;
+
+    // -------- 缁撶畻鍔炵悊 --------
+    /**
+     * 缁撶畻閲戦锛堝崟浣嶏細鍏冿紝鍚屽彂绁ㄩ噾棰�/鎸夐渶璋冩暣锛屼繚鐣�2浣嶅皬鏁帮級
+     */
+    @ApiModelProperty(value = "缁撶畻閲戦(鍏�)")
+    private BigDecimal settleAmt;
+
+    /**
+     * 缁撶畻鐘舵�侊細0-寰呯粨绠楋紝1-宸茬粨绠�
+     */
+    @ApiModelProperty(value = "缁撶畻鐘舵�侊細0-寰呯粨绠楋紝1-宸茬粨绠�")
+    private Integer status;
+
+    /**
+     * 鍒涘缓鏃堕棿锛圡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/FakeFreightSettlementService.java b/src/main/java/com/ruoyi/fakeWarehousing/service/FakeFreightSettlementService.java
new file mode 100644
index 0000000..c0f7952
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/FakeFreightSettlementService.java
@@ -0,0 +1,14 @@
+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.FakeFreightSettlement;
+
+/**
+ * 杩愯垂缁撶畻鍗昐ervice鎺ュ彛
+ */
+public interface FakeFreightSettlementService extends IService<FakeFreightSettlement> {
+
+    IPage<FakeFreightSettlement> selectFakeFreightSettlementPage(Page<FakeFreightSettlement> page, FakeFreightSettlement settlement);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeFreightSettlementServiceImpl.java b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeFreightSettlementServiceImpl.java
new file mode 100644
index 0000000..e103786
--- /dev/null
+++ b/src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeFreightSettlementServiceImpl.java
@@ -0,0 +1,39 @@
+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.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.fakeWarehousing.mapper.FakeFreightSettlementMapper;
+import com.ruoyi.fakeWarehousing.pojo.FakeFreightSettlement;
+import com.ruoyi.fakeWarehousing.service.FakeFreightSettlementService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * 杩愯垂缁撶畻鍗昐ervice涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2026-01-30
+ */
+@Service
+@RequiredArgsConstructor
+public class FakeFreightSettlementServiceImpl extends ServiceImpl<FakeFreightSettlementMapper, FakeFreightSettlement>
+        implements FakeFreightSettlementService {
+
+    private final FakeFreightSettlementMapper fakeFreightSettlementMapper;
+
+    @Override
+    public IPage<FakeFreightSettlement> selectFakeFreightSettlementPage(Page<FakeFreightSettlement> page, FakeFreightSettlement settlement) {
+        LambdaQueryWrapper<FakeFreightSettlement> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (settlement != null && StringUtils.isNotBlank(settlement.getSettleNo())) {
+            lambdaQueryWrapper.like(FakeFreightSettlement::getSettleNo, settlement.getSettleNo());
+        }
+        if (settlement != null && StringUtils.isNotBlank(settlement.getCarrierName())) {
+            lambdaQueryWrapper.like(FakeFreightSettlement::getCarrierName, settlement.getCarrierName());
+        }
+        lambdaQueryWrapper.orderByDesc(FakeFreightSettlement::getCreateTime);
+        return fakeFreightSettlementMapper.selectPage(page, lambdaQueryWrapper);
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/mapper/fakeWarehousing/FakeFreightSettlementMapper.xml b/src/main/resources/mapper/fakeWarehousing/FakeFreightSettlementMapper.xml
new file mode 100644
index 0000000..6478814
--- /dev/null
+++ b/src/main/resources/mapper/fakeWarehousing/FakeFreightSettlementMapper.xml
@@ -0,0 +1,20 @@
+<?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.FakeFreightSettlementMapper">
+
+    <resultMap type="com.ruoyi.fakeWarehousing.pojo.FakeFreightSettlement" id="FakeFreightSettlementResult">
+        <id     column="id"           property="id"/>
+        <result column="settle_no"    property="settleNo"/>
+        <result column="carrier_name" property="carrierName"/>
+        <result column="invoice_no"   property="invoiceNo"/>
+        <result column="invoice_amt"  property="invoiceAmt"/>
+        <result column="invoice_date" property="invoiceDate"/>
+        <result column="settle_amt"   property="settleAmt"/>
+        <result column="status"       property="status"/>
+        <result column="create_time"  property="createTime"/>
+        <result column="update_time"  property="updateTime"/>
+        <result column="create_user"  property="createUser"/>
+        <result column="update_user"  property="updateUser"/>
+        <result column="tenant_id"    property="tenantId"/>
+    </resultMap>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3