liding
2026-01-30 cd4fcbc4243ef3e4824f8ea4ac43f02a8902fae9
仓储物流(运费结算)
已添加6个文件
已修改1个文件
292 ■■■■■ 文件已修改
src/main/java/com/ruoyi/fakeWarehousing/controller/FakeDeliveryTrackController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/fakeWarehousing/controller/FakeFreightSettlementController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/fakeWarehousing/mapper/FakeFreightSettlementMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/fakeWarehousing/pojo/FakeFreightSettlement.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/fakeWarehousing/service/FakeFreightSettlementService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/fakeWarehousing/service/impl/FakeFreightSettlementServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/fakeWarehousing/FakeFreightSettlementMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    /**
     * åˆ†é¡µæŸ¥è¯¢å‘货跟踪列表
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、IPage分页、构造器注入等规范
 *
 * @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)));
    }
}
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;
/**
 * è¿è´¹ç»“算单Mapper接口
 */
public interface FakeFreightSettlementMapper extends BaseMapper<FakeFreightSettlement> {
}
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;
    /**
     * ç»“算单ID(主键)
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "结算单ID")
    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;
    /**
     * åˆ›å»ºæ—¶é—´ï¼ˆMyBatis-Plus自动填充)
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
    /**
     * ä¿®æ”¹æ—¶é—´ï¼ˆMyBatis-Plus自动填充)
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;
    /**
     * åˆ›å»ºè€…(若依框架,MyBatis-Plus自动填充,用户ID)
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建者", hidden = true)
    private Integer createUser;
    /**
     * ä¿®æ”¹è€…(若依框架,MyBatis-Plus自动填充,用户ID)
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改者", hidden = true)
    private Integer updateUser;
    /**
     * ç§Ÿæˆ·ID(多租户隔离,MyBatis-Plus自动填充)
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "租户ID", hidden = true)
    private Long tenantId;
}
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;
/**
 * è¿è´¹ç»“算单Service接口
 */
public interface FakeFreightSettlementService extends IService<FakeFreightSettlement> {
    IPage<FakeFreightSettlement> selectFakeFreightSettlementPage(Page<FakeFreightSettlement> page, FakeFreightSettlement settlement);
}
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;
/**
 * è¿è´¹ç»“算单Service业务层处理
 *
 * @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);
    }
}
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>