You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
warehouse/src/main/java/com/yeqifu/bus/controller/SalesbackController.java

183 lines
6.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.yeqifu.bus.controller;
// 声明类所在的包
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 导入QueryWrapper类用于构建查询条件
import com.baomidou.mybatisplus.core.metadata.IPage;
// 导入IPage接口用于分页功能
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 导入Page类用于创建分页对象
import com.yeqifu.bus.entity.Customer;
// 导入Customer实体类表示客户信息
import com.yeqifu.bus.entity.Goods;
// 导入Goods实体类表示商品信息
import com.yeqifu.bus.entity.Salesback;
// 导入Salesback实体类表示销售退货信息
import com.yeqifu.bus.service.ICustomerService;
// 导入ICustomerService接口用于处理客户业务逻辑
import com.yeqifu.bus.service.IGoodsService;
// 导入IGoodsService接口用于处理商品业务逻辑
import com.yeqifu.bus.service.ISalesbackService;
// 导入ISalesbackService接口用于处理销售退货业务逻辑
import com.yeqifu.bus.vo.SalesbackVo;
// 导入SalesbackVo类用于封装查询参数
import com.yeqifu.sys.common.DataGridView;
// 导入DataGridView类用于返回表格数据
import com.yeqifu.sys.common.ResultObj;
// 导入ResultObj类用于统一返回操作结果
import org.springframework.beans.factory.annotation.Autowired;
// 导入@Autowired注解用于自动注入服务对象
import org.springframework.web.bind.annotation.RequestMapping;
// 导入@RequestMapping注解用于映射请求路径
import org.springframework.web.bind.annotation.RestController;
// 导入@RestController注解标识该类为REST控制器
import java.util.List;
// 导入Java集合类List用于处理列表数据
/**
* 销售退货控制器类
* 负责处理与销售退货相关的请求
*/
@RestController
// 标识该类为REST风格的控制器
@RequestMapping("/salesback")
// 将类的基础URL路径映射为"/salesback"
public class SalesbackController {
@Autowired
// 自动注入ISalesbackService接口的实现类
private ISalesbackService salesbackService;
@Autowired
// 自动注入ICustomerService接口的实现类
private ICustomerService customerService;
@Autowired
// 自动注入IGoodsService接口的实现类
private IGoodsService goodsService;
/**
* 添加退货信息
* @param id 退货的销售单ID
* @param number 退货数量
* @param remark 备注信息
* @return 返回操作结果
*/
@RequestMapping("addSalesback")
// 映射URL路径为"/salesback/addSalesback"
public ResultObj addSalesback(Integer id, Integer number, String remark) {
try {
salesbackService.addSalesback(id, number, remark);
// 调用服务层方法添加退货记录
return ResultObj.BACKINPORT_SUCCESS;
// 返回退货成功的结果对象
} catch (Exception e) {
e.printStackTrace();
// 打印异常信息
return ResultObj.BACKINPORT_ERROR;
// 返回退货失败的结果对象
}
}
/**
* 查询商品销售退货记录
* @param salesbackVo 封装查询参数的对象
* @return 返回表格数据
*/
@RequestMapping("loadAllSalesback")
// 映射URL路径为"/salesback/loadAllSalesback"
public DataGridView loadAllSalesback(SalesbackVo salesbackVo) {
IPage<Salesback> page = new Page<>(salesbackVo.getPage(), salesbackVo.getLimit());
// 创建分页对象,指定当前页和每页记录数
QueryWrapper<Salesback> queryWrapper = new QueryWrapper<>();
// 创建QueryWrapper对象用于构建查询条件
queryWrapper.eq(salesbackVo.getCustomerid() != null && salesbackVo.getCustomerid() != 0, "customerid", salesbackVo.getCustomerid());
// 如果客户ID不为空且不为0添加客户ID的查询条件
queryWrapper.eq(salesbackVo.getGoodsid() != null && salesbackVo.getGoodsid() != 0, "goodsid", salesbackVo.getGoodsid());
// 如果商品ID不为空且不为0添加商品ID的查询条件
queryWrapper.ge(salesbackVo.getStartTime() != null, "salesbacktime", salesbackVo.getStartTime());
// 如果开始时间不为空,添加大于等于开始时间的查询条件
queryWrapper.le(salesbackVo.getEndTime() != null, "salesbacktime", salesbackVo.getEndTime());
// 如果结束时间不为空,添加小于等于结束时间的查询条件
queryWrapper.orderByDesc("salesbacktime");
// 按照退货时间降序排列
salesbackService.page(page, queryWrapper);
// 调用服务层分页查询方法,获取分页数据
List<Salesback> records = page.getRecords();
// 获取分页记录列表
for (Salesback salesback : records) {
// 遍历退货记录列表
Customer customer = customerService.getById(salesback.getCustomerid());
// 根据退货记录中的客户ID查询客户信息
if (customer != null) {
salesback.setCustomername(customer.getCustomername());
// 如果客户信息存在,设置客户名称
}
Goods goods = goodsService.getById(salesback.getGoodsid());
// 根据退货记录中的商品ID查询商品信息
if (goods != null) {
salesback.setGoodsname(goods.getGoodsname());
// 如果商品信息存在,设置商品名称
salesback.setSize(goods.getSize());
// 设置商品规格
}
}
return new DataGridView(page.getTotal(), page.getRecords());
// 返回DataGridView对象包含总记录数和分页记录列表
}
/**
* 删除商品销售退货记录
* @param id 要删除的退货记录ID
* @return 返回操作结果
*/
@RequestMapping("deleteSalesback")
// 映射URL路径为"/salesback/deleteSalesback"
public ResultObj deleteSalesback(Integer id) {
try {
salesbackService.removeById(id);
// 调用服务层方法根据ID删除退货记录
return ResultObj.DELETE_SUCCESS;
// 返回删除成功的结果对象
} catch (Exception e) {
e.printStackTrace();
// 打印异常信息
return ResultObj.DELETE_ERROR;
// 返回删除失败的结果对象
}
}
}