From 0ce49d1504a4d61c6558a5481fb85084d054659d Mon Sep 17 00:00:00 2001 From: hdka <823267011@qq.com> Date: Wed, 12 Mar 2025 21:14:46 +0800 Subject: [PATCH] =?UTF-8?q?CRM=E6=8F=90=E4=BA=A4=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmployeeFilesController.java | 3 - .../EmployeeOffboardingController.java | 6 - .../EmployeeOnboardingController.java | 6 - .../oa/controller/OaBusinessController.java | 15 +- .../OaBusinessProductController.java | 6 - .../ruoyi/oa/controller/OaClueController.java | 8 +- .../oa/controller/OaCustomerController.java | 18 +- .../OaFollowUpRecordController.java | 25 +- .../oa/controller/OaProductController.java | 6 - .../oa/controller/OaSalaryController.java | 7 - .../oa/controller/OaSalaryItemController.java | 7 +- .../oa/controller/SysOaCostController.java | 9 - .../oa/controller/SysOaFileController.java | 6 - .../java/com/ruoyi/oa/domain/OaProduct.java | 2 +- .../oa/domain/bo/OaBusinessProductBo.java | 7 - .../java/com/ruoyi/oa/domain/bo/OaClueBo.java | 20 - .../com/ruoyi/oa/domain/bo/OaCustomerBo.java | 20 - .../oa/domain/bo/OaFollowUpRecordBo.java | 11 +- .../com/ruoyi/oa/domain/bo/OaProductBo.java | 11 +- .../java/com/ruoyi/oa/domain/vo/OaClueVo.java | 1 + .../com/ruoyi/oa/domain/vo/OaCustomerVo.java | 7 + .../com/ruoyi/oa/domain/vo/OaProductVo.java | 7 - .../com/ruoyi/oa/mapper/OaClueMapper.java | 5 + .../com/ruoyi/oa/mapper/OaCustomerMapper.java | 7 + .../ruoyi/oa/service/IOaBusinessService.java | 2 + .../com/ruoyi/oa/service/IOaClueService.java | 8 + .../ruoyi/oa/service/IOaCustomerService.java | 16 + .../oa/service/IOaFollowUpRecordService.java | 2 + .../impl/EmployeeFilesServiceImpl.java | 1 - .../service/impl/OaBusinessServiceImpl.java | 4 +- .../oa/service/impl/OaClueServiceImpl.java | 7 + .../service/impl/OaCustomerServiceImpl.java | 28 +- .../impl/OaFollowUpRecordServiceImpl.java | 14 + .../oa/service/impl/OaProductServiceImpl.java | 1 - .../resources/mapper/oa/OaBusinessMapper.xml | 2 +- .../main/resources/mapper/oa/OaClueMapper.xml | 9 + .../resources/mapper/oa/OaCustomerMapper.xml | 7 + .../resources/mapper/oa/OaProductMapper.xml | 2 +- .../resources/mapper/oa/OaSalaryMapper.xml | 8 +- ruoyi-ui/.env.production | 4 +- ruoyi-ui/src/api/oa/business.js | 44 ++ ruoyi-ui/src/api/oa/clue.js | 44 ++ ruoyi-ui/src/api/oa/customer.js | 52 ++ ruoyi-ui/src/api/oa/followUpRecord.js | 52 ++ ruoyi-ui/src/api/oa/product.js | 44 ++ ruoyi-ui/src/router/index.js | 17 + .../src/views/oa/customer/business/index.vue | 442 ++++++++++++++ ruoyi-ui/src/views/oa/customer/clue/index.vue | 469 +++++++++++++++ .../src/views/oa/customer/customer/detail.vue | 212 +++++++ .../src/views/oa/customer/customer/index.vue | 563 ++++++++++++++++++ .../src/views/oa/customer/product/index.vue | 339 +++++++++++ ruoyi-ui/src/views/oa/customer/sea/index.vue | 484 +++++++++++++++ 52 files changed, 2918 insertions(+), 179 deletions(-) create mode 100644 ruoyi-ui/src/api/oa/business.js create mode 100644 ruoyi-ui/src/api/oa/clue.js create mode 100644 ruoyi-ui/src/api/oa/customer.js create mode 100644 ruoyi-ui/src/api/oa/followUpRecord.js create mode 100644 ruoyi-ui/src/api/oa/product.js create mode 100644 ruoyi-ui/src/views/oa/customer/business/index.vue create mode 100644 ruoyi-ui/src/views/oa/customer/clue/index.vue create mode 100644 ruoyi-ui/src/views/oa/customer/customer/detail.vue create mode 100644 ruoyi-ui/src/views/oa/customer/customer/index.vue create mode 100644 ruoyi-ui/src/views/oa/customer/product/index.vue create mode 100644 ruoyi-ui/src/views/oa/customer/sea/index.vue diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java index f8efa60..d07e2d3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeFilesController.java @@ -42,7 +42,6 @@ public class EmployeeFilesController extends BaseController { /** * 查询文件档案管理列表 */ - @SaCheckPermission("oa:files:list") @GetMapping("/list") public TableDataInfo list(EmployeeFilesBo bo, PageQuery pageQuery) { return iEmployeeFilesService.queryPageList(bo, pageQuery); @@ -53,7 +52,6 @@ public class EmployeeFilesController extends BaseController { * * @param userId 主键 */ - @SaCheckPermission("oa:files:query") @GetMapping("/{userId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("userId") Long userId) { @@ -63,7 +61,6 @@ public class EmployeeFilesController extends BaseController { /** * 新增文件档案管理 */ - @SaCheckPermission("oa:files:add") @Log(title = "文件档案管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOffboardingController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOffboardingController.java index 265641a..59d84dd 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOffboardingController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOffboardingController.java @@ -42,7 +42,6 @@ public class EmployeeOffboardingController extends BaseController { /** * 查询离职管理列表 */ - @SaCheckPermission("system:offboarding:list") @GetMapping("/list") public TableDataInfo list(EmployeeOffboardingBo bo, PageQuery pageQuery) { return iEmployeeOffboardingService.queryPageList(bo, pageQuery); @@ -51,7 +50,6 @@ public class EmployeeOffboardingController extends BaseController { /** * 导出离职管理列表 */ - @SaCheckPermission("system:offboarding:export") @Log(title = "离职管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(EmployeeOffboardingBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class EmployeeOffboardingController extends BaseController { * * @param offboardingId 主键 */ - @SaCheckPermission("system:offboarding:query") @GetMapping("/{offboardingId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long offboardingId) { @@ -74,7 +71,6 @@ public class EmployeeOffboardingController extends BaseController { /** * 新增离职管理 */ - @SaCheckPermission("system:offboarding:add") @Log(title = "离职管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,6 @@ public class EmployeeOffboardingController extends BaseController { /** * 修改离职管理 */ - @SaCheckPermission("system:offboarding:edit") @Log(title = "离职管理", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +93,6 @@ public class EmployeeOffboardingController extends BaseController { * * @param offboardingIds 主键串 */ - @SaCheckPermission("system:offboarding:remove") @Log(title = "离职管理", businessType = BusinessType.DELETE) @DeleteMapping("/{offboardingIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java index 52e66b6..950a542 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/EmployeeOnboardingController.java @@ -43,7 +43,6 @@ public class EmployeeOnboardingController extends BaseController { /** * 查询入职管理列表 */ - @SaCheckPermission("system:onboarding:list") @GetMapping("/list") public TableDataInfo list(EmployeeOnboardingBo bo, PageQuery pageQuery) { return iEmployeeOnboardingService.queryPageList(bo, pageQuery); @@ -52,7 +51,6 @@ public class EmployeeOnboardingController extends BaseController { /** * 导出入职管理列表 */ - @SaCheckPermission("system:onboarding:export") @Log(title = "入职管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(EmployeeOnboardingBo bo, HttpServletResponse response) { @@ -65,7 +63,6 @@ public class EmployeeOnboardingController extends BaseController { * * @param userId 主键 */ - @SaCheckPermission("system:onboarding:query") @GetMapping("/{userId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long userId) { @@ -75,7 +72,6 @@ public class EmployeeOnboardingController extends BaseController { /** * 新增入职管理 */ - @SaCheckPermission("system:onboarding:add") @Log(title = "入职管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -86,7 +82,6 @@ public class EmployeeOnboardingController extends BaseController { /** * 修改入职管理 */ - @SaCheckPermission("system:onboarding:edit") @Log(title = "入职管理", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -99,7 +94,6 @@ public class EmployeeOnboardingController extends BaseController { * * @param onboardingIds 主键串 */ - @SaCheckPermission("system:onboarding:remove") @Log(title = "入职管理", businessType = BusinessType.DELETE) @DeleteMapping("/{onboardingIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java index ff1a9ae..5137b9b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessController.java @@ -43,16 +43,22 @@ public class OaBusinessController extends BaseController { /** * 查询CRM 商机列表 */ - @SaCheckPermission("oa:business:list") @GetMapping("/list") public TableDataInfo list(OaBusinessBo bo, PageQuery pageQuery) { return iOaBusinessService.queryPageList(bo, pageQuery); } + /** + * 查询CRM 商机列表 + */ + @GetMapping("/listByCustomer") + public TableDataInfo listByCustomer(OaBusinessBo bo, PageQuery pageQuery) { + return iOaBusinessService.queryPageList(bo, pageQuery); + } + /** * 导出CRM 商机列表 */ - @SaCheckPermission("oa:business:export") @Log(title = "CRM 商机", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaBusinessBo bo, HttpServletResponse response) { @@ -65,7 +71,6 @@ public class OaBusinessController extends BaseController { * * @param businessId 主键 */ - @SaCheckPermission("oa:business:query") @GetMapping("/{businessId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long businessId) { @@ -75,7 +80,6 @@ public class OaBusinessController extends BaseController { /** * 新增CRM 商机 */ - @SaCheckPermission("oa:business:add") @Log(title = "CRM 商机", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -86,7 +90,6 @@ public class OaBusinessController extends BaseController { /** * 修改CRM 商机 */ - @SaCheckPermission("oa:business:edit") @Log(title = "CRM 商机", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -99,7 +102,6 @@ public class OaBusinessController extends BaseController { * * @param businessIds 主键串 */ - @SaCheckPermission("oa:business:remove") @Log(title = "CRM 商机", businessType = BusinessType.DELETE) @DeleteMapping("/{businessIds}") public R remove(@NotEmpty(message = "主键不能为空") @@ -111,7 +113,6 @@ public class OaBusinessController extends BaseController { /** * 联查商机与产品以及其关联表 */ - @SaCheckPermission("oa:business:query") @GetMapping("/BusinessProducts") public TableDataInfo getBusinessProducts(OaBusinessBo bo) { return iOaBusinessService.getBusinessProducts(bo); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessProductController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessProductController.java index 370386f..640a655 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessProductController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaBusinessProductController.java @@ -42,7 +42,6 @@ public class OaBusinessProductController extends BaseController { /** * 查询CRM 商机产品关联列表 */ - @SaCheckPermission("oa:businessProduct:list") @GetMapping("/list") public TableDataInfo list(OaBusinessProductBo bo, PageQuery pageQuery) { return iOaBusinessProductService.queryPageList(bo, pageQuery); @@ -51,7 +50,6 @@ public class OaBusinessProductController extends BaseController { /** * 导出CRM 商机产品关联列表 */ - @SaCheckPermission("oa:businessProduct:export") @Log(title = "CRM 商机产品关联", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaBusinessProductBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class OaBusinessProductController extends BaseController { * * @param businessProductId 主键 */ - @SaCheckPermission("oa:businessProduct:query") @GetMapping("/{businessProductId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long businessProductId) { @@ -74,7 +71,6 @@ public class OaBusinessProductController extends BaseController { /** * 新增CRM 商机产品关联 */ - @SaCheckPermission("oa:businessProduct:add") @Log(title = "CRM 商机产品关联", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,6 @@ public class OaBusinessProductController extends BaseController { /** * 修改CRM 商机产品关联 */ - @SaCheckPermission("oa:businessProduct:edit") @Log(title = "CRM 商机产品关联", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +93,6 @@ public class OaBusinessProductController extends BaseController { * * @param businessProductIds 主键串 */ - @SaCheckPermission("oa:businessProduct:remove") @Log(title = "CRM 商机产品关联", businessType = BusinessType.DELETE) @DeleteMapping("/{businessProductIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaClueController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaClueController.java index 2a909bb..4617362 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaClueController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaClueController.java @@ -42,16 +42,14 @@ public class OaClueController extends BaseController { /** * 查询CRM 线索列表 */ - @SaCheckPermission("oa:clue:list") @GetMapping("/list") public TableDataInfo list(OaClueBo bo, PageQuery pageQuery) { - return iOaClueService.queryPageList(bo, pageQuery); + return iOaClueService.queryPageListVo(bo, pageQuery); } /** * 导出CRM 线索列表 */ - @SaCheckPermission("oa:clue:export") @Log(title = "CRM 线索", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaClueBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class OaClueController extends BaseController { * * @param clueId 主键 */ - @SaCheckPermission("oa:clue:query") @GetMapping("/{clueId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long clueId) { @@ -74,7 +71,6 @@ public class OaClueController extends BaseController { /** * 新增CRM 线索 */ - @SaCheckPermission("oa:clue:add") @Log(title = "CRM 线索", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,6 @@ public class OaClueController extends BaseController { /** * 修改CRM 线索 */ - @SaCheckPermission("oa:clue:edit") @Log(title = "CRM 线索", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +93,6 @@ public class OaClueController extends BaseController { * * @param clueIds 主键串 */ - @SaCheckPermission("oa:clue:remove") @Log(title = "CRM 线索", businessType = BusinessType.DELETE) @DeleteMapping("/{clueIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaCustomerController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaCustomerController.java index 6cb2f04..4ca5883 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaCustomerController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaCustomerController.java @@ -42,16 +42,22 @@ public class OaCustomerController extends BaseController { /** * 查询CRM 客户列表 */ - @SaCheckPermission("oa:customer:list") @GetMapping("/list") public TableDataInfo list(OaCustomerBo bo, PageQuery pageQuery) { - return iOaCustomerService.queryPageList(bo, pageQuery); + return iOaCustomerService.queryPageListToUser(bo, pageQuery); + } + + /** + * 查询CRM 客户列表 + */ + @GetMapping("/list-sea") + public TableDataInfo seaList(OaCustomerBo bo, PageQuery pageQuery) { + return iOaCustomerService.queryPageListToSea(bo, pageQuery); } /** * 导出CRM 客户列表 */ - @SaCheckPermission("oa:customer:export") @Log(title = "CRM 客户", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaCustomerBo bo, HttpServletResponse response) { @@ -64,7 +70,6 @@ public class OaCustomerController extends BaseController { * * @param customerId 主键 */ - @SaCheckPermission("oa:customer:query") @GetMapping("/{customerId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long customerId) { @@ -74,7 +79,6 @@ public class OaCustomerController extends BaseController { /** * 新增CRM 客户 */ - @SaCheckPermission("oa:customer:add") @Log(title = "CRM 客户", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +89,7 @@ public class OaCustomerController extends BaseController { /** * 修改CRM 客户 */ - @SaCheckPermission("oa:customer:edit") + @Log(title = "CRM 客户", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +102,7 @@ public class OaCustomerController extends BaseController { * * @param customerIds 主键串 */ - @SaCheckPermission("oa:customer:remove") + @Log(title = "CRM 客户", businessType = BusinessType.DELETE) @DeleteMapping("/{customerIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFollowUpRecordController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFollowUpRecordController.java index c86d37a..f1d3b4b 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFollowUpRecordController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFollowUpRecordController.java @@ -1,9 +1,12 @@ package com.ruoyi.oa.controller; +import java.util.Collections; import java.util.List; import java.util.Arrays; import java.util.concurrent.TimeUnit; +import com.ruoyi.oa.service.IOaBusinessProductService; +import com.ruoyi.oa.service.IOaBusinessService; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; @@ -34,15 +37,17 @@ import com.ruoyi.common.core.page.TableDataInfo; @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/system/followUpRecord") +@RequestMapping("/oa/followUpRecord") public class OaFollowUpRecordController extends BaseController { private final IOaFollowUpRecordService iOaFollowUpRecordService; + private final IOaBusinessService iOaBusinessService; + /** * 查询CRM 跟进记录列表 */ - @SaCheckPermission("system:followUpRecord:list") + @GetMapping("/list") public TableDataInfo list(OaFollowUpRecordBo bo, PageQuery pageQuery) { return iOaFollowUpRecordService.queryPageList(bo, pageQuery); @@ -51,7 +56,6 @@ public class OaFollowUpRecordController extends BaseController { /** * 导出CRM 跟进记录列表 */ - @SaCheckPermission("system:followUpRecord:export") @Log(title = "CRM 跟进记录", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaFollowUpRecordBo bo, HttpServletResponse response) { @@ -64,17 +68,26 @@ public class OaFollowUpRecordController extends BaseController { * * @param followId 主键 */ - @SaCheckPermission("system:followUpRecord:query") @GetMapping("/{followId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long followId) { return R.ok(iOaFollowUpRecordService.queryById(followId)); } + /** + * CRM 商机 + * + * @param businessIds 主键串 + */ + @GetMapping("/listByIds/{businessIds}") + public R> selectByBusinessIds( + @PathVariable("businessIds") Long[] businessIds) { + return R.ok(iOaFollowUpRecordService.selectByBusinessIds(Arrays.asList(businessIds))); + } + /** * 新增CRM 跟进记录 */ - @SaCheckPermission("system:followUpRecord:add") @Log(title = "CRM 跟进记录", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +98,6 @@ public class OaFollowUpRecordController extends BaseController { /** * 修改CRM 跟进记录 */ - @SaCheckPermission("system:followUpRecord:edit") @Log(title = "CRM 跟进记录", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +110,6 @@ public class OaFollowUpRecordController extends BaseController { * * @param followIds 主键串 */ - @SaCheckPermission("system:followUpRecord:remove") @Log(title = "CRM 跟进记录", businessType = BusinessType.DELETE) @DeleteMapping("/{followIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProductController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProductController.java index e8287c5..cc6a50d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProductController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProductController.java @@ -42,7 +42,6 @@ public class OaProductController extends BaseController { /** * 查询CRM 产品列表 */ - @SaCheckPermission("oa:product:list") @GetMapping("/list") public TableDataInfo list(OaProductBo bo, PageQuery pageQuery) { return iOaProductService.queryPageList(bo, pageQuery); @@ -51,7 +50,6 @@ public class OaProductController extends BaseController { /** * 导出CRM 产品列表 */ - @SaCheckPermission("oa:product:export") @Log(title = "CRM 产品", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaProductBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class OaProductController extends BaseController { * * @param productId 主键 */ - @SaCheckPermission("oa:product:query") @GetMapping("/{productId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long productId) { @@ -74,7 +71,6 @@ public class OaProductController extends BaseController { /** * 新增CRM 产品 */ - @SaCheckPermission("oa:product:add") @Log(title = "CRM 产品", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,6 @@ public class OaProductController extends BaseController { /** * 修改CRM 产品 */ - @SaCheckPermission("oa:product:edit") @Log(title = "CRM 产品", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +93,6 @@ public class OaProductController extends BaseController { * * @param productIds 主键串 */ - @SaCheckPermission("oa:product:remove") @Log(title = "CRM 产品", businessType = BusinessType.DELETE) @DeleteMapping("/{productIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java index d6baf54..78f3a3a 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryController.java @@ -42,7 +42,6 @@ public class OaSalaryController extends BaseController { /** * 查询薪资管理列表 */ - @SaCheckPermission("oa:salary:list") @GetMapping("/list-staff") public TableDataInfo list(OaSalaryBo bo, PageQuery pageQuery) { return iOaSalaryService.queryPageList(bo, pageQuery); @@ -50,7 +49,6 @@ public class OaSalaryController extends BaseController { /** * 查询薪资管理列表 */ - @SaCheckPermission("oa:salary:list") @GetMapping("/list-worker") public TableDataInfo listWorker(OaSalaryBo bo, PageQuery pageQuery) { return iOaSalaryService.listWorker(bo, pageQuery); @@ -67,7 +65,6 @@ public class OaSalaryController extends BaseController { /** * 导出薪资管理列表 */ - @SaCheckPermission("oa:salary:export") @Log(title = "薪资管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaSalaryBo bo, HttpServletResponse response) { @@ -79,7 +76,6 @@ public class OaSalaryController extends BaseController { * 获取薪资管理详细信息 * */ - @SaCheckPermission("oa:salary:query") @GetMapping("/detail") public R getInfo(@RequestBody OaSalaryBo bo) { return R.ok(iOaSalaryService.queryById(bo.getSalaryId(),bo.getPayTime())); @@ -88,7 +84,6 @@ public class OaSalaryController extends BaseController { /** * 新增薪资管理 */ - @SaCheckPermission("oa:salary:add") @Log(title = "薪资管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -99,7 +94,6 @@ public class OaSalaryController extends BaseController { /** * 修改薪资管理 */ - @SaCheckPermission("oa:salary:edit") @Log(title = "薪资管理", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -112,7 +106,6 @@ public class OaSalaryController extends BaseController { * * @param salaryIds 主键串 */ - @SaCheckPermission("oa:salary:remove") @Log(title = "薪资管理", businessType = BusinessType.DELETE) @DeleteMapping("/{salaryIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java index f60a8cf..e675d63 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaSalaryItemController.java @@ -42,7 +42,6 @@ public class OaSalaryItemController extends BaseController { /** * 查询薪水详情列表 */ - @SaCheckPermission("oa:salaryItem:list") @GetMapping("/list") public TableDataInfo list(OaSalaryItemBo bo, PageQuery pageQuery) { return iOaSalaryItemService.queryPageList(bo, pageQuery); @@ -51,7 +50,6 @@ public class OaSalaryItemController extends BaseController { /** * 导出薪水详情列表 */ - @SaCheckPermission("oa:salaryItem:export") @Log(title = "薪水详情", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(OaSalaryItemBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class OaSalaryItemController extends BaseController { * * @param salaryItemId 主键 */ - @SaCheckPermission("oa:salaryItem:query") @GetMapping("/{salaryItemId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long salaryItemId) { @@ -74,7 +71,6 @@ public class OaSalaryItemController extends BaseController { /** * 新增薪水详情 */ - @SaCheckPermission("oa:salaryItem:add") @Log(title = "薪水详情", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,7 @@ public class OaSalaryItemController extends BaseController { /** * 修改薪水详情 */ - @SaCheckPermission("oa:salaryItem:edit") + @Log(title = "薪水详情", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +94,6 @@ public class OaSalaryItemController extends BaseController { * * @param salaryItemIds 主键串 */ - @SaCheckPermission("oa:salaryItem:remove") @Log(title = "薪水详情", businessType = BusinessType.DELETE) @DeleteMapping("/{salaryItemIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaCostController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaCostController.java index 519def0..db1e2c7 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaCostController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaCostController.java @@ -46,7 +46,6 @@ public class SysOaCostController extends BaseController { /** * 查询项目成本分析列表 */ - @SaCheckPermission("oa:oaCost:list") @GetMapping("/list1") public TableDataInfo list1(SysOaCostBo bo, PageQuery pageQuery) { return iSysOaCostService.queryPageList(bo, pageQuery); @@ -55,7 +54,6 @@ public class SysOaCostController extends BaseController { /** * 导出项目成本分析列表 */ - @SaCheckPermission("oa:oaCost:export") @Log(title = "项目成本分析", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SysOaCostBo bo, HttpServletResponse response) { @@ -68,7 +66,6 @@ public class SysOaCostController extends BaseController { * * @param costId 主键 */ - @SaCheckPermission("oa:oaCost:query") @GetMapping("/old/{costId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long costId) { @@ -78,7 +75,6 @@ public class SysOaCostController extends BaseController { /** * 新增项目成本分析 */ - @SaCheckPermission("oa:oaCost:add") @Log(title = "项目成本分析", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -89,7 +85,6 @@ public class SysOaCostController extends BaseController { /** * 修改项目成本分析 */ - @SaCheckPermission("oa:oaCost:edit") @Log(title = "项目成本分析", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -111,7 +106,6 @@ public class SysOaCostController extends BaseController { /** * 查询所有项目成本 */ - @SaCheckPermission("oa:oaCost:list") @GetMapping("/list") public TableDataInfo AllList(SysOaCostBo bo,PageQuery pageQuery) { return iSysOaCostService.calcProjectCostList(bo,pageQuery); @@ -123,7 +117,6 @@ public class SysOaCostController extends BaseController { /** * 查询详情 */ - @SaCheckPermission("oa:oaCost:query") @GetMapping("/{projectId}") public R getDetail(@NotNull(message = "项目id不能为空") @PathVariable Long projectId) { @@ -133,7 +126,6 @@ public class SysOaCostController extends BaseController { /** * 新增成本 */ - @SaCheckPermission("oa:oaCost:add") @Log(title = "项目成本分析", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/add") @@ -146,7 +138,6 @@ public class SysOaCostController extends BaseController { * * @param ids 主键串 */ - @SaCheckPermission("oa:cost:remove") @Log(title = "项目成本分析", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaFileController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaFileController.java index e44b2d7..4878814 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaFileController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaFileController.java @@ -42,7 +42,6 @@ public class SysOaFileController extends BaseController { /** * 查询文件存储列表 */ - @SaCheckPermission("system:oaFile:list") @GetMapping("/list") public TableDataInfo list(SysOaFileBo bo, PageQuery pageQuery) { return iSysOaFileService.queryPageList(bo, pageQuery); @@ -51,7 +50,6 @@ public class SysOaFileController extends BaseController { /** * 导出文件存储列表 */ - @SaCheckPermission("system:oaFile:export") @Log(title = "文件存储", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SysOaFileBo bo, HttpServletResponse response) { @@ -64,7 +62,6 @@ public class SysOaFileController extends BaseController { * * @param fileId 主键 */ - @SaCheckPermission("system:oaFile:query") @GetMapping("/{fileId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long fileId) { @@ -74,7 +71,6 @@ public class SysOaFileController extends BaseController { /** * 新增文件存储 */ - @SaCheckPermission("system:oaFile:add") @Log(title = "文件存储", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -85,7 +81,6 @@ public class SysOaFileController extends BaseController { /** * 修改文件存储 */ - @SaCheckPermission("system:oaFile:edit") @Log(title = "文件存储", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -98,7 +93,6 @@ public class SysOaFileController extends BaseController { * * @param fileIds 主键串 */ - @SaCheckPermission("system:oaFile:remove") @Log(title = "文件存储", businessType = BusinessType.DELETE) @DeleteMapping("/{fileIds}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProduct.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProduct.java index b1e99f0..ee7ce72 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProduct.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProduct.java @@ -63,6 +63,6 @@ public class OaProduct extends BaseEntity { /** * 是否删除 */ - private Long deleted; + private Long delFlag; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBusinessProductBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBusinessProductBo.java index fb61458..36a4643 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBusinessProductBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaBusinessProductBo.java @@ -25,43 +25,36 @@ public class OaBusinessProductBo extends BaseEntity { /** * 主键 */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) private Long businessProductId; /** * 商机编号 */ - @NotNull(message = "商机编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long businessId; /** * 产品编号 */ - @NotNull(message = "产品编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long productId; /** * 产品单价 */ - @NotNull(message = "产品单价不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal productPrice; /** * 商机价格 */ - @NotNull(message = "商机价格不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal businessPrice; /** * 数量 */ - @NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal count; /** * 总计价格 */ - @NotNull(message = "总计价格不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal totalPrice; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaClueBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaClueBo.java index 8090af8..50f26dc 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaClueBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaClueBo.java @@ -26,121 +26,101 @@ public class OaClueBo extends BaseEntity { /** * 编号,主键自增 */ - @NotNull(message = "编号,主键自增不能为空", groups = { EditGroup.class }) private Long clueId; /** * 线索名称 */ - @NotBlank(message = "线索名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String clueName; /** * 跟进状态 */ - @NotNull(message = "跟进状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer followUpStatus; /** * 最后跟进时间 */ - @NotNull(message = "最后跟进时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date contactLastTime; /** * 最后跟进内容 */ - @NotBlank(message = "最后跟进内容不能为空", groups = { AddGroup.class, EditGroup.class }) private String contactLastContent; /** * 下次联系时间 */ - @NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date contactNextTime; /** * 负责人的用户编号 */ - @NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long ownerUserId; /** * 转化状态 */ - @NotNull(message = "转化状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer transformStatus; /** * 客户编号 */ - @NotNull(message = "客户编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long customerId; /** * 手机号 */ - @NotBlank(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class }) private String mobile; /** * 电话 */ - @NotBlank(message = "电话不能为空", groups = { AddGroup.class, EditGroup.class }) private String telephone; /** * QQ */ - @NotBlank(message = "QQ不能为空", groups = { AddGroup.class, EditGroup.class }) private String qq; /** * 微信 */ - @NotBlank(message = "微信不能为空", groups = { AddGroup.class, EditGroup.class }) private String wechat; /** * 邮箱 */ - @NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class }) private String email; /** * 地区编号 */ - @NotNull(message = "地区编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long areaId; /** * 详细地址 */ - @NotBlank(message = "详细地址不能为空", groups = { AddGroup.class, EditGroup.class }) private String detailAddress; /** * 所属行业 */ - @NotNull(message = "所属行业不能为空", groups = { AddGroup.class, EditGroup.class }) private Long industryId; /** * 客户等级 */ - @NotNull(message = "客户等级不能为空", groups = { AddGroup.class, EditGroup.class }) private Long level; /** * 客户来源 */ - @NotNull(message = "客户来源不能为空", groups = { AddGroup.class, EditGroup.class }) private Long source; /** * 备注 */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaCustomerBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaCustomerBo.java index d93a13e..8155507 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaCustomerBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaCustomerBo.java @@ -26,121 +26,101 @@ public class OaCustomerBo extends BaseEntity { /** * 编号,主键自增 */ - @NotNull(message = "编号,主键自增不能为空", groups = { EditGroup.class }) private Long customerId; /** * 客户名称 */ - @NotBlank(message = "客户名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String name; /** * 跟进状态 */ - @NotNull(message = "跟进状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer followUpStatus; /** * 最后跟进时间 */ - @NotNull(message = "最后跟进时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date contactLastTime; /** * 最后跟进内容 */ - @NotBlank(message = "最后跟进内容不能为空", groups = { AddGroup.class, EditGroup.class }) private String contactLastContent; /** * 下次联系时间 */ - @NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date contactNextTime; /** * 负责人的用户编号 */ - @NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long ownerUserId; /** * 成为负责人的时间 */ - @NotNull(message = "成为负责人的时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date ownerTime; /** * 成交状态 */ - @NotNull(message = "成交状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Long dealStatus; /** * 手机 */ - @NotBlank(message = "手机不能为空", groups = { AddGroup.class, EditGroup.class }) private String mobile; /** * 电话 */ - @NotBlank(message = "电话不能为空", groups = { AddGroup.class, EditGroup.class }) private String telephone; /** * QQ */ - @NotBlank(message = "QQ不能为空", groups = { AddGroup.class, EditGroup.class }) private String qq; /** * 微信 */ - @NotBlank(message = "微信不能为空", groups = { AddGroup.class, EditGroup.class }) private String wechat; /** * 邮箱 */ - @NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class }) private String email; /** * 地区编号 */ - @NotNull(message = "地区编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long areaId; /** * 详细地址 */ - @NotBlank(message = "详细地址不能为空", groups = { AddGroup.class, EditGroup.class }) private String detailAddress; /** * 所属行业 */ - @NotNull(message = "所属行业不能为空", groups = { AddGroup.class, EditGroup.class }) private Long industryId; /** * 客户等级 */ - @NotNull(message = "客户等级不能为空", groups = { AddGroup.class, EditGroup.class }) private Long level; /** * 客户来源 */ - @NotNull(message = "客户来源不能为空", groups = { AddGroup.class, EditGroup.class }) private Long source; /** * 备注 */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFollowUpRecordBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFollowUpRecordBo.java index 78a5a81..4f17a87 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFollowUpRecordBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFollowUpRecordBo.java @@ -26,55 +26,48 @@ public class OaFollowUpRecordBo extends BaseEntity { /** * 编号 */ - @NotNull(message = "编号不能为空", groups = { EditGroup.class }) private Long followId; /** * 跟进类型 */ - @NotNull(message = "跟进类型不能为空", groups = { AddGroup.class, EditGroup.class }) private Long type; /** * 跟进内容 */ - @NotBlank(message = "跟进内容不能为空", groups = { AddGroup.class, EditGroup.class }) private String content; /** * 下次联系时间 */ - @NotNull(message = "下次联系时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date nextTime; /** * 图片 */ - @NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class }) private String picUrls; /** * 附件 */ - @NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) + private String fileUrls; /** * 关联的商机编号数组 */ - @NotBlank(message = "关联的商机编号数组不能为空", groups = { AddGroup.class, EditGroup.class }) + private String businessIds; /** * 暂用此代替商机记录 */ - @NotNull(message = "暂用此代替商机记录不能为空", groups = { AddGroup.class, EditGroup.class }) private Long businessId; /** * 关联的联系人编号数组 */ - @NotBlank(message = "关联的联系人编号数组不能为空", groups = { AddGroup.class, EditGroup.class }) private String contactIds; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProductBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProductBo.java index 2b92a2e..266aacf 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProductBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProductBo.java @@ -25,7 +25,6 @@ public class OaProductBo extends BaseEntity { /** * 产品编号 */ - @NotNull(message = "产品编号不能为空", groups = { EditGroup.class }) private Long productId; /** @@ -43,44 +42,38 @@ public class OaProductBo extends BaseEntity { /** * 单位 */ - @NotNull(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) private Long unit; /** * 价格,单位:元 */ - @NotNull(message = "价格,单位:元不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal price; /** * 状态 */ - @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class }) private Long status; /** * 产品分类编号 */ - @NotNull(message = "产品分类编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long categoryId; /** * 产品描述 */ - @NotBlank(message = "产品描述不能为空", groups = { AddGroup.class, EditGroup.class }) private String description; /** * 负责人的用户编号 */ - @NotNull(message = "负责人的用户编号不能为空", groups = { AddGroup.class, EditGroup.class }) private Long ownerUserId; /** * 是否删除 */ - @NotNull(message = "是否删除不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long deleted; + + private Long delFlag; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaClueVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaClueVo.java index 0eb17f9..85186ff 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaClueVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaClueVo.java @@ -143,5 +143,6 @@ public class OaClueVo { @ExcelProperty(value = "备注") private String remark; + private String nickName; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaCustomerVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaCustomerVo.java index 6687743..6b793f6 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaCustomerVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaCustomerVo.java @@ -144,4 +144,11 @@ public class OaCustomerVo { private String remark; + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String nickName; + + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProductVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProductVo.java index ba16fda..2861e36 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProductVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProductVo.java @@ -73,14 +73,7 @@ public class OaProductVo { /** * 负责人的用户编号 */ - @ExcelProperty(value = "负责人的用户编号") private Long ownerUserId; - /** - * 是否删除 - */ - @ExcelProperty(value = "是否删除") - private Long deleted; - } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaClueMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaClueMapper.java index 0ecc882..7f00aea 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaClueMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaClueMapper.java @@ -1,8 +1,12 @@ package com.ruoyi.oa.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.oa.domain.OaClue; import com.ruoyi.oa.domain.vo.OaClueVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; /** * CRM 线索Mapper接口 @@ -12,4 +16,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface OaClueMapper extends BaseMapperPlus { + Page selectVoListPage(Page build,@Param(Constants.WRAPPER) LambdaQueryWrapper lqw); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaCustomerMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaCustomerMapper.java index ffc264e..47c84f8 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaCustomerMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaCustomerMapper.java @@ -1,8 +1,13 @@ package com.ruoyi.oa.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.oa.domain.OaCustomer; import com.ruoyi.oa.domain.vo.OaCustomerVo; import com.ruoyi.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; /** * CRM 客户Mapper接口 @@ -12,4 +17,6 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus; */ public interface OaCustomerMapper extends BaseMapperPlus { + + Page selectVoPageToUser(Page build,@Param(Constants.WRAPPER) Wrapper lqw); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java index cb3a949..62ba135 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaBusinessService.java @@ -5,6 +5,7 @@ import com.ruoyi.oa.domain.vo.OaBusinessVo; import com.ruoyi.oa.domain.bo.OaBusinessBo; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.oa.domain.vo.OaFollowUpRecordVo; import com.ruoyi.oa.domain.vo.OaProductVo; import java.util.Collection; @@ -53,4 +54,5 @@ public interface IOaBusinessService { * 联查商机与产品以及其关联表 */ TableDataInfo getBusinessProducts(OaBusinessBo bo); + } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaClueService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaClueService.java index bf1c1f4..92ee202 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaClueService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaClueService.java @@ -46,4 +46,12 @@ public interface IOaClueService { * 校验并批量删除CRM 线索信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询使用xml 关联到user表 + * @param bo + * @param pageQuery + * @return + */ + TableDataInfo queryPageListVo(OaClueBo bo, PageQuery pageQuery); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaCustomerService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaCustomerService.java index 7a6b208..80ff909 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaCustomerService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaCustomerService.java @@ -46,4 +46,20 @@ public interface IOaCustomerService { * 校验并批量删除CRM 客户信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询已分配的用户 + * @param bo + * @param pageQuery + * @return + */ + TableDataInfo queryPageListToUser(OaCustomerBo bo, PageQuery pageQuery); + + /** + * 查询公海中的客户 + * @param bo + * @param pageQuery + * @return + */ + TableDataInfo queryPageListToSea(OaCustomerBo bo, PageQuery pageQuery); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFollowUpRecordService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFollowUpRecordService.java index 421af46..6c45be4 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFollowUpRecordService.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFollowUpRecordService.java @@ -46,4 +46,6 @@ public interface IOaFollowUpRecordService { * 校验并批量删除CRM 跟进记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List selectByBusinessIds(Collection list); } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java index bb3a204..2254411 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/EmployeeFilesServiceImpl.java @@ -11,7 +11,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.oa.domain.vo.FileUser; import com.ruoyi.oa.domain.vo.UserFilesVo; import com.ruoyi.system.service.ISysUserService; -import liquibase.pro.packaged.A; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java index 1f18946..3519bc3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaBusinessServiceImpl.java @@ -8,6 +8,7 @@ import com.ruoyi.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.ruoyi.oa.domain.vo.OaFollowUpRecordVo; import com.ruoyi.oa.domain.vo.OaProductVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -17,6 +18,7 @@ import com.ruoyi.oa.domain.OaBusiness; import com.ruoyi.oa.mapper.OaBusinessMapper; import com.ruoyi.oa.service.IOaBusinessService; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Collection; @@ -128,7 +130,7 @@ public class OaBusinessServiceImpl implements IOaBusinessService { @Override public TableDataInfo getBusinessProducts(OaBusinessBo bo) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(bo.getBusinessId() != null,"oa_business.business_id", bo.getBusinessId()); + queryWrapper.eq(bo.getBusinessId() != null,"ob.business_id", bo.getBusinessId()); return TableDataInfo.build(baseMapper.getBusinessProducts(bo,queryWrapper)); } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaClueServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaClueServiceImpl.java index b6534f7..8eb3296 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaClueServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaClueServiceImpl.java @@ -123,4 +123,11 @@ public class OaClueServiceImpl implements IOaClueService { } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public TableDataInfo queryPageListVo(OaClueBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoListPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java index b4670fd..6aea575 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaCustomerServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.domain.PageQuery; @@ -66,19 +67,8 @@ public class OaCustomerServiceImpl implements IOaCustomerService { lqw.eq(bo.getContactLastTime() != null, OaCustomer::getContactLastTime, bo.getContactLastTime()); lqw.eq(StringUtils.isNotBlank(bo.getContactLastContent()), OaCustomer::getContactLastContent, bo.getContactLastContent()); lqw.eq(bo.getContactNextTime() != null, OaCustomer::getContactNextTime, bo.getContactNextTime()); - lqw.eq(bo.getOwnerUserId() != null, OaCustomer::getOwnerUserId, bo.getOwnerUserId()); - lqw.eq(bo.getOwnerTime() != null, OaCustomer::getOwnerTime, bo.getOwnerTime()); lqw.eq(bo.getDealStatus() != null, OaCustomer::getDealStatus, bo.getDealStatus()); - lqw.eq(StringUtils.isNotBlank(bo.getMobile()), OaCustomer::getMobile, bo.getMobile()); - lqw.eq(StringUtils.isNotBlank(bo.getTelephone()), OaCustomer::getTelephone, bo.getTelephone()); - lqw.eq(StringUtils.isNotBlank(bo.getQq()), OaCustomer::getQq, bo.getQq()); - lqw.eq(StringUtils.isNotBlank(bo.getWechat()), OaCustomer::getWechat, bo.getWechat()); - lqw.eq(StringUtils.isNotBlank(bo.getEmail()), OaCustomer::getEmail, bo.getEmail()); lqw.eq(bo.getAreaId() != null, OaCustomer::getAreaId, bo.getAreaId()); - lqw.like(StringUtils.isNotBlank(bo.getDetailAddress()), OaCustomer::getDetailAddress, bo.getDetailAddress()); - lqw.eq(bo.getIndustryId() != null, OaCustomer::getIndustryId, bo.getIndustryId()); - lqw.eq(bo.getLevel() != null, OaCustomer::getLevel, bo.getLevel()); - lqw.eq(bo.getSource() != null, OaCustomer::getSource, bo.getSource()); return lqw; } @@ -123,4 +113,20 @@ public class OaCustomerServiceImpl implements IOaCustomerService { } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public TableDataInfo queryPageListToUser(OaCustomerBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.eq(OaCustomer::getOwnerUserId, LoginHelper.getUserId()); + Page result = baseMapper.selectVoPageToUser(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + @Override + public TableDataInfo queryPageListToSea(OaCustomerBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.isNull(OaCustomer::getOwnerUserId); + Page result = baseMapper.selectVoPageToUser(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFollowUpRecordServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFollowUpRecordServiceImpl.java index 1b5a0d7..a4a13ac 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFollowUpRecordServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFollowUpRecordServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.oa.domain.OaFollowUpRecord; import com.ruoyi.oa.mapper.OaFollowUpRecordMapper; import com.ruoyi.oa.service.IOaFollowUpRecordService; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Collection; @@ -113,4 +114,17 @@ public class OaFollowUpRecordServiceImpl implements IOaFollowUpRecordService { } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public List selectByBusinessIds(Collection businessIds) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + // 将多个业务id用 or 拼接 + for (Long id : businessIds) { + queryWrapper.or().apply("FIND_IN_SET({0}, business_ids)", id); + } + + return baseMapper.selectVoList(queryWrapper); + } } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProductServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProductServiceImpl.java index 619970b..02d88f4 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProductServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProductServiceImpl.java @@ -69,7 +69,6 @@ public class OaProductServiceImpl implements IOaProductService { lqw.eq(bo.getCategoryId() != null, OaProduct::getCategoryId, bo.getCategoryId()); lqw.like(StringUtils.isNotBlank(bo.getDescription()), OaProduct::getDescription, bo.getDescription()); lqw.eq(bo.getOwnerUserId() != null, OaProduct::getOwnerUserId, bo.getOwnerUserId()); - lqw.eq(bo.getDeleted() != null, OaProduct::getDeleted, bo.getDeleted()); return lqw; } diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml index 6ff3d92..2964af8 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaBusinessMapper.xml @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + select oc.clue_id,oc.clue_id, oc.clue_name, oc.follow_up_status, oc.contact_last_time, oc.contact_last_content, oc.contact_next_time, oc.owner_user_id, oc.transform_status, oc.customer_id, oc.mobile, oc.telephone, oc.qq, oc.wechat, oc.email, oc.area_id, oc.detail_address, oc.industry_id, oc.level, oc.source, oc.remark, oc.create_by, oc.create_time, oc.update_by, oc.update_time, oc.del_flag + ,nick_name + from oa_clue oc + left join sys_user su on su.user_id = oc.owner_user_id + ${ew.getCustomSqlSegment} + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaCustomerMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaCustomerMapper.xml index a9b8e3f..65e4d19 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaCustomerMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaCustomerMapper.xml @@ -33,4 +33,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProductMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProductMapper.xml index 22c8be4..2c54ef7 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaProductMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProductMapper.xml @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml index 71af437..29a1f87 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaSalaryMapper.xml @@ -34,8 +34,7 @@ os.pay_time, os.base_salary, ( - os.base_salary * DAY(LAST_DAY(#{payTime})) - + COALESCE(SUM( + COALESCE(SUM( CASE WHEN osi.flag = 1 THEN osi.price WHEN osi.flag = 0 THEN -osi.price @@ -80,14 +79,13 @@ os.pay_time, os.base_salary, ( - os.base_salary * DAY(LAST_DAY(#{payTime})) + DAY(LAST_DAY(#{payTime})) + COALESCE(SUM( CASE WHEN osi.flag = 1 THEN osi.price WHEN osi.flag = 0 THEN -osi.price ELSE 0 - END - ), 0) + END), 0) ) AS real_salary, osi.salary_item_id, osi.reason, diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index 24e8b9c..5a22a16 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -5,8 +5,8 @@ VUE_APP_TITLE = 福安德综合办公系统 ENV = 'production' # 若依管理系统/生产环境 -# VUE_APP_BASE_API = '/prod-api' -VUE_APP_BASE_API = 'http://110.41.139.73:8080' + VUE_APP_BASE_API = '/prod-api' +# VUE_APP_BASE_API = 'http://110.41.139.73:8080' # 应用访问路径 例如使用前缀 /admin/ VUE_APP_CONTEXT_PATH = '/' diff --git a/ruoyi-ui/src/api/oa/business.js b/ruoyi-ui/src/api/oa/business.js new file mode 100644 index 0000000..88769e5 --- /dev/null +++ b/ruoyi-ui/src/api/oa/business.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询CRM 商机列表 +export function listBusiness(query) { + return request({ + url: '/oa/business/list', + method: 'get', + params: query + }) +} + +// 查询CRM 商机详细 +export function getBusiness(businessId) { + return request({ + url: '/oa/business/' + businessId, + method: 'get' + }) +} + +// 新增CRM 商机 +export function addBusiness(data) { + return request({ + url: '/oa/business', + method: 'post', + data: data + }) +} + +// 修改CRM 商机 +export function updateBusiness(data) { + return request({ + url: '/oa/business', + method: 'put', + data: data + }) +} + +// 删除CRM 商机 +export function delBusiness(businessId) { + return request({ + url: '/oa/business/' + businessId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/oa/clue.js b/ruoyi-ui/src/api/oa/clue.js new file mode 100644 index 0000000..bb40835 --- /dev/null +++ b/ruoyi-ui/src/api/oa/clue.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询CRM 线索列表 +export function listClue(query) { + return request({ + url: '/oa/clue/list', + method: 'get', + params: query + }) +} + +// 查询CRM 线索详细 +export function getClue(clueId) { + return request({ + url: '/oa/clue/' + clueId, + method: 'get' + }) +} + +// 新增CRM 线索 +export function addClue(data) { + return request({ + url: '/oa/clue', + method: 'post', + data: data + }) +} + +// 修改CRM 线索 +export function updateClue(data) { + return request({ + url: '/oa/clue', + method: 'put', + data: data + }) +} + +// 删除CRM 线索 +export function delClue(clueId) { + return request({ + url: '/oa/clue/' + clueId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/oa/customer.js b/ruoyi-ui/src/api/oa/customer.js new file mode 100644 index 0000000..431b3b2 --- /dev/null +++ b/ruoyi-ui/src/api/oa/customer.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 查询CRM 客户列表 +export function listCustomer(query) { + return request({ + url: '/oa/customer/list', + method: 'get', + params: query + }) +} +// 查询CRM 客户列表 +export function listSeaCustomer(query) { + return request({ + url: '/oa/customer/list-sea', + method: 'get', + params: query + }) +} + +// 查询CRM 客户详细 +export function getCustomer(customerId) { + return request({ + url: '/oa/customer/' + customerId, + method: 'get' + }) +} + +// 新增CRM 客户 +export function addCustomer(data) { + return request({ + url: '/oa/customer', + method: 'post', + data: data + }) +} + +// 修改CRM 客户 +export function updateCustomer(data) { + return request({ + url: '/oa/customer', + method: 'put', + data: data + }) +} + +// 删除CRM 客户 +export function delCustomer(customerId) { + return request({ + url: '/oa/customer/' + customerId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/oa/followUpRecord.js b/ruoyi-ui/src/api/oa/followUpRecord.js new file mode 100644 index 0000000..152201c --- /dev/null +++ b/ruoyi-ui/src/api/oa/followUpRecord.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 查询CRM 跟进记录列表 +export function listFollowUpRecord(query) { + return request({ + url: '/oa/followUpRecord/list', + method: 'get', + params: query + }) +} + +// 查询CRM 跟进记录列表 +export function listFollowUpRecordByIds(ids) { + return request({ + url: '/oa/followUpRecord/listByIds/'+ids, + method: 'get' + }) +} + +// 查询CRM 跟进记录详细 +export function getFollowUpRecord(followId) { + return request({ + url: '/oa/followUpRecord/' + followId, + method: 'get' + }) +} + +// 新增CRM 跟进记录 +export function addFollowUpRecord(data) { + return request({ + url: '/oa/followUpRecord', + method: 'post', + data: data + }) +} + +// 修改CRM 跟进记录 +export function updateFollowUpRecord(data) { + return request({ + url: '/oa/followUpRecord', + method: 'put', + data: data + }) +} + +// 删除CRM 跟进记录 +export function delFollowUpRecord(followId) { + return request({ + url: '/oa/followUpRecord/' + followId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/oa/product.js b/ruoyi-ui/src/api/oa/product.js new file mode 100644 index 0000000..fc0c322 --- /dev/null +++ b/ruoyi-ui/src/api/oa/product.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询CRM 产品列表 +export function listProduct(query) { + return request({ + url: '/oa/product/list', + method: 'get', + params: query + }) +} + +// 查询CRM 产品详细 +export function getProduct(productId) { + return request({ + url: '/oa/product/' + productId, + method: 'get' + }) +} + +// 新增CRM 产品 +export function addProduct(data) { + return request({ + url: '/oa/product', + method: 'post', + data: data + }) +} + +// 修改CRM 产品 +export function updateProduct(data) { + return request({ + url: '/oa/product', + method: 'put', + data: data + }) +} + +// 删除CRM 产品 +export function delProduct(productId) { + return request({ + url: '/oa/product/' + productId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 1c70b6e..4e43ef7 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -162,6 +162,21 @@ export const constantRoutes = [ ] }, + { + path: '/customer', + component: Layout, + hidden: true, + children: [ + { + path: 'detail/:customerId(\\d+)', + component: () => import('@/views/oa/customer/customer/detail'), + name: 'detail', + meta: { title: '客户详情' ,activeMenu: '/customer' } + }, + + ] + }, + { path: '/claim', component: Layout, @@ -181,6 +196,8 @@ export const constantRoutes = [ }, ] }, + + ] // 动态路由,基于用户权限动态去加载 diff --git a/ruoyi-ui/src/views/oa/customer/business/index.vue b/ruoyi-ui/src/views/oa/customer/business/index.vue new file mode 100644 index 0000000..d829f7f --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/business/index.vue @@ -0,0 +1,442 @@ + + + + diff --git a/ruoyi-ui/src/views/oa/customer/clue/index.vue b/ruoyi-ui/src/views/oa/customer/clue/index.vue new file mode 100644 index 0000000..d9c951a --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/clue/index.vue @@ -0,0 +1,469 @@ + + + diff --git a/ruoyi-ui/src/views/oa/customer/customer/detail.vue b/ruoyi-ui/src/views/oa/customer/customer/detail.vue new file mode 100644 index 0000000..7189490 --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/customer/detail.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/ruoyi-ui/src/views/oa/customer/customer/index.vue b/ruoyi-ui/src/views/oa/customer/customer/index.vue new file mode 100644 index 0000000..751a6cf --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/customer/index.vue @@ -0,0 +1,563 @@ + + + diff --git a/ruoyi-ui/src/views/oa/customer/product/index.vue b/ruoyi-ui/src/views/oa/customer/product/index.vue new file mode 100644 index 0000000..8542a46 --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/product/index.vue @@ -0,0 +1,339 @@ + + + diff --git a/ruoyi-ui/src/views/oa/customer/sea/index.vue b/ruoyi-ui/src/views/oa/customer/sea/index.vue new file mode 100644 index 0000000..e3f6485 --- /dev/null +++ b/ruoyi-ui/src/views/oa/customer/sea/index.vue @@ -0,0 +1,484 @@ + + +