|
|
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;
|
|
|
// 返回删除失败的结果对象
|
|
|
}
|
|
|
}
|
|
|
}
|