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 list(Page page, FakeFreightSettlement settlement) { return fakeFreightSettlementService.selectFakeFreightSettlementPage(page, settlement); } /** * 根据结算ID查询 * * @param * @return 结算单详情 */ @GetMapping("/{id}") @ApiOperation(value = "根据结算ID查询", notes = "根据结算ID查询") public R 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))); } }