feat(oa): 新增客户管理和资金日记账功能
- 添加客户管理相关实体、控制器、服务和映射 - 实现客户信息的增删改查功能 - 添加资金日记账相关实体、控制器、服务和映射 - 实现资金日记账的增删改查功能 - 优化数据库连接配置 - 更新 BOM 项关联的表名
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearCustomerVo;
|
||||
import com.gear.oa.domain.bo.GearCustomerBo;
|
||||
import com.gear.oa.service.IGearCustomerService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* CRM 客户
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/customer")
|
||||
public class GearCustomerController extends BaseController {
|
||||
|
||||
private final IGearCustomerService iGearCustomerService;
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearCustomerVo> list(GearCustomerBo bo, PageQuery pageQuery) {
|
||||
return iGearCustomerService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出CRM 客户列表
|
||||
*/
|
||||
@Log(title = "CRM 客户", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearCustomerBo bo, HttpServletResponse response) {
|
||||
List<GearCustomerVo> list = iGearCustomerService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "CRM 客户", GearCustomerVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取CRM 客户详细信息
|
||||
*
|
||||
* @param customerId 主键
|
||||
*/
|
||||
@GetMapping("/{customerId}")
|
||||
public R<GearCustomerVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long customerId) {
|
||||
return R.ok(iGearCustomerService.queryById(customerId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增CRM 客户
|
||||
*/
|
||||
@Log(title = "CRM 客户", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearCustomerBo bo) {
|
||||
return toAjax(iGearCustomerService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改CRM 客户
|
||||
*/
|
||||
@Log(title = "CRM 客户", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearCustomerBo bo) {
|
||||
return toAjax(iGearCustomerService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除CRM 客户
|
||||
*
|
||||
* @param customerIds 主键串
|
||||
*/
|
||||
@Log(title = "CRM 客户", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{customerIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] customerIds) {
|
||||
return toAjax(iGearCustomerService.deleteWithValidByIds(Arrays.asList(customerIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearJournalVo;
|
||||
import com.gear.oa.domain.bo.GearJournalBo;
|
||||
import com.gear.oa.service.IGearJournalService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 资金日记账
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/journal")
|
||||
public class GearJournalController extends BaseController {
|
||||
|
||||
private final IGearJournalService iGearJournalService;
|
||||
|
||||
/**
|
||||
* 查询资金日记账列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearJournalVo> list(GearJournalBo bo, PageQuery pageQuery) {
|
||||
return iGearJournalService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出资金日记账列表
|
||||
*/
|
||||
@Log(title = "资金日记账", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearJournalBo bo, HttpServletResponse response) {
|
||||
List<GearJournalVo> list = iGearJournalService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "资金日记账", GearJournalVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取资金日记账详细信息
|
||||
*
|
||||
* @param journalId 主键
|
||||
*/
|
||||
@GetMapping("/{journalId}")
|
||||
public R<GearJournalVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long journalId) {
|
||||
return R.ok(iGearJournalService.queryById(journalId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增资金日记账
|
||||
*/
|
||||
@Log(title = "资金日记账", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearJournalBo bo) {
|
||||
return toAjax(iGearJournalService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改资金日记账
|
||||
*/
|
||||
@Log(title = "资金日记账", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearJournalBo bo) {
|
||||
return toAjax(iGearJournalService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除资金日记账
|
||||
*
|
||||
* @param journalIds 主键串
|
||||
*/
|
||||
@Log(title = "资金日记账", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{journalIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] journalIds) {
|
||||
return toAjax(iGearJournalService.deleteWithValidByIds(Arrays.asList(journalIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearOrderVo;
|
||||
import com.gear.oa.domain.bo.GearOrderBo;
|
||||
import com.gear.oa.service.IGearOrderService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 订单主
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/order")
|
||||
public class GearOrderController extends BaseController {
|
||||
|
||||
private final IGearOrderService iGearOrderService;
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearOrderVo> list(GearOrderBo bo, PageQuery pageQuery) {
|
||||
return iGearOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
/**
|
||||
* order_status不是零就查出来
|
||||
* 新接口 不是预订单的
|
||||
*/
|
||||
@GetMapping("/listByStatus")
|
||||
public TableDataInfo<GearOrderVo> listByStatus(GearOrderBo bo, PageQuery pageQuery) {
|
||||
return iGearOrderService.queryPageListByStatus(bo, pageQuery);
|
||||
}
|
||||
/**
|
||||
* 导出订单主列表
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearOrderBo bo, HttpServletResponse response) {
|
||||
List<GearOrderVo> list = iGearOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "订单主", GearOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单主详细信息
|
||||
*
|
||||
* @param orderId 主键
|
||||
*/
|
||||
@GetMapping("/{orderId}")
|
||||
public R<GearOrderVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long orderId) {
|
||||
return R.ok(iGearOrderService.queryById(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单主
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearOrderBo bo) {
|
||||
return toAjax(iGearOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单主
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearOrderBo bo) {
|
||||
return toAjax(iGearOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单主
|
||||
*
|
||||
* @param orderIds 主键串
|
||||
*/
|
||||
@Log(title = "订单主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orderIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] orderIds) {
|
||||
return toAjax(iGearOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearOrderDetailVo;
|
||||
import com.gear.oa.domain.bo.GearOrderDetailBo;
|
||||
import com.gear.oa.service.IGearOrderDetailService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 订单明细
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/orderDetail")
|
||||
public class GearOrderDetailController extends BaseController {
|
||||
|
||||
private final IGearOrderDetailService iGearOrderDetailService;
|
||||
/**
|
||||
* 根据订单ID查询订单明细列表
|
||||
*/
|
||||
@GetMapping("/listByOrderId/{orderId}")
|
||||
public R<List<GearOrderDetailVo>> listByOrderId(@PathVariable Long orderId) {
|
||||
List<GearOrderDetailVo> list = iGearOrderDetailService.queryListByOrderId(orderId);
|
||||
return R.ok(list);
|
||||
}
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearOrderDetailVo> list(GearOrderDetailBo bo, PageQuery pageQuery) {
|
||||
return iGearOrderDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单明细列表
|
||||
*/
|
||||
@Log(title = "订单明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearOrderDetailBo bo, HttpServletResponse response) {
|
||||
List<GearOrderDetailVo> list = iGearOrderDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "订单明细", GearOrderDetailVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单明细详细信息
|
||||
*
|
||||
* @param detailId 主键
|
||||
*/
|
||||
@GetMapping("/{detailId}")
|
||||
public R<GearOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long detailId) {
|
||||
return R.ok(iGearOrderDetailService.queryById(detailId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单明细
|
||||
*/
|
||||
@Log(title = "订单明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearOrderDetailBo bo) {
|
||||
return toAjax(iGearOrderDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单明细
|
||||
*/
|
||||
@Log(title = "订单明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearOrderDetailBo bo) {
|
||||
return toAjax(iGearOrderDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单明细
|
||||
*
|
||||
* @param detailIds 主键串
|
||||
*/
|
||||
@Log(title = "订单明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{detailIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] detailIds) {
|
||||
return toAjax(iGearOrderDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearOtherIncomeVo;
|
||||
import com.gear.oa.domain.bo.GearOtherIncomeBo;
|
||||
import com.gear.oa.service.IGearOtherIncomeService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 其他收入
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/otherIncome")
|
||||
public class GearOtherIncomeController extends BaseController {
|
||||
|
||||
private final IGearOtherIncomeService iGearOtherIncomeService;
|
||||
|
||||
/**
|
||||
* 查询其他收入列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearOtherIncomeVo> list(GearOtherIncomeBo bo, PageQuery pageQuery) {
|
||||
return iGearOtherIncomeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出其他收入列表
|
||||
*/
|
||||
@Log(title = "其他收入", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearOtherIncomeBo bo, HttpServletResponse response) {
|
||||
List<GearOtherIncomeVo> list = iGearOtherIncomeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "其他收入", GearOtherIncomeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取其他收入详细信息
|
||||
*
|
||||
* @param otherIncomeId 主键
|
||||
*/
|
||||
@GetMapping("/{otherIncomeId}")
|
||||
public R<GearOtherIncomeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long otherIncomeId) {
|
||||
return R.ok(iGearOtherIncomeService.queryById(otherIncomeId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增其他收入
|
||||
*/
|
||||
@Log(title = "其他收入", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearOtherIncomeBo bo) {
|
||||
return toAjax(iGearOtherIncomeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改其他收入
|
||||
*/
|
||||
@Log(title = "其他收入", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearOtherIncomeBo bo) {
|
||||
return toAjax(iGearOtherIncomeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除其他收入
|
||||
*
|
||||
* @param otherIncomeIds 主键串
|
||||
*/
|
||||
@Log(title = "其他收入", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{otherIncomeIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] otherIncomeIds) {
|
||||
return toAjax(iGearOtherIncomeService.deleteWithValidByIds(Arrays.asList(otherIncomeIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearPayableVo;
|
||||
import com.gear.oa.domain.bo.GearPayableBo;
|
||||
import com.gear.oa.service.IGearPayableService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/payable")
|
||||
public class GearPayableController extends BaseController {
|
||||
|
||||
private final IGearPayableService iGearPayableService;
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearPayableVo> list(GearPayableBo bo, PageQuery pageQuery) {
|
||||
return iGearPayableService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出应付款管理(宽松版)列表
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearPayableBo bo, HttpServletResponse response) {
|
||||
List<GearPayableVo> list = iGearPayableService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "应付款管理(宽松版)", GearPayableVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取应付款管理(宽松版)详细信息
|
||||
*
|
||||
* @param payableId 主键
|
||||
*/
|
||||
@GetMapping("/{payableId}")
|
||||
public R<GearPayableVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long payableId) {
|
||||
return R.ok(iGearPayableService.queryById(payableId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应付款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearPayableBo bo) {
|
||||
return toAjax(iGearPayableService.insertByBo(bo));
|
||||
}
|
||||
/**
|
||||
* 更新应付款已付金额 & 新增资金日记账
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/updatePaidAmount")
|
||||
public R<Void> updatePaidAmount(@RequestBody GearPayableBo bo) {
|
||||
return toAjax(iGearPayableService.updatePaidAmountAndAddJournal(bo));
|
||||
}
|
||||
/**
|
||||
* 修改应付款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearPayableBo bo) {
|
||||
return toAjax(iGearPayableService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除应付款管理(宽松版)
|
||||
*
|
||||
* @param payableIds 主键串
|
||||
*/
|
||||
@Log(title = "应付款管理(宽松版)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{payableIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] payableIds) {
|
||||
return toAjax(iGearPayableService.deleteWithValidByIds(Arrays.asList(payableIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearReceivableVo;
|
||||
import com.gear.oa.domain.bo.GearReceivableBo;
|
||||
import com.gear.oa.service.IGearReceivableService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/receivable")
|
||||
public class GearReceivableController extends BaseController {
|
||||
|
||||
private final IGearReceivableService iGearReceivableService;
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearReceivableVo> list(GearReceivableBo bo, PageQuery pageQuery) {
|
||||
return iGearReceivableService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出应收款管理(宽松版)列表
|
||||
*/
|
||||
@Log(title = "应收款管理(宽松版)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearReceivableBo bo, HttpServletResponse response) {
|
||||
List<GearReceivableVo> list = iGearReceivableService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "应收款管理(宽松版)", GearReceivableVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取应收款管理(宽松版)详细信息
|
||||
*
|
||||
* @param receivableId 主键
|
||||
*/
|
||||
@GetMapping("/{receivableId}")
|
||||
public R<GearReceivableVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long receivableId) {
|
||||
return R.ok(iGearReceivableService.queryById(receivableId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应收款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应收款管理(宽松版)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearReceivableBo bo) {
|
||||
return toAjax(iGearReceivableService.insertByBo(bo));
|
||||
}
|
||||
/**
|
||||
* 更新应收款已收金额 & 新增资金日记账
|
||||
*/
|
||||
@Log(title = "应收款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/updatePaidAmount")
|
||||
public R<Void> updatePaidAmount(@RequestBody GearReceivableBo bo) {
|
||||
return toAjax(iGearReceivableService.updatePaidAmountAndAddJournal(bo));
|
||||
}
|
||||
/**
|
||||
* 修改应收款管理(宽松版)
|
||||
*/
|
||||
@Log(title = "应收款管理(宽松版)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearReceivableBo bo) {
|
||||
return toAjax(iGearReceivableService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除应收款管理(宽松版)
|
||||
*
|
||||
* @param receivableIds 主键串
|
||||
*/
|
||||
@Log(title = "应收款管理(宽松版)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{receivableIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] receivableIds) {
|
||||
return toAjax(iGearReceivableService.deleteWithValidByIds(Arrays.asList(receivableIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.gear.oa.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.gear.common.annotation.RepeatSubmit;
|
||||
import com.gear.common.annotation.Log;
|
||||
import com.gear.common.core.controller.BaseController;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.gear.common.core.domain.R;
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import com.gear.common.core.validate.QueryGroup;
|
||||
import com.gear.common.enums.BusinessType;
|
||||
import com.gear.common.utils.poi.ExcelUtil;
|
||||
import com.gear.oa.domain.vo.GearReturnExchangeVo;
|
||||
import com.gear.oa.domain.bo.GearReturnExchangeBo;
|
||||
import com.gear.oa.service.IGearReturnExchangeService;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 退换货管理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/oa/returnExchange")
|
||||
public class GearReturnExchangeController extends BaseController {
|
||||
|
||||
private final IGearReturnExchangeService iGearReturnExchangeService;
|
||||
|
||||
/**
|
||||
* 查询退换货管理列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<GearReturnExchangeVo> list(GearReturnExchangeBo bo, PageQuery pageQuery) {
|
||||
return iGearReturnExchangeService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出退换货管理列表
|
||||
*/
|
||||
@Log(title = "退换货管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(GearReturnExchangeBo bo, HttpServletResponse response) {
|
||||
List<GearReturnExchangeVo> list = iGearReturnExchangeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "退换货管理", GearReturnExchangeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取退换货管理详细信息
|
||||
*
|
||||
* @param returnExchangeId 主键
|
||||
*/
|
||||
@GetMapping("/{returnExchangeId}")
|
||||
public R<GearReturnExchangeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long returnExchangeId) {
|
||||
return R.ok(iGearReturnExchangeService.queryById(returnExchangeId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增退换货管理
|
||||
*/
|
||||
@Log(title = "退换货管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody GearReturnExchangeBo bo) {
|
||||
return toAjax(iGearReturnExchangeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改退换货管理
|
||||
*/
|
||||
@Log(title = "退换货管理", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GearReturnExchangeBo bo) {
|
||||
return toAjax(iGearReturnExchangeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除退换货管理
|
||||
*
|
||||
* @param returnExchangeIds 主键串
|
||||
*/
|
||||
@Log(title = "退换货管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{returnExchangeIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] returnExchangeIds) {
|
||||
return toAjax(iGearReturnExchangeService.deleteWithValidByIds(Arrays.asList(returnExchangeIds), true));
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ public class GearBomItem extends BaseEntity {
|
||||
@TableId(value = "item_id")
|
||||
private Long itemId;
|
||||
/**
|
||||
* 关联 wms_bom.bom_id
|
||||
* 关联 Gear_bom.bom_id
|
||||
*/
|
||||
private Long bomId;
|
||||
/**
|
||||
|
||||
114
gear-oa/src/main/java/com/gear/oa/domain/GearCustomer.java
Normal file
114
gear-oa/src/main/java/com/gear/oa/domain/GearCustomer.java
Normal file
@@ -0,0 +1,114 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* CRM 客户对象 gear_customer
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_customer")
|
||||
public class GearCustomer extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 编号,主键自增
|
||||
*/
|
||||
@TableId(value = "customer_id")
|
||||
private Long customerId;
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 跟进状态
|
||||
*/
|
||||
private Integer followUpStatus;
|
||||
/**
|
||||
* 最后跟进时间
|
||||
*/
|
||||
private Date contactLastTime;
|
||||
/**
|
||||
* 最后跟进内容
|
||||
*/
|
||||
private String contactLastContent;
|
||||
/**
|
||||
* 下次联系时间
|
||||
*/
|
||||
private Date contactNextTime;
|
||||
/**
|
||||
* 负责人的用户编号
|
||||
*/
|
||||
private Long ownerUserId;
|
||||
/**
|
||||
* 成为负责人的时间
|
||||
*/
|
||||
private Date ownerTime;
|
||||
/**
|
||||
* 成交状态
|
||||
*/
|
||||
private Integer dealStatus;
|
||||
/**
|
||||
* 手机
|
||||
*/
|
||||
private String mobile;
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
private String telephone;
|
||||
/**
|
||||
* QQ
|
||||
*/
|
||||
private String qq;
|
||||
/**
|
||||
* 微信
|
||||
*/
|
||||
private String wechat;
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
private String email;
|
||||
/**
|
||||
* 地区编号
|
||||
*/
|
||||
private Long areaId;
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
private String detailAddress;
|
||||
/**
|
||||
* 所属行业
|
||||
*/
|
||||
private Long industryId;
|
||||
/**
|
||||
* 客户等级
|
||||
*/
|
||||
private Long level;
|
||||
/**
|
||||
* 客户来源
|
||||
*/
|
||||
private Long source;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
71
gear-oa/src/main/java/com/gear/oa/domain/GearJournal.java
Normal file
71
gear-oa/src/main/java/com/gear/oa/domain/GearJournal.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 资金日记账对象 gear_journal
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_journal")
|
||||
public class GearJournal extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "journal_id")
|
||||
private Long journalId;
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private Date journalDate;
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
private String summary;
|
||||
/**
|
||||
* 收支类型
|
||||
*/
|
||||
private String transType;
|
||||
/**
|
||||
* 对方户名
|
||||
*/
|
||||
private String counterpart;
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal incomeAmount;
|
||||
/**
|
||||
* 支出金额
|
||||
*/
|
||||
private BigDecimal expenseAmount;
|
||||
/**
|
||||
* 余额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0正常 1删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
69
gear-oa/src/main/java/com/gear/oa/domain/GearOrder.java
Normal file
69
gear-oa/src/main/java/com/gear/oa/domain/GearOrder.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 订单主对象 gear_order
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_order")
|
||||
public class GearOrder extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@TableId(value = "order_id")
|
||||
private Long orderId;
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderCode;
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
/**
|
||||
* 销售经理
|
||||
*/
|
||||
private String salesManager;
|
||||
/**
|
||||
* 订单状态(0=新建,1=生产中,2=已完成,3=已取消)
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
/**
|
||||
* 0内贸, 1外贸
|
||||
*/
|
||||
private Integer tradeType;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 含税金额
|
||||
*/
|
||||
private BigDecimal taxAmount;
|
||||
/**
|
||||
* 无税金额
|
||||
*/
|
||||
private BigDecimal noTaxAmount;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 订单明细对象 gear_order_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_order_detail")
|
||||
public class GearOrderDetail extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
@TableId(value = "detail_id")
|
||||
private Long detailId;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
private Long quantity;
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 含税单价
|
||||
*/
|
||||
private BigDecimal taxPrice;
|
||||
/**
|
||||
* 无税单价
|
||||
*/
|
||||
private BigDecimal noTaxPrice;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 其他收入对象 gear_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_other_income")
|
||||
public class GearOtherIncome extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
@TableId(value = "other_income_id")
|
||||
private Long otherIncomeId;
|
||||
/**
|
||||
* 收入日期
|
||||
*/
|
||||
private Date incomeDate;
|
||||
/**
|
||||
* 收入类型
|
||||
*/
|
||||
private String incomeType;
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 收入来源
|
||||
*/
|
||||
private String source;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
71
gear-oa/src/main/java/com/gear/oa/domain/GearPayable.java
Normal file
71
gear-oa/src/main/java/com/gear/oa/domain/GearPayable.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)对象 gear_payable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_payable")
|
||||
public class GearPayable extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 应付ID(主键)
|
||||
*/
|
||||
@TableId(value = "payable_id")
|
||||
private Long payableId;
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
private Date dueDate;
|
||||
/**
|
||||
* 应付金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 已付金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
71
gear-oa/src/main/java/com/gear/oa/domain/GearReceivable.java
Normal file
71
gear-oa/src/main/java/com/gear/oa/domain/GearReceivable.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)对象 gear_receivable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_receivable")
|
||||
public class GearReceivable extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 应收ID(主键)
|
||||
*/
|
||||
@TableId(value = "receivable_id")
|
||||
private Long receivableId;
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
private Date dueDate;
|
||||
/**
|
||||
* 应收金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 已收金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
/**
|
||||
* 未收金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.gear.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 退换货管理对象 gear_return_exchange
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("gear_return_exchange")
|
||||
public class GearReturnExchange extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 退换货ID(主键)
|
||||
*/
|
||||
@TableId(value = "return_exchange_id")
|
||||
private Long returnExchangeId;
|
||||
/**
|
||||
* 关联订单明细ID
|
||||
*/
|
||||
private Long orderDetailId;
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
* 原因
|
||||
*/
|
||||
private String reason;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 涉及金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
/**
|
||||
* 删除标志(0=正常,1=已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@ public class GearBomItemBo extends BaseEntity {
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
* 关联 wms_bom.bom_id
|
||||
* 关联 Gear_bom.bom_id
|
||||
*/
|
||||
private Long bomId;
|
||||
|
||||
|
||||
134
gear-oa/src/main/java/com/gear/oa/domain/bo/GearCustomerBo.java
Normal file
134
gear-oa/src/main/java/com/gear/oa/domain/bo/GearCustomerBo.java
Normal file
@@ -0,0 +1,134 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* CRM 客户业务对象 gear_customer
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearCustomerBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 编号,主键自增
|
||||
*/
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 跟进状态
|
||||
*/
|
||||
private Integer followUpStatus;
|
||||
|
||||
/**
|
||||
* 最后跟进时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date contactLastTime;
|
||||
|
||||
/**
|
||||
* 最后跟进内容
|
||||
*/
|
||||
private String contactLastContent;
|
||||
|
||||
/**
|
||||
* 下次联系时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date contactNextTime;
|
||||
|
||||
/**
|
||||
* 负责人的用户编号
|
||||
*/
|
||||
private Long ownerUserId;
|
||||
|
||||
/**
|
||||
* 成为负责人的时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date ownerTime;
|
||||
|
||||
/**
|
||||
* 成交状态
|
||||
*/
|
||||
private Integer dealStatus;
|
||||
|
||||
/**
|
||||
* 手机
|
||||
*/
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
private String telephone;
|
||||
|
||||
/**
|
||||
* QQ
|
||||
*/
|
||||
private String qq;
|
||||
|
||||
/**
|
||||
* 微信
|
||||
*/
|
||||
private String wechat;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 地区编号
|
||||
*/
|
||||
private Long areaId;
|
||||
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
private String detailAddress;
|
||||
|
||||
/**
|
||||
* 所属行业
|
||||
*/
|
||||
private Long industryId;
|
||||
|
||||
/**
|
||||
* 客户等级
|
||||
*/
|
||||
private Long level;
|
||||
|
||||
/**
|
||||
* 客户来源
|
||||
*/
|
||||
private Long source;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 资金日记账业务对象 gear_journal
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearJournalBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long journalId;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date journalDate;
|
||||
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
private String summary;
|
||||
|
||||
/**
|
||||
* 收支类型
|
||||
*/
|
||||
private String transType;
|
||||
|
||||
/**
|
||||
* 对方户名
|
||||
*/
|
||||
private String counterpart;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal incomeAmount;
|
||||
|
||||
/**
|
||||
* 支出金额
|
||||
*/
|
||||
private BigDecimal expenseAmount;
|
||||
|
||||
/**
|
||||
* 余额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
72
gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderBo.java
Normal file
72
gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderBo.java
Normal file
@@ -0,0 +1,72 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 订单主业务对象 gear_order
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearOrderBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 销售经理
|
||||
*/
|
||||
private String salesManager;
|
||||
|
||||
/**
|
||||
* 订单状态(0=新建,1=生产中,2=已完成,3=已取消)
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 0内贸, 1外贸
|
||||
*/
|
||||
private Integer tradeType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 含税金额
|
||||
*/
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
/**
|
||||
* 无税金额
|
||||
*/
|
||||
private BigDecimal noTaxAmount;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 订单明细业务对象 gear_order_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearOrderDetailBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 含税单价
|
||||
*/
|
||||
private BigDecimal taxPrice;
|
||||
|
||||
/**
|
||||
* 无税单价
|
||||
*/
|
||||
private BigDecimal noTaxPrice;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 其他收入业务对象 gear_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearOtherIncomeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
private Long otherIncomeId;
|
||||
|
||||
/**
|
||||
* 收入日期
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date incomeDate;
|
||||
|
||||
/**
|
||||
* 收入类型
|
||||
*/
|
||||
private String incomeType;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 收入来源
|
||||
*/
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)业务对象 gear_payable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearPayableBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 应付ID(主键)
|
||||
*/
|
||||
private Long payableId;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应付金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已付金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)业务对象 gear_receivable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearReceivableBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 应收ID(主键)
|
||||
*/
|
||||
private Long receivableId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应收金额(可为负数用于调整)
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已收金额(可为负数用于冲销)
|
||||
*/
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未收金额
|
||||
*/
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.gear.oa.domain.bo;
|
||||
|
||||
import com.gear.common.core.validate.AddGroup;
|
||||
import com.gear.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.gear.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 退换货管理业务对象 gear_return_exchange
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class GearReturnExchangeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 退换货ID(主键)
|
||||
*/
|
||||
private Long returnExchangeId;
|
||||
|
||||
/**
|
||||
* 关联订单明细ID
|
||||
*/
|
||||
private Long orderDetailId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 原因
|
||||
*/
|
||||
private String reason;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 涉及金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
|
||||
}
|
||||
@@ -28,9 +28,9 @@ public class GearBomItemVo {
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
* 关联 wms_bom.bom_id
|
||||
* 关联 Gear_bom.bom_id
|
||||
*/
|
||||
@ExcelProperty(value = "关联 wms_bom.bom_id")
|
||||
@ExcelProperty(value = "关联 Gear_bom.bom_id")
|
||||
private Long bomId;
|
||||
|
||||
/**
|
||||
|
||||
155
gear-oa/src/main/java/com/gear/oa/domain/vo/GearCustomerVo.java
Normal file
155
gear-oa/src/main/java/com/gear/oa/domain/vo/GearCustomerVo.java
Normal file
@@ -0,0 +1,155 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* CRM 客户视图对象 gear_customer
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearCustomerVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 编号,主键自增
|
||||
*/
|
||||
@ExcelProperty(value = "编号,主键自增")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 客户名称
|
||||
*/
|
||||
@ExcelProperty(value = "客户名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 跟进状态
|
||||
*/
|
||||
@ExcelProperty(value = "跟进状态")
|
||||
private Integer followUpStatus;
|
||||
|
||||
/**
|
||||
* 最后跟进时间
|
||||
*/
|
||||
@ExcelProperty(value = "最后跟进时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date contactLastTime;
|
||||
|
||||
/**
|
||||
* 最后跟进内容
|
||||
*/
|
||||
@ExcelProperty(value = "最后跟进内容")
|
||||
private String contactLastContent;
|
||||
|
||||
/**
|
||||
* 下次联系时间
|
||||
*/
|
||||
@ExcelProperty(value = "下次联系时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date contactNextTime;
|
||||
|
||||
/**
|
||||
* 负责人的用户编号
|
||||
*/
|
||||
@ExcelProperty(value = "负责人的用户编号")
|
||||
private Long ownerUserId;
|
||||
|
||||
/**
|
||||
* 成为负责人的时间
|
||||
*/
|
||||
@ExcelProperty(value = "成为负责人的时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date ownerTime;
|
||||
|
||||
/**
|
||||
* 成交状态
|
||||
*/
|
||||
@ExcelProperty(value = "成交状态")
|
||||
private Integer dealStatus;
|
||||
|
||||
/**
|
||||
* 手机
|
||||
*/
|
||||
@ExcelProperty(value = "手机")
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
@ExcelProperty(value = "电话")
|
||||
private String telephone;
|
||||
|
||||
/**
|
||||
* QQ
|
||||
*/
|
||||
@ExcelProperty(value = "QQ")
|
||||
private String qq;
|
||||
|
||||
/**
|
||||
* 微信
|
||||
*/
|
||||
@ExcelProperty(value = "微信")
|
||||
private String wechat;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
@ExcelProperty(value = "邮箱")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 地区编号
|
||||
*/
|
||||
@ExcelProperty(value = "地区编号")
|
||||
private Long areaId;
|
||||
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
@ExcelProperty(value = "详细地址")
|
||||
private String detailAddress;
|
||||
|
||||
/**
|
||||
* 所属行业
|
||||
*/
|
||||
@ExcelProperty(value = "所属行业")
|
||||
private Long industryId;
|
||||
|
||||
/**
|
||||
* 客户等级
|
||||
*/
|
||||
@ExcelProperty(value = "客户等级")
|
||||
private Long level;
|
||||
|
||||
/**
|
||||
* 客户来源
|
||||
*/
|
||||
@ExcelProperty(value = "客户来源")
|
||||
private Long source;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 资金日记账视图对象 gear_journal
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearJournalVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long journalId;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
@ExcelProperty(value = "日期")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date journalDate;
|
||||
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@ExcelProperty(value = "摘要")
|
||||
private String summary;
|
||||
|
||||
/**
|
||||
* 收支类型
|
||||
*/
|
||||
@ExcelProperty(value = "收支类型")
|
||||
private String transType;
|
||||
|
||||
/**
|
||||
* 对方户名
|
||||
*/
|
||||
@ExcelProperty(value = "对方户名")
|
||||
private String counterpart;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
@ExcelProperty(value = "收入金额")
|
||||
private BigDecimal incomeAmount;
|
||||
|
||||
/**
|
||||
* 支出金额
|
||||
*/
|
||||
@ExcelProperty(value = "支出金额")
|
||||
private BigDecimal expenseAmount;
|
||||
|
||||
/**
|
||||
* 余额
|
||||
*/
|
||||
@ExcelProperty(value = "余额")
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 订单明细视图对象 gear_order_detail
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearOrderDetailVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 明细ID
|
||||
*/
|
||||
@ExcelProperty(value = "明细ID")
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 产品ID
|
||||
*/
|
||||
@ExcelProperty(value = "产品ID")
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 产品数量
|
||||
*/
|
||||
@ExcelProperty(value = "产品数量")
|
||||
private Long quantity;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
@ExcelProperty(value = "单位")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 含税单价
|
||||
*/
|
||||
@ExcelProperty(value = "含税单价")
|
||||
private BigDecimal taxPrice;
|
||||
|
||||
/**
|
||||
* 无税单价
|
||||
*/
|
||||
@ExcelProperty(value = "无税单价")
|
||||
private BigDecimal noTaxPrice;
|
||||
|
||||
//产品名称和产品code
|
||||
private String productName;
|
||||
private String productCode;
|
||||
|
||||
}
|
||||
84
gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderVo.java
Normal file
84
gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderVo.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 订单主视图对象 gear_order
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearOrderVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
@ExcelProperty(value = "订单编号")
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@ExcelProperty(value = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 销售经理
|
||||
*/
|
||||
@ExcelProperty(value = "销售经理")
|
||||
private String salesManager;
|
||||
|
||||
/**
|
||||
* 订单状态(0=新建,1=生产中,2=已完成,3=已取消)
|
||||
*/
|
||||
@ExcelProperty(value = "订单状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "0==新建,1=生产中,2=已完成,3=已取消")
|
||||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 0内贸, 1外贸
|
||||
*/
|
||||
@ExcelProperty(value = "0内贸, 1外贸")
|
||||
private Integer tradeType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 含税金额
|
||||
*/
|
||||
@ExcelProperty(value = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
/**
|
||||
* 无税金额
|
||||
*/
|
||||
@ExcelProperty(value = "无税金额")
|
||||
private BigDecimal noTaxAmount;
|
||||
|
||||
private String customerName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 其他收入视图对象 gear_other_income
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearOtherIncomeVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 其他收入ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "其他收入ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long otherIncomeId;
|
||||
|
||||
/**
|
||||
* 收入日期
|
||||
*/
|
||||
@ExcelProperty(value = "收入日期")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date incomeDate;
|
||||
|
||||
/**
|
||||
* 收入类型
|
||||
*/
|
||||
@ExcelProperty(value = "收入类型")
|
||||
private String incomeType;
|
||||
|
||||
/**
|
||||
* 收入金额
|
||||
*/
|
||||
@ExcelProperty(value = "收入金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 收入来源
|
||||
*/
|
||||
@ExcelProperty(value = "收入来源")
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)视图对象 gear_payable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearPayableVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 应付ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "应付ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long payableId;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
@ExcelProperty(value = "供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@ExcelProperty(value = "到期日")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应付金额(可为负数用于调整)
|
||||
*/
|
||||
@ExcelProperty(value = "应付金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已付金额(可为负数用于冲销)
|
||||
*/
|
||||
@ExcelProperty(value = "已付金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
@ExcelProperty(value = "未付金额")
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
//供应商名称
|
||||
private String supplierName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)视图对象 gear_receivable
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearReceivableVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 应收ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "应收ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long receivableId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@ExcelProperty(value = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
@ExcelProperty(value = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 到期日
|
||||
*/
|
||||
@ExcelProperty(value = "到期日")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date dueDate;
|
||||
|
||||
/**
|
||||
* 应收金额(可为负数用于调整)
|
||||
*/
|
||||
@ExcelProperty(value = "应收金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于调整")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 已收金额(可为负数用于冲销)
|
||||
*/
|
||||
@ExcelProperty(value = "已收金额", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "可=为负数用于冲销")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**
|
||||
* 未收金额
|
||||
*/
|
||||
@ExcelProperty(value = "未收金额")
|
||||
private BigDecimal balanceAmount;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
//客户名称
|
||||
private String customerName;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.gear.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.gear.common.annotation.ExcelDictFormat;
|
||||
import com.gear.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 退换货管理视图对象 gear_return_exchange
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class GearReturnExchangeVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 退换货ID(主键)
|
||||
*/
|
||||
@ExcelProperty(value = "退换货ID", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "主=键")
|
||||
private Long returnExchangeId;
|
||||
|
||||
/**
|
||||
* 关联订单明细ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联订单明细ID")
|
||||
private Long orderDetailId;
|
||||
|
||||
/**
|
||||
* 客户ID
|
||||
*/
|
||||
@ExcelProperty(value = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 原因
|
||||
*/
|
||||
@ExcelProperty(value = "原因")
|
||||
private String reason;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ExcelProperty(value = "状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 涉及金额
|
||||
*/
|
||||
@ExcelProperty(value = "涉及金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.gear.oa.domain.GearCustomer;
|
||||
import com.gear.oa.domain.vo.GearCustomerVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* CRM 客户Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearCustomerMapper extends BaseMapperPlus<GearCustomerMapper, GearCustomer, GearCustomerVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.gear.oa.domain.GearJournal;
|
||||
import com.gear.oa.domain.vo.GearJournalVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 资金日记账Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearJournalMapper extends BaseMapperPlus<GearJournalMapper, GearJournal, GearJournalVo> {
|
||||
|
||||
BigDecimal getLastBalance();
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.gear.oa.domain.GearOrderDetail;
|
||||
import com.gear.oa.domain.vo.GearOrderDetailVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单明细Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearOrderDetailMapper extends BaseMapperPlus<GearOrderDetailMapper, GearOrderDetail, GearOrderDetailVo> {
|
||||
|
||||
List<GearOrderDetailVo> selectVoListByOrderId(Long orderId);
|
||||
|
||||
Page<GearOrderDetailVo> selectVoPagePlus(Page<?> page, @Param("ew") Wrapper<GearOrderDetail> wrapper);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.gear.oa.domain.GearOrder;
|
||||
import com.gear.oa.domain.vo.GearOrderVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 订单主Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearOrderMapper extends BaseMapperPlus<GearOrderMapper, GearOrder, GearOrderVo> {
|
||||
|
||||
Page<GearOrderVo> selectVoPlusPage(Page<?> page, @Param("ew") Wrapper<GearOrder> wrapper);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.gear.oa.domain.GearOtherIncome;
|
||||
import com.gear.oa.domain.vo.GearOtherIncomeVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 其他收入Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearOtherIncomeMapper extends BaseMapperPlus<GearOtherIncomeMapper, GearOtherIncome, GearOtherIncomeVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.gear.oa.domain.GearPayable;
|
||||
import com.gear.oa.domain.vo.GearPayableVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearPayableMapper extends BaseMapperPlus<GearPayableMapper, GearPayable, GearPayableVo> {
|
||||
|
||||
Page<GearPayableVo> selectVoPagePlus(Page<Object> build, @Param("ew") QueryWrapper<GearPayable> lqw);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.gear.oa.domain.GearReceivable;
|
||||
import com.gear.oa.domain.vo.GearReceivableVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearReceivableMapper extends BaseMapperPlus<GearReceivableMapper, GearReceivable, GearReceivableVo> {
|
||||
|
||||
Page<GearReceivableVo> selectVoPagePlus(Page<Object> build, @Param("ew") QueryWrapper<GearReceivable> lqw);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.gear.oa.mapper;
|
||||
|
||||
import com.gear.oa.domain.GearReturnExchange;
|
||||
import com.gear.oa.domain.vo.GearReturnExchangeVo;
|
||||
import com.gear.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 退换货管理Mapper接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface GearReturnExchangeMapper extends BaseMapperPlus<GearReturnExchangeMapper, GearReturnExchange, GearReturnExchangeVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearCustomer;
|
||||
import com.gear.oa.domain.vo.GearCustomerVo;
|
||||
import com.gear.oa.domain.bo.GearCustomerBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* CRM 客户Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearCustomerService {
|
||||
|
||||
/**
|
||||
* 查询CRM 客户
|
||||
*/
|
||||
GearCustomerVo queryById(Long customerId);
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
TableDataInfo<GearCustomerVo> queryPageList(GearCustomerBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
List<GearCustomerVo> queryList(GearCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 新增CRM 客户
|
||||
*/
|
||||
Boolean insertByBo(GearCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 修改CRM 客户
|
||||
*/
|
||||
Boolean updateByBo(GearCustomerBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除CRM 客户信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearJournal;
|
||||
import com.gear.oa.domain.vo.GearJournalVo;
|
||||
import com.gear.oa.domain.bo.GearJournalBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 资金日记账Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearJournalService {
|
||||
|
||||
/**
|
||||
* 查询资金日记账
|
||||
*/
|
||||
GearJournalVo queryById(Long journalId);
|
||||
|
||||
/**
|
||||
* 查询资金日记账列表
|
||||
*/
|
||||
TableDataInfo<GearJournalVo> queryPageList(GearJournalBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询资金日记账列表
|
||||
*/
|
||||
List<GearJournalVo> queryList(GearJournalBo bo);
|
||||
|
||||
/**
|
||||
* 新增资金日记账
|
||||
*/
|
||||
Boolean insertByBo(GearJournalBo bo);
|
||||
|
||||
/**
|
||||
* 修改资金日记账
|
||||
*/
|
||||
Boolean updateByBo(GearJournalBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除资金日记账信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
/**
|
||||
* 计算余额
|
||||
*/
|
||||
void computeBalance(GearJournal journal);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearOrderDetail;
|
||||
import com.gear.oa.domain.vo.GearOrderDetailVo;
|
||||
import com.gear.oa.domain.bo.GearOrderDetailBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单明细Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearOrderDetailService {
|
||||
|
||||
/**
|
||||
* 查询订单明细
|
||||
*/
|
||||
GearOrderDetailVo queryById(Long detailId);
|
||||
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
TableDataInfo<GearOrderDetailVo> queryPageList(GearOrderDetailBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
List<GearOrderDetailVo> queryList(GearOrderDetailBo bo);
|
||||
|
||||
/**
|
||||
* 新增订单明细
|
||||
*/
|
||||
Boolean insertByBo(GearOrderDetailBo bo);
|
||||
|
||||
/**
|
||||
* 修改订单明细
|
||||
*/
|
||||
Boolean updateByBo(GearOrderDetailBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除订单明细信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<GearOrderDetailVo> queryListByOrderId(Long orderId);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearOrder;
|
||||
import com.gear.oa.domain.vo.GearOrderVo;
|
||||
import com.gear.oa.domain.bo.GearOrderBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单主Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearOrderService {
|
||||
|
||||
/**
|
||||
* 查询订单主
|
||||
*/
|
||||
GearOrderVo queryById(Long orderId);
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
TableDataInfo<GearOrderVo> queryPageList(GearOrderBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
List<GearOrderVo> queryList(GearOrderBo bo);
|
||||
|
||||
/**
|
||||
* 新增订单主
|
||||
*/
|
||||
Boolean insertByBo(GearOrderBo bo);
|
||||
|
||||
/**
|
||||
* 修改订单主
|
||||
*/
|
||||
Boolean updateByBo(GearOrderBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除订单主信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
TableDataInfo<GearOrderVo> queryPageListByStatus(GearOrderBo bo, PageQuery pageQuery);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearOtherIncome;
|
||||
import com.gear.oa.domain.vo.GearOtherIncomeVo;
|
||||
import com.gear.oa.domain.bo.GearOtherIncomeBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 其他收入Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearOtherIncomeService {
|
||||
|
||||
/**
|
||||
* 查询其他收入
|
||||
*/
|
||||
GearOtherIncomeVo queryById(Long otherIncomeId);
|
||||
|
||||
/**
|
||||
* 查询其他收入列表
|
||||
*/
|
||||
TableDataInfo<GearOtherIncomeVo> queryPageList(GearOtherIncomeBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询其他收入列表
|
||||
*/
|
||||
List<GearOtherIncomeVo> queryList(GearOtherIncomeBo bo);
|
||||
|
||||
/**
|
||||
* 新增其他收入
|
||||
*/
|
||||
Boolean insertByBo(GearOtherIncomeBo bo);
|
||||
|
||||
/**
|
||||
* 修改其他收入
|
||||
*/
|
||||
Boolean updateByBo(GearOtherIncomeBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除其他收入信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearPayable;
|
||||
import com.gear.oa.domain.vo.GearPayableVo;
|
||||
import com.gear.oa.domain.bo.GearPayableBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearPayableService {
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)
|
||||
*/
|
||||
GearPayableVo queryById(Long payableId);
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
TableDataInfo<GearPayableVo> queryPageList(GearPayableBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
List<GearPayableVo> queryList(GearPayableBo bo);
|
||||
|
||||
/**
|
||||
* 新增应付款管理(宽松版)
|
||||
*/
|
||||
Boolean insertByBo(GearPayableBo bo);
|
||||
|
||||
/**
|
||||
* 修改应付款管理(宽松版)
|
||||
*/
|
||||
Boolean updateByBo(GearPayableBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除应付款管理(宽松版)信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
Boolean updatePaidAmountAndAddJournal(GearPayableBo bo);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearReceivable;
|
||||
import com.gear.oa.domain.vo.GearReceivableVo;
|
||||
import com.gear.oa.domain.bo.GearReceivableBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearReceivableService {
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)
|
||||
*/
|
||||
GearReceivableVo queryById(Long receivableId);
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)列表
|
||||
*/
|
||||
TableDataInfo<GearReceivableVo> queryPageList(GearReceivableBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)列表
|
||||
*/
|
||||
List<GearReceivableVo> queryList(GearReceivableBo bo);
|
||||
|
||||
/**
|
||||
* 新增应收款管理(宽松版)
|
||||
*/
|
||||
Boolean insertByBo(GearReceivableBo bo);
|
||||
|
||||
/**
|
||||
* 修改应收款管理(宽松版)
|
||||
*/
|
||||
Boolean updateByBo(GearReceivableBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除应收款管理(宽松版)信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
Boolean updatePaidAmountAndAddJournal(GearReceivableBo bo);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.gear.oa.service;
|
||||
|
||||
import com.gear.oa.domain.GearReturnExchange;
|
||||
import com.gear.oa.domain.vo.GearReturnExchangeVo;
|
||||
import com.gear.oa.domain.bo.GearReturnExchangeBo;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 退换货管理Service接口
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
public interface IGearReturnExchangeService {
|
||||
|
||||
/**
|
||||
* 查询退换货管理
|
||||
*/
|
||||
GearReturnExchangeVo queryById(Long returnExchangeId);
|
||||
|
||||
/**
|
||||
* 查询退换货管理列表
|
||||
*/
|
||||
TableDataInfo<GearReturnExchangeVo> queryPageList(GearReturnExchangeBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询退换货管理列表
|
||||
*/
|
||||
List<GearReturnExchangeVo> queryList(GearReturnExchangeBo bo);
|
||||
|
||||
/**
|
||||
* 新增退换货管理
|
||||
*/
|
||||
Boolean insertByBo(GearReturnExchangeBo bo);
|
||||
|
||||
/**
|
||||
* 修改退换货管理
|
||||
*/
|
||||
Boolean updateByBo(GearReturnExchangeBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除退换货管理信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearCustomerBo;
|
||||
import com.gear.oa.domain.vo.GearCustomerVo;
|
||||
import com.gear.oa.domain.GearCustomer;
|
||||
import com.gear.oa.mapper.GearCustomerMapper;
|
||||
import com.gear.oa.service.IGearCustomerService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* CRM 客户Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearCustomerServiceImpl implements IGearCustomerService {
|
||||
|
||||
private final GearCustomerMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询CRM 客户
|
||||
*/
|
||||
@Override
|
||||
public GearCustomerVo queryById(Long customerId){
|
||||
return baseMapper.selectVoById(customerId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearCustomerVo> queryPageList(GearCustomerBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<GearCustomer> lqw = buildQueryWrapper(bo);
|
||||
Page<GearCustomerVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询CRM 客户列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearCustomerVo> queryList(GearCustomerBo bo) {
|
||||
LambdaQueryWrapper<GearCustomer> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearCustomer> buildQueryWrapper(GearCustomerBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearCustomer> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), GearCustomer::getName, bo.getName());
|
||||
lqw.eq(bo.getFollowUpStatus() != null, GearCustomer::getFollowUpStatus, bo.getFollowUpStatus());
|
||||
lqw.eq(bo.getContactLastTime() != null, GearCustomer::getContactLastTime, bo.getContactLastTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContactLastContent()), GearCustomer::getContactLastContent, bo.getContactLastContent());
|
||||
lqw.eq(bo.getContactNextTime() != null, GearCustomer::getContactNextTime, bo.getContactNextTime());
|
||||
lqw.eq(bo.getOwnerUserId() != null, GearCustomer::getOwnerUserId, bo.getOwnerUserId());
|
||||
lqw.eq(bo.getOwnerTime() != null, GearCustomer::getOwnerTime, bo.getOwnerTime());
|
||||
lqw.eq(bo.getDealStatus() != null, GearCustomer::getDealStatus, bo.getDealStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMobile()), GearCustomer::getMobile, bo.getMobile());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTelephone()), GearCustomer::getTelephone, bo.getTelephone());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getQq()), GearCustomer::getQq, bo.getQq());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWechat()), GearCustomer::getWechat, bo.getWechat());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEmail()), GearCustomer::getEmail, bo.getEmail());
|
||||
lqw.eq(bo.getAreaId() != null, GearCustomer::getAreaId, bo.getAreaId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDetailAddress()), GearCustomer::getDetailAddress, bo.getDetailAddress());
|
||||
lqw.eq(bo.getIndustryId() != null, GearCustomer::getIndustryId, bo.getIndustryId());
|
||||
lqw.eq(bo.getLevel() != null, GearCustomer::getLevel, bo.getLevel());
|
||||
lqw.eq(bo.getSource() != null, GearCustomer::getSource, bo.getSource());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增CRM 客户
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearCustomerBo bo) {
|
||||
GearCustomer add = BeanUtil.toBean(bo, GearCustomer.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setCustomerId(add.getCustomerId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改CRM 客户
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearCustomerBo bo) {
|
||||
GearCustomer update = BeanUtil.toBean(bo, GearCustomer.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearCustomer entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除CRM 客户
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearJournalBo;
|
||||
import com.gear.oa.domain.vo.GearJournalVo;
|
||||
import com.gear.oa.domain.GearJournal;
|
||||
import com.gear.oa.mapper.GearJournalMapper;
|
||||
import com.gear.oa.service.IGearJournalService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 资金日记账Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearJournalServiceImpl implements IGearJournalService {
|
||||
|
||||
private final GearJournalMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询资金日记账
|
||||
*/
|
||||
@Override
|
||||
public GearJournalVo queryById(Long journalId){
|
||||
return baseMapper.selectVoById(journalId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询资金日记账列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearJournalVo> queryPageList(GearJournalBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<GearJournal> lqw = buildQueryWrapper(bo);
|
||||
Page<GearJournalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询资金日记账列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearJournalVo> queryList(GearJournalBo bo) {
|
||||
LambdaQueryWrapper<GearJournal> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearJournal> buildQueryWrapper(GearJournalBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearJournal> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getJournalDate() != null, GearJournal::getJournalDate, bo.getJournalDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSummary()), GearJournal::getSummary, bo.getSummary());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTransType()), GearJournal::getTransType, bo.getTransType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCounterpart()), GearJournal::getCounterpart, bo.getCounterpart());
|
||||
lqw.eq(bo.getIncomeAmount() != null, GearJournal::getIncomeAmount, bo.getIncomeAmount());
|
||||
lqw.eq(bo.getExpenseAmount() != null, GearJournal::getExpenseAmount, bo.getExpenseAmount());
|
||||
lqw.eq(bo.getBalanceAmount() != null, GearJournal::getBalanceAmount, bo.getBalanceAmount());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增资金日记账
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearJournalBo bo) {
|
||||
GearJournal journal = BeanUtil.toBean(bo, GearJournal.class);
|
||||
validEntityBeforeSave(journal);
|
||||
computeBalance(journal);
|
||||
boolean flag = baseMapper.insert(journal) > 0;
|
||||
if (flag) {
|
||||
bo.setJournalId(journal.getJournalId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
@Override
|
||||
public void computeBalance(GearJournal journal) {
|
||||
// 计算新的余额
|
||||
BigDecimal lastBalance = baseMapper.getLastBalance();
|
||||
if (lastBalance == null) {
|
||||
lastBalance = BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal newBalance = lastBalance
|
||||
.add(Optional.ofNullable(journal.getIncomeAmount()).orElse(BigDecimal.ZERO))
|
||||
.subtract(Optional.ofNullable(journal.getExpenseAmount()).orElse(BigDecimal.ZERO));
|
||||
|
||||
journal.setBalanceAmount(newBalance);
|
||||
}
|
||||
/**
|
||||
* 修改资金日记账
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearJournalBo bo) {
|
||||
GearJournal update = BeanUtil.toBean(bo, GearJournal.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearJournal entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除资金日记账
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearOrderDetailBo;
|
||||
import com.gear.oa.domain.vo.GearOrderDetailVo;
|
||||
import com.gear.oa.domain.GearOrderDetail;
|
||||
import com.gear.oa.mapper.GearOrderDetailMapper;
|
||||
import com.gear.oa.service.IGearOrderDetailService;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 订单明细Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearOrderDetailServiceImpl implements IGearOrderDetailService {
|
||||
|
||||
private final GearOrderDetailMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询订单明细
|
||||
*/
|
||||
@Override
|
||||
public GearOrderDetailVo queryById(Long detailId){
|
||||
return baseMapper.selectVoById(detailId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearOrderDetailVo> queryPageList(GearOrderDetailBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<GearOrderDetail> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<GearOrderDetailVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearOrderDetailVo> queryList(GearOrderDetailBo bo) {
|
||||
LambdaQueryWrapper<GearOrderDetail> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
private QueryWrapper<GearOrderDetail> buildQueryWrapperPlus(GearOrderDetailBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
QueryWrapper<GearOrderDetail> qw = new QueryWrapper<>();
|
||||
qw.eq("d.del_flag", 0); // 手动添加逻辑删除条件
|
||||
qw.eq(bo.getOrderId() != null, "d.order_id", bo.getOrderId());
|
||||
qw.eq(bo.getProductId() != null, "d.product_id", bo.getProductId());
|
||||
qw.eq(bo.getQuantity() != null, "d.quantity", bo.getQuantity());
|
||||
qw.eq(StringUtils.isNotBlank(bo.getUnit()), "d.unit", bo.getUnit());
|
||||
return qw;
|
||||
}
|
||||
private LambdaQueryWrapper<GearOrderDetail> buildQueryWrapper(GearOrderDetailBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearOrderDetail> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getOrderId() != null, GearOrderDetail::getOrderId, bo.getOrderId());
|
||||
lqw.eq(bo.getProductId() != null, GearOrderDetail::getProductId, bo.getProductId());
|
||||
lqw.eq(bo.getQuantity() != null, GearOrderDetail::getQuantity, bo.getQuantity());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), GearOrderDetail::getUnit, bo.getUnit());
|
||||
lqw.eq(bo.getTaxPrice() != null, GearOrderDetail::getTaxPrice, bo.getTaxPrice());
|
||||
lqw.eq(bo.getNoTaxPrice() != null, GearOrderDetail::getNoTaxPrice, bo.getNoTaxPrice());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单明细
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearOrderDetailBo bo) {
|
||||
GearOrderDetail add = BeanUtil.toBean(bo, GearOrderDetail.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setDetailId(add.getDetailId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单明细
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearOrderDetailBo bo) {
|
||||
GearOrderDetail update = BeanUtil.toBean(bo, GearOrderDetail.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearOrderDetail entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除订单明细
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GearOrderDetailVo> queryListByOrderId(Long orderId) {
|
||||
return baseMapper.selectVoListByOrderId(orderId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearOrderBo;
|
||||
import com.gear.oa.domain.vo.GearOrderVo;
|
||||
import com.gear.oa.domain.GearOrder;
|
||||
import com.gear.oa.mapper.GearOrderMapper;
|
||||
import com.gear.oa.service.IGearOrderService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 订单主Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearOrderServiceImpl implements IGearOrderService {
|
||||
|
||||
private final GearOrderMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询订单主
|
||||
*/
|
||||
@Override
|
||||
public GearOrderVo queryById(Long orderId){
|
||||
return baseMapper.selectVoById(orderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearOrderVo> queryPageList(GearOrderBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<GearOrder> lqw = buildQueryWrapper(bo);
|
||||
Page<GearOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单主列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearOrderVo> queryList(GearOrderBo bo) {
|
||||
LambdaQueryWrapper<GearOrder> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearOrder> buildQueryWrapper(GearOrderBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearOrder> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOrderCode()), GearOrder::getOrderCode, bo.getOrderCode());
|
||||
lqw.eq(bo.getCustomerId() != null, GearOrder::getCustomerId, bo.getCustomerId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSalesManager()), GearOrder::getSalesManager, bo.getSalesManager());
|
||||
lqw.eq(bo.getOrderStatus() != null, GearOrder::getOrderStatus, bo.getOrderStatus());
|
||||
lqw.eq(bo.getTradeType() != null, GearOrder::getTradeType, bo.getTradeType());
|
||||
lqw.eq(bo.getTaxAmount() != null, GearOrder::getTaxAmount, bo.getTaxAmount());
|
||||
lqw.eq(bo.getNoTaxAmount() != null, GearOrder::getNoTaxAmount, bo.getNoTaxAmount());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearOrderBo bo) {
|
||||
GearOrder add = BeanUtil.toBean(bo, GearOrder.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOrderId(add.getOrderId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearOrderBo bo) {
|
||||
GearOrder update = BeanUtil.toBean(bo, GearOrder.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearOrder entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除订单主
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<GearOrderVo> queryPageListByStatus(GearOrderBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<GearOrder> lqw = buildQueryWrapperByStatus(bo);
|
||||
Page<GearOrderVo> result = baseMapper.selectVoPlusPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
private QueryWrapper<GearOrder> buildQueryWrapperByStatus(GearOrderBo bo) {
|
||||
QueryWrapper<GearOrder> lqw = Wrappers.query();
|
||||
// 修改为order_status不是零就查出来
|
||||
if (bo.getOrderStatus() != null) {
|
||||
if (bo.getOrderStatus() == -1) {
|
||||
// 当orderStatus为-1时,查询所有非0状态的记录
|
||||
lqw.ne("o.order_status", 0);
|
||||
} else {
|
||||
// 当orderStatus为其他值时(包括0),按指定状态查询
|
||||
lqw.eq("o.order_status", bo.getOrderStatus());
|
||||
}
|
||||
}
|
||||
lqw.eq("o.del_flag", 0);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOrderCode()), "o.order_code", bo.getOrderCode());
|
||||
lqw.eq(bo.getCustomerId() != null, "o.customer_id", bo.getCustomerId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSalesManager()), "o.sales_manager", bo.getSalesManager());
|
||||
// 当orderStatus为null时不添加任何条件,查询所有记录
|
||||
return lqw;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearOtherIncomeBo;
|
||||
import com.gear.oa.domain.vo.GearOtherIncomeVo;
|
||||
import com.gear.oa.domain.GearOtherIncome;
|
||||
import com.gear.oa.mapper.GearOtherIncomeMapper;
|
||||
import com.gear.oa.service.IGearOtherIncomeService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 其他收入Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearOtherIncomeServiceImpl implements IGearOtherIncomeService {
|
||||
|
||||
private final GearOtherIncomeMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询其他收入
|
||||
*/
|
||||
@Override
|
||||
public GearOtherIncomeVo queryById(Long otherIncomeId){
|
||||
return baseMapper.selectVoById(otherIncomeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询其他收入列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearOtherIncomeVo> queryPageList(GearOtherIncomeBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<GearOtherIncome> lqw = buildQueryWrapper(bo);
|
||||
Page<GearOtherIncomeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询其他收入列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearOtherIncomeVo> queryList(GearOtherIncomeBo bo) {
|
||||
LambdaQueryWrapper<GearOtherIncome> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearOtherIncome> buildQueryWrapper(GearOtherIncomeBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearOtherIncome> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getIncomeDate() != null, GearOtherIncome::getIncomeDate, bo.getIncomeDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getIncomeType()), GearOtherIncome::getIncomeType, bo.getIncomeType());
|
||||
lqw.eq(bo.getAmount() != null, GearOtherIncome::getAmount, bo.getAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSource()), GearOtherIncome::getSource, bo.getSource());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增其他收入
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearOtherIncomeBo bo) {
|
||||
GearOtherIncome add = BeanUtil.toBean(bo, GearOtherIncome.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOtherIncomeId(add.getOtherIncomeId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改其他收入
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearOtherIncomeBo bo) {
|
||||
GearOtherIncome update = BeanUtil.toBean(bo, GearOtherIncome.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearOtherIncome entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除其他收入
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.gear.oa.domain.GearJournal;
|
||||
import com.gear.oa.mapper.GearJournalMapper;
|
||||
import com.gear.oa.mapper.GearSupplierMapper;
|
||||
import com.gear.oa.service.IGearJournalService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearPayableBo;
|
||||
import com.gear.oa.domain.vo.GearPayableVo;
|
||||
import com.gear.oa.domain.GearPayable;
|
||||
import com.gear.oa.mapper.GearPayableMapper;
|
||||
import com.gear.oa.service.IGearPayableService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 应付款管理(宽松版)Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearPayableServiceImpl implements IGearPayableService {
|
||||
|
||||
private final GearPayableMapper baseMapper;
|
||||
@Resource
|
||||
private GearJournalMapper journalMapper;
|
||||
@Resource
|
||||
private GearSupplierMapper supplierMapper;
|
||||
@Resource
|
||||
private IGearJournalService gearJournalService;
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public GearPayableVo queryById(Long payableId){
|
||||
return baseMapper.selectVoById(payableId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearPayableVo> queryPageList(GearPayableBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<GearPayable> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<GearPayableVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
private QueryWrapper<GearPayable> buildQueryWrapperPlus(GearPayableBo bo) {
|
||||
QueryWrapper<GearPayable> lqw = Wrappers.query();
|
||||
lqw.eq("p.del_flag", 0);
|
||||
lqw.eq(bo.getSupplierId() != null, "p.supplier_id", bo.getSupplierId());
|
||||
lqw.eq(bo.getOrderId() != null, "p.order_id", bo.getOrderId());
|
||||
lqw.eq(bo.getDueDate() != null, "p.due_date", bo.getDueDate());
|
||||
lqw.eq(bo.getAmount() != null, "p.amount", bo.getAmount());
|
||||
lqw.eq(bo.getPaidAmount() != null, "p.paid_amount", bo.getPaidAmount());
|
||||
lqw.eq(bo.getBalanceAmount() != null, "p.balance_amount", bo.getBalanceAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), "p.status", bo.getStatus());
|
||||
return lqw;
|
||||
}
|
||||
/**
|
||||
* 查询应付款管理(宽松版)列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearPayableVo> queryList(GearPayableBo bo) {
|
||||
LambdaQueryWrapper<GearPayable> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearPayable> buildQueryWrapper(GearPayableBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearPayable> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getSupplierId() != null, GearPayable::getSupplierId, bo.getSupplierId());
|
||||
lqw.eq(bo.getOrderId() != null, GearPayable::getOrderId, bo.getOrderId());
|
||||
lqw.eq(bo.getDueDate() != null, GearPayable::getDueDate, bo.getDueDate());
|
||||
lqw.eq(bo.getAmount() != null, GearPayable::getAmount, bo.getAmount());
|
||||
lqw.eq(bo.getPaidAmount() != null, GearPayable::getPaidAmount, bo.getPaidAmount());
|
||||
lqw.eq(bo.getBalanceAmount() != null, GearPayable::getBalanceAmount, bo.getBalanceAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), GearPayable::getStatus, bo.getStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应付款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearPayableBo bo) {
|
||||
GearPayable add = BeanUtil.toBean(bo, GearPayable.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setPayableId(add.getPayableId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改应付款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearPayableBo bo) {
|
||||
GearPayable update = BeanUtil.toBean(bo, GearPayable.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearPayable entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除应付款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updatePaidAmountAndAddJournal(GearPayableBo bo) {
|
||||
// 1. 更新应付款已付金额
|
||||
GearPayable payable = baseMapper.selectById(bo.getPayableId());
|
||||
if (payable == null) {
|
||||
throw new RuntimeException("应付款记录不存在");
|
||||
}
|
||||
// bo.getPaidAmount()传入的是变化量
|
||||
BigDecimal changePaidAmount = bo.getPaidAmount();
|
||||
BigDecimal newPaidAmount = payable.getPaidAmount().add(changePaidAmount);
|
||||
|
||||
GearPayable updateGearPayable = new GearPayable();
|
||||
updateGearPayable.setPayableId(bo.getPayableId());
|
||||
updateGearPayable.setPaidAmount(newPaidAmount);
|
||||
if(payable.getPaidAmount().compareTo(BigDecimal.ZERO) == 0
|
||||
&& changePaidAmount.compareTo(BigDecimal.ZERO) > 0){
|
||||
updateGearPayable.setStatus("部分支付");
|
||||
}
|
||||
if(newPaidAmount.compareTo(payable.getAmount()) == 0){
|
||||
updateGearPayable.setStatus("已结清");
|
||||
}
|
||||
int countFlag = baseMapper.updateById(updateGearPayable);
|
||||
|
||||
// 2. 新增资金日记账记录
|
||||
GearJournal journal = new GearJournal();
|
||||
journal.setJournalDate(new Date());
|
||||
journal.setSummary("向供应商付款");
|
||||
journal.setTransType("支出");
|
||||
journal.setCounterpart(supplierMapper.selectById(payable.getSupplierId()).getName());
|
||||
journal.setIncomeAmount(BigDecimal.ZERO);
|
||||
journal.setExpenseAmount(changePaidAmount);
|
||||
gearJournalService.computeBalance(journal);
|
||||
journal.setRemark("应付款ID: " + bo.getPayableId());
|
||||
countFlag += journalMapper.insert(journal);
|
||||
return countFlag == 2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.gear.oa.domain.GearJournal;
|
||||
import com.gear.oa.mapper.GearCustomerMapper;
|
||||
import com.gear.oa.mapper.GearJournalMapper;
|
||||
import com.gear.oa.service.IGearJournalService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearReceivableBo;
|
||||
import com.gear.oa.domain.vo.GearReceivableVo;
|
||||
import com.gear.oa.domain.GearReceivable;
|
||||
import com.gear.oa.mapper.GearReceivableMapper;
|
||||
import com.gear.oa.service.IGearReceivableService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 应收款管理(宽松版)Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearReceivableServiceImpl implements IGearReceivableService {
|
||||
|
||||
private final GearReceivableMapper baseMapper;
|
||||
@Resource
|
||||
private GearJournalMapper journalMapper;
|
||||
@Resource
|
||||
private GearCustomerMapper customerMapper;
|
||||
@Resource
|
||||
private IGearJournalService gearJournalService;
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public GearReceivableVo queryById(Long receivableId){
|
||||
return baseMapper.selectVoById(receivableId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询应收款管理(宽松版)列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearReceivableVo> queryPageList(GearReceivableBo bo, PageQuery pageQuery) {
|
||||
QueryWrapper<GearReceivable> lqw = buildQueryWrapperPlus(bo);
|
||||
Page<GearReceivableVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
private QueryWrapper<GearReceivable> buildQueryWrapperPlus(GearReceivableBo bo) {
|
||||
QueryWrapper<GearReceivable> lqw = Wrappers.query();
|
||||
lqw.eq("r.del_flag", 0);
|
||||
lqw.eq(bo.getCustomerId() != null, "r.customer_id", bo.getCustomerId());
|
||||
lqw.eq(bo.getOrderId() != null, "r.order_id", bo.getOrderId());
|
||||
lqw.eq(bo.getDueDate() != null, "r.due_date", bo.getDueDate());
|
||||
lqw.eq(bo.getAmount() != null, "r.amount", bo.getAmount());
|
||||
lqw.eq(bo.getPaidAmount() != null, "r.paid_amount", bo.getPaidAmount());
|
||||
lqw.eq(bo.getBalanceAmount() != null, "r.balance_amount", bo.getBalanceAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus());
|
||||
return lqw;
|
||||
}
|
||||
/**
|
||||
* 查询应收款管理(宽松版)列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearReceivableVo> queryList(GearReceivableBo bo) {
|
||||
LambdaQueryWrapper<GearReceivable> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearReceivable> buildQueryWrapper(GearReceivableBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearReceivable> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getCustomerId() != null, GearReceivable::getCustomerId, bo.getCustomerId());
|
||||
lqw.eq(bo.getOrderId() != null, GearReceivable::getOrderId, bo.getOrderId());
|
||||
lqw.eq(bo.getDueDate() != null, GearReceivable::getDueDate, bo.getDueDate());
|
||||
lqw.eq(bo.getAmount() != null, GearReceivable::getAmount, bo.getAmount());
|
||||
lqw.eq(bo.getPaidAmount() != null, GearReceivable::getPaidAmount, bo.getPaidAmount());
|
||||
lqw.eq(bo.getBalanceAmount() != null, GearReceivable::getBalanceAmount, bo.getBalanceAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), GearReceivable::getStatus, bo.getStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增应收款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearReceivableBo bo) {
|
||||
GearReceivable add = BeanUtil.toBean(bo, GearReceivable.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setReceivableId(add.getReceivableId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改应收款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearReceivableBo bo) {
|
||||
GearReceivable update = BeanUtil.toBean(bo, GearReceivable.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearReceivable entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除应收款管理(宽松版)
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean updatePaidAmountAndAddJournal(GearReceivableBo bo) {
|
||||
// 1. 更新应收款已收金额
|
||||
GearReceivable receivable = baseMapper.selectById(bo.getReceivableId());
|
||||
if (receivable == null) {
|
||||
throw new RuntimeException("应收款记录不存在");
|
||||
}
|
||||
// bo.getPaidAmount()传入的是变化量
|
||||
BigDecimal changePaidAmount = bo.getPaidAmount();
|
||||
BigDecimal newPaidAmount = receivable.getPaidAmount().add(changePaidAmount);
|
||||
|
||||
GearReceivable updateGearReceivable = new GearReceivable();
|
||||
updateGearReceivable.setReceivableId(bo.getReceivableId());
|
||||
updateGearReceivable.setPaidAmount(newPaidAmount);
|
||||
if(receivable.getPaidAmount().compareTo(BigDecimal.ZERO) == 0
|
||||
&& changePaidAmount.compareTo(BigDecimal.ZERO) > 0){
|
||||
updateGearReceivable.setStatus("部分支付");
|
||||
}
|
||||
if(newPaidAmount.compareTo(receivable.getAmount()) == 0){
|
||||
updateGearReceivable.setStatus("已结清");
|
||||
}
|
||||
int countFlag = baseMapper.updateById(updateGearReceivable);
|
||||
|
||||
// 2. 新增资金日记账记录
|
||||
GearJournal journal = new GearJournal();
|
||||
journal.setJournalDate(new Date());
|
||||
journal.setSummary("客户付款");
|
||||
journal.setTransType("收入");
|
||||
journal.setCounterpart(customerMapper.selectById(receivable.getCustomerId()).getName());
|
||||
journal.setIncomeAmount(changePaidAmount);
|
||||
journal.setExpenseAmount(BigDecimal.ZERO);
|
||||
gearJournalService.computeBalance(journal);
|
||||
journal.setRemark("应收款ID: " + bo.getReceivableId());
|
||||
countFlag += journalMapper.insert(journal);
|
||||
return countFlag == 2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.gear.oa.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.gear.common.utils.StringUtils;
|
||||
import com.gear.common.core.page.TableDataInfo;
|
||||
import com.gear.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.gear.oa.domain.bo.GearReturnExchangeBo;
|
||||
import com.gear.oa.domain.vo.GearReturnExchangeVo;
|
||||
import com.gear.oa.domain.GearReturnExchange;
|
||||
import com.gear.oa.mapper.GearReturnExchangeMapper;
|
||||
import com.gear.oa.service.IGearReturnExchangeService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 退换货管理Service业务层处理
|
||||
*
|
||||
* @author Joshi
|
||||
* @date 2025-09-02
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class GearReturnExchangeServiceImpl implements IGearReturnExchangeService {
|
||||
|
||||
private final GearReturnExchangeMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询退换货管理
|
||||
*/
|
||||
@Override
|
||||
public GearReturnExchangeVo queryById(Long returnExchangeId){
|
||||
return baseMapper.selectVoById(returnExchangeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退换货管理列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<GearReturnExchangeVo> queryPageList(GearReturnExchangeBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<GearReturnExchange> lqw = buildQueryWrapper(bo);
|
||||
Page<GearReturnExchangeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退换货管理列表
|
||||
*/
|
||||
@Override
|
||||
public List<GearReturnExchangeVo> queryList(GearReturnExchangeBo bo) {
|
||||
LambdaQueryWrapper<GearReturnExchange> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<GearReturnExchange> buildQueryWrapper(GearReturnExchangeBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<GearReturnExchange> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getOrderDetailId() != null, GearReturnExchange::getOrderDetailId, bo.getOrderDetailId());
|
||||
lqw.eq(bo.getCustomerId() != null, GearReturnExchange::getCustomerId, bo.getCustomerId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getType()), GearReturnExchange::getType, bo.getType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getReason()), GearReturnExchange::getReason, bo.getReason());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), GearReturnExchange::getStatus, bo.getStatus());
|
||||
lqw.eq(bo.getAmount() != null, GearReturnExchange::getAmount, bo.getAmount());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增退换货管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(GearReturnExchangeBo bo) {
|
||||
GearReturnExchange add = BeanUtil.toBean(bo, GearReturnExchange.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setReturnExchangeId(add.getReturnExchangeId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改退换货管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(GearReturnExchangeBo bo) {
|
||||
GearReturnExchange update = BeanUtil.toBean(bo, GearReturnExchange.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(GearReturnExchange entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除退换货管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
36
gear-oa/src/main/resources/mapper/oa/GearCustomerMapper.xml
Normal file
36
gear-oa/src/main/resources/mapper/oa/GearCustomerMapper.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?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.gear.oa.mapper.GearCustomerMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearCustomer" id="GearCustomerResult">
|
||||
<result property="customerId" column="customer_id"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="followUpStatus" column="follow_up_status"/>
|
||||
<result property="contactLastTime" column="contact_last_time"/>
|
||||
<result property="contactLastContent" column="contact_last_content"/>
|
||||
<result property="contactNextTime" column="contact_next_time"/>
|
||||
<result property="ownerUserId" column="owner_user_id"/>
|
||||
<result property="ownerTime" column="owner_time"/>
|
||||
<result property="dealStatus" column="deal_status"/>
|
||||
<result property="mobile" column="mobile"/>
|
||||
<result property="telephone" column="telephone"/>
|
||||
<result property="qq" column="qq"/>
|
||||
<result property="wechat" column="wechat"/>
|
||||
<result property="email" column="email"/>
|
||||
<result property="areaId" column="area_id"/>
|
||||
<result property="detailAddress" column="detail_address"/>
|
||||
<result property="industryId" column="industry_id"/>
|
||||
<result property="level" column="level"/>
|
||||
<result property="source" column="source"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
32
gear-oa/src/main/resources/mapper/oa/GearJournalMapper.xml
Normal file
32
gear-oa/src/main/resources/mapper/oa/GearJournalMapper.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?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.gear.oa.mapper.GearJournalMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearJournal" id="GearJournalResult">
|
||||
<result property="journalId" column="journal_id"/>
|
||||
<result property="journalDate" column="journal_date"/>
|
||||
<result property="summary" column="summary"/>
|
||||
<result property="transType" column="trans_type"/>
|
||||
<result property="counterpart" column="counterpart"/>
|
||||
<result property="incomeAmount" column="income_amount"/>
|
||||
<result property="expenseAmount" column="expense_amount"/>
|
||||
<result property="balanceAmount" column="balance_amount"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
<select id="getLastBalance" resultType="java.math.BigDecimal">
|
||||
SELECT balance_amount
|
||||
FROM gear_journal
|
||||
WHERE del_flag = 0
|
||||
ORDER BY create_time DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?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.gear.oa.mapper.GearOrderDetailMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearOrderDetail" id="GearOrderDetailResult">
|
||||
<result property="detailId" column="detail_id"/>
|
||||
<result property="orderId" column="order_id"/>
|
||||
<result property="productId" column="product_id"/>
|
||||
<result property="quantity" column="quantity"/>
|
||||
<result property="unit" column="unit"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="taxPrice" column="tax_price"/>
|
||||
<result property="noTaxPrice" column="no_tax_price"/>
|
||||
</resultMap>
|
||||
<select id="selectVoListByOrderId" resultType="com.gear.oa.domain.vo.GearOrderDetailVo">
|
||||
SELECT * FROM gear_order_detail WHERE order_id = #{orderId} AND del_flag = 0
|
||||
</select>
|
||||
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearOrderDetailVo">
|
||||
SELECT
|
||||
d.*,
|
||||
p.product_name AS productName,
|
||||
p.product_code AS productCode
|
||||
FROM gear_order_detail d
|
||||
LEFT JOIN gear_product p ON d.product_id = p.product_id AND p.del_flag = 0
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
44
gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml
Normal file
44
gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?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.gear.oa.mapper.GearOrderMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearOrder" id="GearOrderResult">
|
||||
<result property="orderId" column="order_id"/>
|
||||
<result property="orderCode" column="order_code"/>
|
||||
<result property="customerId" column="customer_id"/>
|
||||
<result property="salesManager" column="sales_manager"/>
|
||||
<result property="orderStatus" column="order_status"/>
|
||||
<result property="tradeType" column="trade_type"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="taxAmount" column="tax_amount"/>
|
||||
<result property="noTaxAmount" column="no_tax_amount"/>
|
||||
</resultMap>
|
||||
<select id="selectVoPlusPage" resultType="com.gear.oa.domain.vo.GearOrderVo">
|
||||
select o.order_id,
|
||||
o.order_code,
|
||||
o.customer_id,
|
||||
o.sales_manager,
|
||||
o.order_status,
|
||||
o.remark,
|
||||
o.del_flag,
|
||||
o.create_time,
|
||||
o.create_by,
|
||||
o.update_time,
|
||||
o.update_by,
|
||||
o.tax_amount,
|
||||
o.no_tax_amount,
|
||||
c.name as customerName
|
||||
from gear_order o
|
||||
left join gear_customer c on o.customer_id = c.customer_id and c.del_flag = 0
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?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.gear.oa.mapper.GearOtherIncomeMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearOtherIncome" id="GearOtherIncomeResult">
|
||||
<result property="otherIncomeId" column="other_income_id"/>
|
||||
<result property="incomeDate" column="income_date"/>
|
||||
<result property="incomeType" column="income_type"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="source" column="source"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
45
gear-oa/src/main/resources/mapper/oa/GearPayableMapper.xml
Normal file
45
gear-oa/src/main/resources/mapper/oa/GearPayableMapper.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?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.gear.oa.mapper.GearPayableMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearPayable" id="GearPayableResult">
|
||||
<result property="payableId" column="payable_id"/>
|
||||
<result property="supplierId" column="supplier_id"/>
|
||||
<result property="orderId" column="order_id"/>
|
||||
<result property="dueDate" column="due_date"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="paidAmount" column="paid_amount"/>
|
||||
<result property="balanceAmount" column="balance_amount"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearPayableVo">
|
||||
select p.payable_id,
|
||||
p.supplier_id,
|
||||
s.name as supplierName,
|
||||
p.order_id,
|
||||
p.due_date,
|
||||
p.amount,
|
||||
p.paid_amount,
|
||||
p.balance_amount,
|
||||
p.status,
|
||||
p.del_flag,
|
||||
p.remark,
|
||||
p.create_time,
|
||||
p.create_by,
|
||||
p.update_time,
|
||||
p.update_by
|
||||
from gear_payable p
|
||||
left join gear_supplier s on p.supplier_id = s.supplier_id and s.del_flag = 0
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?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.gear.oa.mapper.GearReceivableMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearReceivable" id="GearReceivableResult">
|
||||
<result property="receivableId" column="receivable_id"/>
|
||||
<result property="customerId" column="customer_id"/>
|
||||
<result property="orderId" column="order_id"/>
|
||||
<result property="dueDate" column="due_date"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="paidAmount" column="paid_amount"/>
|
||||
<result property="balanceAmount" column="balance_amount"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
<select id="selectVoPagePlus" resultType="com.gear.oa.domain.vo.GearReceivableVo">
|
||||
select r.receivable_id,
|
||||
r.customer_id,
|
||||
r.order_id,
|
||||
r.due_date,
|
||||
r.amount,
|
||||
r.paid_amount,
|
||||
r.balance_amount,
|
||||
r.status,
|
||||
r.del_flag,
|
||||
r.remark,
|
||||
r.create_time,
|
||||
r.create_by,
|
||||
r.update_time,
|
||||
r.update_by,
|
||||
c.name as customerName
|
||||
from gear_receivable r
|
||||
left join gear_customer c on r.customer_id = c.customer_id and c.del_flag = 0
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?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.gear.oa.mapper.GearReturnExchangeMapper">
|
||||
|
||||
<resultMap type="com.gear.oa.domain.GearReturnExchange" id="GearReturnExchangeResult">
|
||||
<result property="returnExchangeId" column="return_exchange_id"/>
|
||||
<result property="orderDetailId" column="order_detail_id"/>
|
||||
<result property="customerId" column="customer_id"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="reason" column="reason"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user