diff --git a/gear-admin/src/main/resources/application-prod.yml b/gear-admin/src/main/resources/application-prod.yml index 86275f9..76c00c7 100644 --- a/gear-admin/src/main/resources/application-prod.yml +++ b/gear-admin/src/main/resources/application-prod.yml @@ -52,7 +52,7 @@ spring: driverClassName: com.mysql.cj.jdbc.Driver # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) - url: jdbc:mysql://47.117.71.33:11293/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true username: root password: Fuande@666 # 从库数据源 @@ -60,7 +60,7 @@ spring: lazy: true type: ${spring.datasource.type} driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://47.117.71.33:11293/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + url: jdbc:mysql://49.232.154.205:10080/gear?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true username: root password: Fuande@666 # oracle: diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearCustomerController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearCustomerController.java new file mode 100644 index 0000000..5e080a8 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearCustomerController.java @@ -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 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 list = iGearCustomerService.queryList(bo); + ExcelUtil.exportExcel(list, "CRM 客户", GearCustomerVo.class, response); + } + + /** + * 获取CRM 客户详细信息 + * + * @param customerId 主键 + */ + @GetMapping("/{customerId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long customerId) { + return R.ok(iGearCustomerService.queryById(customerId)); + } + + /** + * 新增CRM 客户 + */ + @Log(title = "CRM 客户", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearCustomerBo bo) { + return toAjax(iGearCustomerService.insertByBo(bo)); + } + + /** + * 修改CRM 客户 + */ + @Log(title = "CRM 客户", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] customerIds) { + return toAjax(iGearCustomerService.deleteWithValidByIds(Arrays.asList(customerIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearJournalController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearJournalController.java new file mode 100644 index 0000000..92826f2 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearJournalController.java @@ -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 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 list = iGearJournalService.queryList(bo); + ExcelUtil.exportExcel(list, "资金日记账", GearJournalVo.class, response); + } + + /** + * 获取资金日记账详细信息 + * + * @param journalId 主键 + */ + @GetMapping("/{journalId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long journalId) { + return R.ok(iGearJournalService.queryById(journalId)); + } + + /** + * 新增资金日记账 + */ + @Log(title = "资金日记账", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearJournalBo bo) { + return toAjax(iGearJournalService.insertByBo(bo)); + } + + /** + * 修改资金日记账 + */ + @Log(title = "资金日记账", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearJournalBo bo) { + return toAjax(iGearJournalService.updateByBo(bo)); + } + + /** + * 删除资金日记账 + * + * @param journalIds 主键串 + */ + @Log(title = "资金日记账", businessType = BusinessType.DELETE) + @DeleteMapping("/{journalIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] journalIds) { + return toAjax(iGearJournalService.deleteWithValidByIds(Arrays.asList(journalIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearOrderController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearOrderController.java new file mode 100644 index 0000000..e203e04 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearOrderController.java @@ -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 list(GearOrderBo bo, PageQuery pageQuery) { + return iGearOrderService.queryPageList(bo, pageQuery); + } + /** + * order_status不是零就查出来 + * 新接口 不是预订单的 + */ + @GetMapping("/listByStatus") + public TableDataInfo 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 list = iGearOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "订单主", GearOrderVo.class, response); + } + + /** + * 获取订单主详细信息 + * + * @param orderId 主键 + */ + @GetMapping("/{orderId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long orderId) { + return R.ok(iGearOrderService.queryById(orderId)); + } + + /** + * 新增订单主 + */ + @Log(title = "订单主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearOrderBo bo) { + return toAjax(iGearOrderService.insertByBo(bo)); + } + + /** + * 修改订单主 + */ + @Log(title = "订单主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearOrderBo bo) { + return toAjax(iGearOrderService.updateByBo(bo)); + } + + /** + * 删除订单主 + * + * @param orderIds 主键串 + */ + @Log(title = "订单主", businessType = BusinessType.DELETE) + @DeleteMapping("/{orderIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] orderIds) { + return toAjax(iGearOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearOrderDetailController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearOrderDetailController.java new file mode 100644 index 0000000..7c07650 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearOrderDetailController.java @@ -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> listByOrderId(@PathVariable Long orderId) { + List list = iGearOrderDetailService.queryListByOrderId(orderId); + return R.ok(list); + } + /** + * 查询订单明细列表 + */ + @GetMapping("/list") + public TableDataInfo 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 list = iGearOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "订单明细", GearOrderDetailVo.class, response); + } + + /** + * 获取订单明细详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iGearOrderDetailService.queryById(detailId)); + } + + /** + * 新增订单明细 + */ + @Log(title = "订单明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearOrderDetailBo bo) { + return toAjax(iGearOrderDetailService.insertByBo(bo)); + } + + /** + * 修改订单明细 + */ + @Log(title = "订单明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearOrderDetailBo bo) { + return toAjax(iGearOrderDetailService.updateByBo(bo)); + } + + /** + * 删除订单明细 + * + * @param detailIds 主键串 + */ + @Log(title = "订单明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iGearOrderDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearOtherIncomeController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearOtherIncomeController.java new file mode 100644 index 0000000..8b84522 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearOtherIncomeController.java @@ -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 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 list = iGearOtherIncomeService.queryList(bo); + ExcelUtil.exportExcel(list, "其他收入", GearOtherIncomeVo.class, response); + } + + /** + * 获取其他收入详细信息 + * + * @param otherIncomeId 主键 + */ + @GetMapping("/{otherIncomeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long otherIncomeId) { + return R.ok(iGearOtherIncomeService.queryById(otherIncomeId)); + } + + /** + * 新增其他收入 + */ + @Log(title = "其他收入", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearOtherIncomeBo bo) { + return toAjax(iGearOtherIncomeService.insertByBo(bo)); + } + + /** + * 修改其他收入 + */ + @Log(title = "其他收入", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearOtherIncomeBo bo) { + return toAjax(iGearOtherIncomeService.updateByBo(bo)); + } + + /** + * 删除其他收入 + * + * @param otherIncomeIds 主键串 + */ + @Log(title = "其他收入", businessType = BusinessType.DELETE) + @DeleteMapping("/{otherIncomeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] otherIncomeIds) { + return toAjax(iGearOtherIncomeService.deleteWithValidByIds(Arrays.asList(otherIncomeIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearPayableController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearPayableController.java new file mode 100644 index 0000000..f6433c6 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearPayableController.java @@ -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 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 list = iGearPayableService.queryList(bo); + ExcelUtil.exportExcel(list, "应付款管理(宽松版)", GearPayableVo.class, response); + } + + /** + * 获取应付款管理(宽松版)详细信息 + * + * @param payableId 主键 + */ + @GetMapping("/{payableId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long payableId) { + return R.ok(iGearPayableService.queryById(payableId)); + } + + /** + * 新增应付款管理(宽松版) + */ + @Log(title = "应付款管理(宽松版)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearPayableBo bo) { + return toAjax(iGearPayableService.insertByBo(bo)); + } + /** + * 更新应付款已付金额 & 新增资金日记账 + */ + @Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PostMapping("/updatePaidAmount") + public R updatePaidAmount(@RequestBody GearPayableBo bo) { + return toAjax(iGearPayableService.updatePaidAmountAndAddJournal(bo)); + } + /** + * 修改应付款管理(宽松版) + */ + @Log(title = "应付款管理(宽松版)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearPayableBo bo) { + return toAjax(iGearPayableService.updateByBo(bo)); + } + + /** + * 删除应付款管理(宽松版) + * + * @param payableIds 主键串 + */ + @Log(title = "应付款管理(宽松版)", businessType = BusinessType.DELETE) + @DeleteMapping("/{payableIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] payableIds) { + return toAjax(iGearPayableService.deleteWithValidByIds(Arrays.asList(payableIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearReceivableController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearReceivableController.java new file mode 100644 index 0000000..cadd325 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearReceivableController.java @@ -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 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 list = iGearReceivableService.queryList(bo); + ExcelUtil.exportExcel(list, "应收款管理(宽松版)", GearReceivableVo.class, response); + } + + /** + * 获取应收款管理(宽松版)详细信息 + * + * @param receivableId 主键 + */ + @GetMapping("/{receivableId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long receivableId) { + return R.ok(iGearReceivableService.queryById(receivableId)); + } + + /** + * 新增应收款管理(宽松版) + */ + @Log(title = "应收款管理(宽松版)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearReceivableBo bo) { + return toAjax(iGearReceivableService.insertByBo(bo)); + } + /** + * 更新应收款已收金额 & 新增资金日记账 + */ + @Log(title = "应收款管理(宽松版)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PostMapping("/updatePaidAmount") + public R updatePaidAmount(@RequestBody GearReceivableBo bo) { + return toAjax(iGearReceivableService.updatePaidAmountAndAddJournal(bo)); + } + /** + * 修改应收款管理(宽松版) + */ + @Log(title = "应收款管理(宽松版)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearReceivableBo bo) { + return toAjax(iGearReceivableService.updateByBo(bo)); + } + + /** + * 删除应收款管理(宽松版) + * + * @param receivableIds 主键串 + */ + @Log(title = "应收款管理(宽松版)", businessType = BusinessType.DELETE) + @DeleteMapping("/{receivableIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] receivableIds) { + return toAjax(iGearReceivableService.deleteWithValidByIds(Arrays.asList(receivableIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/controller/GearReturnExchangeController.java b/gear-oa/src/main/java/com/gear/oa/controller/GearReturnExchangeController.java new file mode 100644 index 0000000..7a14631 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/controller/GearReturnExchangeController.java @@ -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 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 list = iGearReturnExchangeService.queryList(bo); + ExcelUtil.exportExcel(list, "退换货管理", GearReturnExchangeVo.class, response); + } + + /** + * 获取退换货管理详细信息 + * + * @param returnExchangeId 主键 + */ + @GetMapping("/{returnExchangeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long returnExchangeId) { + return R.ok(iGearReturnExchangeService.queryById(returnExchangeId)); + } + + /** + * 新增退换货管理 + */ + @Log(title = "退换货管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody GearReturnExchangeBo bo) { + return toAjax(iGearReturnExchangeService.insertByBo(bo)); + } + + /** + * 修改退换货管理 + */ + @Log(title = "退换货管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody GearReturnExchangeBo bo) { + return toAjax(iGearReturnExchangeService.updateByBo(bo)); + } + + /** + * 删除退换货管理 + * + * @param returnExchangeIds 主键串 + */ + @Log(title = "退换货管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{returnExchangeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] returnExchangeIds) { + return toAjax(iGearReturnExchangeService.deleteWithValidByIds(Arrays.asList(returnExchangeIds), true)); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearBomItem.java b/gear-oa/src/main/java/com/gear/oa/domain/GearBomItem.java index c72eeb9..6b40a60 100644 --- a/gear-oa/src/main/java/com/gear/oa/domain/GearBomItem.java +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearBomItem.java @@ -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; /** diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearCustomer.java b/gear-oa/src/main/java/com/gear/oa/domain/GearCustomer.java new file mode 100644 index 0000000..a475405 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearCustomer.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearJournal.java b/gear-oa/src/main/java/com/gear/oa/domain/GearJournal.java new file mode 100644 index 0000000..0128ece --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearJournal.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearOrder.java b/gear-oa/src/main/java/com/gear/oa/domain/GearOrder.java new file mode 100644 index 0000000..8b96679 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearOrder.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearOrderDetail.java b/gear-oa/src/main/java/com/gear/oa/domain/GearOrderDetail.java new file mode 100644 index 0000000..724232e --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearOrderDetail.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearOtherIncome.java b/gear-oa/src/main/java/com/gear/oa/domain/GearOtherIncome.java new file mode 100644 index 0000000..8fd62ec --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearOtherIncome.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearPayable.java b/gear-oa/src/main/java/com/gear/oa/domain/GearPayable.java new file mode 100644 index 0000000..bdb1d01 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearPayable.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearReceivable.java b/gear-oa/src/main/java/com/gear/oa/domain/GearReceivable.java new file mode 100644 index 0000000..28d09f0 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearReceivable.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/GearReturnExchange.java b/gear-oa/src/main/java/com/gear/oa/domain/GearReturnExchange.java new file mode 100644 index 0000000..9941d1e --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/GearReturnExchange.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearBomItemBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearBomItemBo.java index ba56be5..338be79 100644 --- a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearBomItemBo.java +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearBomItemBo.java @@ -27,7 +27,7 @@ public class GearBomItemBo extends BaseEntity { private Long itemId; /** - * 关联 wms_bom.bom_id + * 关联 Gear_bom.bom_id */ private Long bomId; diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearCustomerBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearCustomerBo.java new file mode 100644 index 0000000..149b729 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearCustomerBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearJournalBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearJournalBo.java new file mode 100644 index 0000000..4f76bd3 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearJournalBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderBo.java new file mode 100644 index 0000000..3af6c8f --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderDetailBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderDetailBo.java new file mode 100644 index 0000000..d5dad08 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOrderDetailBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOtherIncomeBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOtherIncomeBo.java new file mode 100644 index 0000000..d37d24a --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearOtherIncomeBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPayableBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPayableBo.java new file mode 100644 index 0000000..80c30a2 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearPayableBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReceivableBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReceivableBo.java new file mode 100644 index 0000000..ddc4236 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReceivableBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReturnExchangeBo.java b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReturnExchangeBo.java new file mode 100644 index 0000000..0437bbc --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/bo/GearReturnExchangeBo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearBomItemVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearBomItemVo.java index b96c599..c7c601f 100644 --- a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearBomItemVo.java +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearBomItemVo.java @@ -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; /** diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearCustomerVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearCustomerVo.java new file mode 100644 index 0000000..952d2bc --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearCustomerVo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearJournalVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearJournalVo.java new file mode 100644 index 0000000..491710f --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearJournalVo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderDetailVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderDetailVo.java new file mode 100644 index 0000000..599ae29 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderDetailVo.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderVo.java new file mode 100644 index 0000000..a18e6e1 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOrderVo.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOtherIncomeVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOtherIncomeVo.java new file mode 100644 index 0000000..f8e1f21 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearOtherIncomeVo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearPayableVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearPayableVo.java new file mode 100644 index 0000000..356a1f9 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearPayableVo.java @@ -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; + +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReceivableVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReceivableVo.java new file mode 100644 index 0000000..545cc64 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReceivableVo.java @@ -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; +} diff --git a/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReturnExchangeVo.java b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReturnExchangeVo.java new file mode 100644 index 0000000..babc48c --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/domain/vo/GearReturnExchangeVo.java @@ -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; + + +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearCustomerMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearCustomerMapper.java new file mode 100644 index 0000000..61e91b9 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearCustomerMapper.java @@ -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 { + +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearJournalMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearJournalMapper.java new file mode 100644 index 0000000..816f097 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearJournalMapper.java @@ -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 { + + BigDecimal getLastBalance(); +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderDetailMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderDetailMapper.java new file mode 100644 index 0000000..9ea36b8 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderDetailMapper.java @@ -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 { + + List selectVoListByOrderId(Long orderId); + + Page selectVoPagePlus(Page page, @Param("ew") Wrapper wrapper); +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderMapper.java new file mode 100644 index 0000000..76bdef1 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearOrderMapper.java @@ -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 { + + Page selectVoPlusPage(Page page, @Param("ew") Wrapper wrapper); +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearOtherIncomeMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearOtherIncomeMapper.java new file mode 100644 index 0000000..5b3dd32 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearOtherIncomeMapper.java @@ -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 { + +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearPayableMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearPayableMapper.java new file mode 100644 index 0000000..2da0611 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearPayableMapper.java @@ -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 { + + Page selectVoPagePlus(Page build, @Param("ew") QueryWrapper lqw); +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearReceivableMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearReceivableMapper.java new file mode 100644 index 0000000..801e9a2 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearReceivableMapper.java @@ -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 { + + Page selectVoPagePlus(Page build, @Param("ew") QueryWrapper lqw); +} diff --git a/gear-oa/src/main/java/com/gear/oa/mapper/GearReturnExchangeMapper.java b/gear-oa/src/main/java/com/gear/oa/mapper/GearReturnExchangeMapper.java new file mode 100644 index 0000000..29d3b40 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/mapper/GearReturnExchangeMapper.java @@ -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 { + +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearCustomerService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearCustomerService.java new file mode 100644 index 0000000..fbde637 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearCustomerService.java @@ -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 queryPageList(GearCustomerBo bo, PageQuery pageQuery); + + /** + * 查询CRM 客户列表 + */ + List queryList(GearCustomerBo bo); + + /** + * 新增CRM 客户 + */ + Boolean insertByBo(GearCustomerBo bo); + + /** + * 修改CRM 客户 + */ + Boolean updateByBo(GearCustomerBo bo); + + /** + * 校验并批量删除CRM 客户信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearJournalService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearJournalService.java new file mode 100644 index 0000000..70ea62f --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearJournalService.java @@ -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 queryPageList(GearJournalBo bo, PageQuery pageQuery); + + /** + * 查询资金日记账列表 + */ + List queryList(GearJournalBo bo); + + /** + * 新增资金日记账 + */ + Boolean insertByBo(GearJournalBo bo); + + /** + * 修改资金日记账 + */ + Boolean updateByBo(GearJournalBo bo); + + /** + * 校验并批量删除资金日记账信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 计算余额 + */ + void computeBalance(GearJournal journal); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearOrderDetailService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearOrderDetailService.java new file mode 100644 index 0000000..1fc8481 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearOrderDetailService.java @@ -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 queryPageList(GearOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询订单明细列表 + */ + List queryList(GearOrderDetailBo bo); + + /** + * 新增订单明细 + */ + Boolean insertByBo(GearOrderDetailBo bo); + + /** + * 修改订单明细 + */ + Boolean updateByBo(GearOrderDetailBo bo); + + /** + * 校验并批量删除订单明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List queryListByOrderId(Long orderId); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearOrderService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearOrderService.java new file mode 100644 index 0000000..a07f739 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearOrderService.java @@ -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 queryPageList(GearOrderBo bo, PageQuery pageQuery); + + /** + * 查询订单主列表 + */ + List queryList(GearOrderBo bo); + + /** + * 新增订单主 + */ + Boolean insertByBo(GearOrderBo bo); + + /** + * 修改订单主 + */ + Boolean updateByBo(GearOrderBo bo); + + /** + * 校验并批量删除订单主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + TableDataInfo queryPageListByStatus(GearOrderBo bo, PageQuery pageQuery); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearOtherIncomeService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearOtherIncomeService.java new file mode 100644 index 0000000..4e8171e --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearOtherIncomeService.java @@ -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 queryPageList(GearOtherIncomeBo bo, PageQuery pageQuery); + + /** + * 查询其他收入列表 + */ + List queryList(GearOtherIncomeBo bo); + + /** + * 新增其他收入 + */ + Boolean insertByBo(GearOtherIncomeBo bo); + + /** + * 修改其他收入 + */ + Boolean updateByBo(GearOtherIncomeBo bo); + + /** + * 校验并批量删除其他收入信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearPayableService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearPayableService.java new file mode 100644 index 0000000..dabc16a --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearPayableService.java @@ -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 queryPageList(GearPayableBo bo, PageQuery pageQuery); + + /** + * 查询应付款管理(宽松版)列表 + */ + List queryList(GearPayableBo bo); + + /** + * 新增应付款管理(宽松版) + */ + Boolean insertByBo(GearPayableBo bo); + + /** + * 修改应付款管理(宽松版) + */ + Boolean updateByBo(GearPayableBo bo); + + /** + * 校验并批量删除应付款管理(宽松版)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + Boolean updatePaidAmountAndAddJournal(GearPayableBo bo); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearReceivableService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearReceivableService.java new file mode 100644 index 0000000..5119a7c --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearReceivableService.java @@ -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 queryPageList(GearReceivableBo bo, PageQuery pageQuery); + + /** + * 查询应收款管理(宽松版)列表 + */ + List queryList(GearReceivableBo bo); + + /** + * 新增应收款管理(宽松版) + */ + Boolean insertByBo(GearReceivableBo bo); + + /** + * 修改应收款管理(宽松版) + */ + Boolean updateByBo(GearReceivableBo bo); + + /** + * 校验并批量删除应收款管理(宽松版)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + Boolean updatePaidAmountAndAddJournal(GearReceivableBo bo); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/IGearReturnExchangeService.java b/gear-oa/src/main/java/com/gear/oa/service/IGearReturnExchangeService.java new file mode 100644 index 0000000..6e36b14 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/IGearReturnExchangeService.java @@ -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 queryPageList(GearReturnExchangeBo bo, PageQuery pageQuery); + + /** + * 查询退换货管理列表 + */ + List queryList(GearReturnExchangeBo bo); + + /** + * 新增退换货管理 + */ + Boolean insertByBo(GearReturnExchangeBo bo); + + /** + * 修改退换货管理 + */ + Boolean updateByBo(GearReturnExchangeBo bo); + + /** + * 校验并批量删除退换货管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearCustomerServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearCustomerServiceImpl.java new file mode 100644 index 0000000..6f1fdc4 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearCustomerServiceImpl.java @@ -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 queryPageList(GearCustomerBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询CRM 客户列表 + */ + @Override + public List queryList(GearCustomerBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearCustomerBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearJournalServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearJournalServiceImpl.java new file mode 100644 index 0000000..a3b6faa --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearJournalServiceImpl.java @@ -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 queryPageList(GearJournalBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询资金日记账列表 + */ + @Override + public List queryList(GearJournalBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearJournalBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderDetailServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderDetailServiceImpl.java new file mode 100644 index 0000000..917f355 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderDetailServiceImpl.java @@ -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 queryPageList(GearOrderDetailBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询订单明细列表 + */ + @Override + public List queryList(GearOrderDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + private QueryWrapper buildQueryWrapperPlus(GearOrderDetailBo bo) { + Map params = bo.getParams(); + QueryWrapper 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 buildQueryWrapper(GearOrderDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + + @Override + public List queryListByOrderId(Long orderId) { + return baseMapper.selectVoListByOrderId(orderId); + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderServiceImpl.java new file mode 100644 index 0000000..a116f04 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOrderServiceImpl.java @@ -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 queryPageList(GearOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询订单主列表 + */ + @Override + public List queryList(GearOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + + @Override + public TableDataInfo queryPageListByStatus(GearOrderBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperByStatus(bo); + Page result = baseMapper.selectVoPlusPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + private QueryWrapper buildQueryWrapperByStatus(GearOrderBo bo) { + QueryWrapper 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; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearOtherIncomeServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOtherIncomeServiceImpl.java new file mode 100644 index 0000000..d1954cb --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearOtherIncomeServiceImpl.java @@ -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 queryPageList(GearOtherIncomeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询其他收入列表 + */ + @Override + public List queryList(GearOtherIncomeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearOtherIncomeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearPayableServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearPayableServiceImpl.java new file mode 100644 index 0000000..c533cbd --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearPayableServiceImpl.java @@ -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 queryPageList(GearPayableBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + private QueryWrapper buildQueryWrapperPlus(GearPayableBo bo) { + QueryWrapper 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 queryList(GearPayableBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearPayableBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 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; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearReceivableServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearReceivableServiceImpl.java new file mode 100644 index 0000000..bd8177b --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearReceivableServiceImpl.java @@ -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 queryPageList(GearReceivableBo bo, PageQuery pageQuery) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + private QueryWrapper buildQueryWrapperPlus(GearReceivableBo bo) { + QueryWrapper 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 queryList(GearReceivableBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearReceivableBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 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; + } +} diff --git a/gear-oa/src/main/java/com/gear/oa/service/impl/GearReturnExchangeServiceImpl.java b/gear-oa/src/main/java/com/gear/oa/service/impl/GearReturnExchangeServiceImpl.java new file mode 100644 index 0000000..c84a068 --- /dev/null +++ b/gear-oa/src/main/java/com/gear/oa/service/impl/GearReturnExchangeServiceImpl.java @@ -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 queryPageList(GearReturnExchangeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询退换货管理列表 + */ + @Override + public List queryList(GearReturnExchangeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(GearReturnExchangeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-oa/src/main/resources/mapper/oa/GearCustomerMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearCustomerMapper.xml new file mode 100644 index 0000000..a4f19d4 --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearCustomerMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearJournalMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearJournalMapper.xml new file mode 100644 index 0000000..aaa7ff2 --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearJournalMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearOrderDetailMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearOrderDetailMapper.xml new file mode 100644 index 0000000..4f12055 --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearOrderDetailMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml new file mode 100644 index 0000000..fcdd45e --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearOrderMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearOtherIncomeMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearOtherIncomeMapper.xml new file mode 100644 index 0000000..516bdbf --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearOtherIncomeMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearPayableMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearPayableMapper.xml new file mode 100644 index 0000000..246e6ca --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearPayableMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearReceivableMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearReceivableMapper.xml new file mode 100644 index 0000000..2ab3b56 --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearReceivableMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-oa/src/main/resources/mapper/oa/GearReturnExchangeMapper.xml b/gear-oa/src/main/resources/mapper/oa/GearReturnExchangeMapper.xml new file mode 100644 index 0000000..b2e6de8 --- /dev/null +++ b/gear-oa/src/main/resources/mapper/oa/GearReturnExchangeMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + +