From 9d60fbed01372507aeb6f15b569c63510e69c77e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=85=95=E4=B8=8B?= <484014559@qq.com>
Date: Wed, 6 Mar 2024 10:57:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=95=86=E6=9C=BA=EF=BC=8C?=
=?UTF-8?q?=E8=B7=9F=E8=BF=9B=E8=AE=B0=E5=BD=95\=E8=AE=A1=E5=88=92?=
=?UTF-8?q?=EF=BC=8C=E6=9C=8D=E5=8A=A1=E5=B7=A5=E5=8D=95=EF=BC=8C=E8=81=94?=
=?UTF-8?q?=E7=B3=BB=E4=BA=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 20 +-
ruoyi-admin/pom.xml | 16 +-
.../src/main/resources/application-druid.yml | 6 +-
.../src/main/resources/application.yml | 3 +-
.../system/controller/BusinessController.java | 141 ++
.../controller/ContactPersonController.java | 110 ++
.../controller/FollowUpPlanController.java | 98 ++
.../controller/FollowUpRecordController.java | 98 ++
.../controller/ServiceTicketController.java | 98 ++
.../com/ruoyi/crm/system/domain/Business.java | 357 +++++
.../crm/system/domain/ContactPerson.java | 284 ++++
.../ruoyi/crm/system/domain/FollowUpPlan.java | 187 +++
.../crm/system/domain/FollowUpRecord.java | 257 ++++
.../crm/system/domain/ServiceTicket.java | 497 ++++++
.../crm/system/mapper/BusinessMapper.java | 69 +
.../system/mapper/ContactPersonMapper.java | 62 +
.../crm/system/mapper/FollowUpPlanMapper.java | 63 +
.../system/mapper/FollowUpRecordMapper.java | 63 +
.../system/mapper/ServiceTicketMapper.java | 62 +
.../crm/system/service/IBusinessService.java | 74 +
.../system/service/IContactPersonService.java | 63 +
.../system/service/IFollowUpPlanService.java | 63 +
.../service/IFollowUpRecordService.java | 63 +
.../system/service/IServiceTicketService.java | 63 +
.../service/impl/BusinessServiceImpl.java | 176 +++
.../impl/ContactPersonServiceImpl.java | 97 ++
.../service/impl/FollowUpPlanServiceImpl.java | 97 ++
.../impl/FollowUpRecordServiceImpl.java | 97 ++
.../impl/ServiceTicketServiceImpl.java | 97 ++
.../mapper/crm/CrmCustomerMapper.xml | 2 +-
.../main/resources/system/BusinessMapper.xml | 185 +++
.../resources/system/ContactPersonMapper.xml | 156 ++
.../resources/system/FollowUpPlanMapper.xml | 121 ++
.../resources/system/FollowUpRecordMapper.xml | 148 ++
.../resources/system/ServiceTicketMapper.xml | 227 +++
ruoyi-ui/src/api/crm/business.js | 53 +
ruoyi-ui/src/api/crm/clues.js | 9 +
ruoyi-ui/src/api/crm/comment.js | 10 +-
ruoyi-ui/src/api/crm/person.js | 44 +
ruoyi-ui/src/api/crm/plan.js | 44 +
ruoyi-ui/src/api/crm/record.js | 44 +
ruoyi-ui/src/api/crm/ticket.js | 44 +
ruoyi-ui/src/views/crm/business/index.vue | 766 ++++++++++
.../src/views/crm/clues/AddAssociation.vue | 112 ++
ruoyi-ui/src/views/crm/clues/list.vue | 470 +++---
ruoyi-ui/src/views/crm/clues/person-list.vue | 450 +++---
ruoyi-ui/src/views/crm/customer/Comment.vue | 20 +-
ruoyi-ui/src/views/crm/person/index.vue | 492 ++++++
ruoyi-ui/src/views/crm/plan/index.vue | 404 +++++
ruoyi-ui/src/views/crm/pool/list.vue | 2 +-
ruoyi-ui/src/views/crm/record/index.vue | 458 ++++++
ruoyi-ui/src/views/crm/ticket/index.vue | 789 ++++++++++
ruoyi-ui/src/views/system/user/index.vue | 6 +-
sql/rycrm-tenant-1-zzw-20240306.sql | 1329 +++++++++++++++++
54 files changed, 9291 insertions(+), 475 deletions(-)
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/BusinessController.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ContactPersonController.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpPlanController.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpRecordController.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ServiceTicketController.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/Business.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ContactPerson.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpPlan.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpRecord.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ServiceTicket.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/BusinessMapper.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ContactPersonMapper.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpPlanMapper.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpRecordMapper.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ServiceTicketMapper.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IBusinessService.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IContactPersonService.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpPlanService.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpRecordService.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IServiceTicketService.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/BusinessServiceImpl.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ContactPersonServiceImpl.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpPlanServiceImpl.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpRecordServiceImpl.java
create mode 100644 ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ServiceTicketServiceImpl.java
create mode 100644 ruoyi-crm/src/main/resources/system/BusinessMapper.xml
create mode 100644 ruoyi-crm/src/main/resources/system/ContactPersonMapper.xml
create mode 100644 ruoyi-crm/src/main/resources/system/FollowUpPlanMapper.xml
create mode 100644 ruoyi-crm/src/main/resources/system/FollowUpRecordMapper.xml
create mode 100644 ruoyi-crm/src/main/resources/system/ServiceTicketMapper.xml
create mode 100644 ruoyi-ui/src/api/crm/business.js
create mode 100644 ruoyi-ui/src/api/crm/person.js
create mode 100644 ruoyi-ui/src/api/crm/plan.js
create mode 100644 ruoyi-ui/src/api/crm/record.js
create mode 100644 ruoyi-ui/src/api/crm/ticket.js
create mode 100644 ruoyi-ui/src/views/crm/business/index.vue
create mode 100644 ruoyi-ui/src/views/crm/clues/AddAssociation.vue
create mode 100644 ruoyi-ui/src/views/crm/person/index.vue
create mode 100644 ruoyi-ui/src/views/crm/plan/index.vue
create mode 100644 ruoyi-ui/src/views/crm/record/index.vue
create mode 100644 ruoyi-ui/src/views/crm/ticket/index.vue
create mode 100644 sql/rycrm-tenant-1-zzw-20240306.sql
diff --git a/pom.xml b/pom.xml
index 718de80..68ed53d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -179,18 +179,18 @@
-
- com.ruoyi
- ruoyi-quartz
- ${ruoyi.version}
-
+
+
+
+
+
-
- com.ruoyi
- ruoyi-generator
- ${ruoyi.version}
-
+
+
+
+
+
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 767a536..2ed571b 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -50,16 +50,16 @@
-
- com.ruoyi
- ruoyi-quartz
-
+
+
+
+
-
- com.ruoyi
- ruoyi-generator
-
+
+
+
+
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 41a4021..ebe7312 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,9 +6,11 @@ spring:
druid:
# 主库数据源
master:
- url: jdbc:mysql://120.46.37.243:3306/rycrm-master?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+# url: jdbc:mysql://120.46.37.243:3306/rycrm-master?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+ url: jdbc:mysql://127.0.0.1:3306/rycrm-master?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
- password: xpower1234
+ password: root
+# password: xpower1234
# 从库数据源
slave:
# 从数据源开关/默认关闭
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 75f0859..3655de2 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -96,7 +96,8 @@ mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
- mapperLocations: classpath*:mapper/**/*Mapper.xml
+# mapperLocations: classpath*:mapper/**/*Mapper.xml
+ mapperLocations: classpath*:*/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/BusinessController.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/BusinessController.java
new file mode 100644
index 0000000..aeb50ae
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/BusinessController.java
@@ -0,0 +1,141 @@
+package com.ruoyi.crm.system.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.crm.system.domain.Business;
+import com.ruoyi.crm.system.domain.FollowUpRecord;
+import com.ruoyi.crm.system.service.IBusinessService;
+import com.ruoyi.crm.system.service.IFollowUpRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 商机Controller
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+@RestController
+@RequestMapping("/system/business")
+public class BusinessController extends BaseController
+{
+ @Autowired
+ private IBusinessService businessService;
+
+ @Autowired
+ private IFollowUpRecordService followUpRecordService;
+
+ /**
+ * 查询商机列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(Business business)
+ {
+ startPage();
+ List list = businessService.selectBusinessList(business);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出商机列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:export')")
+ @Log(title = "商机", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, Business business)
+ {
+ List list = businessService.selectBusinessList(business);
+ ExcelUtil util = new ExcelUtil(Business.class);
+ util.exportExcel(response, list, "商机数据");
+ }
+
+ /**
+ * 获取商机详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(businessService.selectBusinessById(id));
+ }
+
+ /**
+ * 新增商机
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:add')")
+ @Log(title = "商机", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody Business business)
+ {
+ return toAjax(businessService.insertBusiness(business));
+ }
+
+ /**
+ * 修改商机
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:edit')")
+ @Log(title = "商机", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody Business business)
+ {
+ return toAjax(businessService.updateBusiness(business));
+ }
+
+ /**
+ * 删除商机
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:remove')")
+ @Log(title = "商机", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(businessService.deleteBusinessByIds(ids));
+ }
+
+ /**
+ * 新增跟进记录
+ */
+ @PreAuthorize("@ss.hasPermi('system:business:edit')")
+ @Log(title = "跟进记录", businessType = BusinessType.INSERT)
+ @PostMapping("/addRecords")
+ public AjaxResult addRecords(@RequestBody FollowUpRecord followUpRecord)
+ {
+ LocalDate currentDate = LocalDate.now();
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+ String formattedDate = currentDate.format(formatter);
+ //根据当前时间生成客户编号
+ followUpRecord.setCustomerNumber("zy_"+formattedDate+followUpRecord.getCustomerNumber());
+ return toAjax(followUpRecordService.insertFollowUpRecord(followUpRecord));
+ }
+ @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+ @PreAuthorize("@ss.hasPermi('system:business:add')")
+ @PostMapping("/importData")
+ public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+ {
+ ExcelUtil util = new ExcelUtil(Business.class);
+ List businessList = util.importExcel(file.getInputStream());
+ String operName = getUsername();
+ String message = businessService.importBusines(businessList, updateSupport, operName);
+ return AjaxResult.success(message);
+ }
+
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response)
+ {
+ ExcelUtil util = new ExcelUtil(Business.class);
+ util.importTemplateExcel(response, "商机数据");
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ContactPersonController.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ContactPersonController.java
new file mode 100644
index 0000000..5d77c79
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ContactPersonController.java
@@ -0,0 +1,110 @@
+package com.ruoyi.crm.system.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.crm.system.domain.ContactPerson;
+import com.ruoyi.crm.system.service.IContactPersonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 联系人Controller
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+@RestController
+@RequestMapping("/system/person")
+public class ContactPersonController extends BaseController
+{
+ @Autowired
+ private IContactPersonService contactPersonService;
+
+ /**
+ * 查询联系人列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ContactPerson contactPerson)
+ {
+ startPage();
+ List list = contactPersonService.selectContactPersonList(contactPerson);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出联系人列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:export')")
+ @Log(title = "联系人", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ContactPerson contactPerson)
+ {
+ List list = contactPersonService.selectContactPersonList(contactPerson);
+ ExcelUtil util = new ExcelUtil(ContactPerson.class);
+ util.exportExcel(response, list, "联系人数据");
+ }
+
+ /**
+ * 获取联系人详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(contactPersonService.selectContactPersonById(id));
+ }
+
+ /**
+ * 新增联系人
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:add')")
+ @Log(title = "联系人", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ContactPerson contactPerson)
+ {
+ return toAjax(contactPersonService.insertContactPerson(contactPerson));
+ }
+
+ /**
+ * 修改联系人
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:edit')")
+ @Log(title = "联系人", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ContactPerson contactPerson)
+ {
+ return toAjax(contactPersonService.updateContactPerson(contactPerson));
+ }
+
+ /**
+ * 删除联系人
+ */
+ @PreAuthorize("@ss.hasPermi('system:person:remove')")
+ @Log(title = "联系人", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(contactPersonService.deleteContactPersonByIds(ids));
+ }
+
+ /**
+ * 新增联系人
+ */
+// @PreAuthorize("@ss.hasPermi('system:person:add')")
+// @Log(title = "联系人", businessType = BusinessType.INSERT)
+// @PostMapping("/test")
+// public AjaxResult test(@RequestBody Map map)
+// {
+// System.out.println(map.toString());
+// return AjaxResult.success("s");
+// }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpPlanController.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpPlanController.java
new file mode 100644
index 0000000..e5eccd4
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpPlanController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.crm.system.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.crm.system.domain.FollowUpPlan;
+import com.ruoyi.crm.system.service.IFollowUpPlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 跟进计划Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@RestController
+@RequestMapping("/system/plan")
+public class FollowUpPlanController extends BaseController
+{
+ @Autowired
+ private IFollowUpPlanService followUpPlanService;
+
+ /**
+ * 查询跟进计划列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(FollowUpPlan followUpPlan)
+ {
+ startPage();
+ List list = followUpPlanService.selectFollowUpPlanList(followUpPlan);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出跟进计划列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:export')")
+ @Log(title = "跟进计划", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, FollowUpPlan followUpPlan)
+ {
+ List list = followUpPlanService.selectFollowUpPlanList(followUpPlan);
+ ExcelUtil util = new ExcelUtil(FollowUpPlan.class);
+ util.exportExcel(response, list, "跟进计划数据");
+ }
+
+ /**
+ * 获取跟进计划详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(followUpPlanService.selectFollowUpPlanById(id));
+ }
+
+ /**
+ * 新增跟进计划
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:add')")
+ @Log(title = "跟进计划", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody FollowUpPlan followUpPlan)
+ {
+ return toAjax(followUpPlanService.insertFollowUpPlan(followUpPlan));
+ }
+
+ /**
+ * 修改跟进计划
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:edit')")
+ @Log(title = "跟进计划", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody FollowUpPlan followUpPlan)
+ {
+ return toAjax(followUpPlanService.updateFollowUpPlan(followUpPlan));
+ }
+
+ /**
+ * 删除跟进计划
+ */
+ @PreAuthorize("@ss.hasPermi('system:plan:remove')")
+ @Log(title = "跟进计划", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(followUpPlanService.deleteFollowUpPlanByIds(ids));
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpRecordController.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpRecordController.java
new file mode 100644
index 0000000..d90fc6e
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/FollowUpRecordController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.crm.system.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.crm.system.domain.FollowUpRecord;
+import com.ruoyi.crm.system.service.IFollowUpRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 跟进记录Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@RestController
+@RequestMapping("/system/record")
+public class FollowUpRecordController extends BaseController
+{
+ @Autowired
+ private IFollowUpRecordService followUpRecordService;
+
+ /**
+ * 查询跟进记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(FollowUpRecord followUpRecord)
+ {
+ startPage();
+ List list = followUpRecordService.selectFollowUpRecordList(followUpRecord);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出跟进记录列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:export')")
+ @Log(title = "跟进记录", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, FollowUpRecord followUpRecord)
+ {
+ List list = followUpRecordService.selectFollowUpRecordList(followUpRecord);
+ ExcelUtil util = new ExcelUtil(FollowUpRecord.class);
+ util.exportExcel(response, list, "跟进记录数据");
+ }
+
+ /**
+ * 获取跟进记录详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(followUpRecordService.selectFollowUpRecordById(id));
+ }
+
+ /**
+ * 新增跟进记录
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:add')")
+ @Log(title = "跟进记录", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody FollowUpRecord followUpRecord)
+ {
+ return toAjax(followUpRecordService.insertFollowUpRecord(followUpRecord));
+ }
+
+ /**
+ * 修改跟进记录
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:edit')")
+ @Log(title = "跟进记录", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody FollowUpRecord followUpRecord)
+ {
+ return toAjax(followUpRecordService.updateFollowUpRecord(followUpRecord));
+ }
+
+ /**
+ * 删除跟进记录
+ */
+ @PreAuthorize("@ss.hasPermi('system:record:remove')")
+ @Log(title = "跟进记录", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(followUpRecordService.deleteFollowUpRecordByIds(ids));
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ServiceTicketController.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ServiceTicketController.java
new file mode 100644
index 0000000..4c6b58a
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/controller/ServiceTicketController.java
@@ -0,0 +1,98 @@
+package com.ruoyi.crm.system.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.crm.system.domain.ServiceTicket;
+import com.ruoyi.crm.system.service.IServiceTicketService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 服务工单Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@RestController
+@RequestMapping("/system/ticket")
+public class ServiceTicketController extends BaseController
+{
+ @Autowired
+ private IServiceTicketService serviceTicketService;
+
+ /**
+ * 查询服务工单列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ServiceTicket serviceTicket)
+ {
+ startPage();
+ List list = serviceTicketService.selectServiceTicketList(serviceTicket);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出服务工单列表
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:export')")
+ @Log(title = "服务工单", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ServiceTicket serviceTicket)
+ {
+ List list = serviceTicketService.selectServiceTicketList(serviceTicket);
+ ExcelUtil util = new ExcelUtil(ServiceTicket.class);
+ util.exportExcel(response, list, "服务工单数据");
+ }
+
+ /**
+ * 获取服务工单详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return AjaxResult.success(serviceTicketService.selectServiceTicketById(id));
+ }
+
+ /**
+ * 新增服务工单
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:add')")
+ @Log(title = "服务工单", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ServiceTicket serviceTicket)
+ {
+ return toAjax(serviceTicketService.insertServiceTicket(serviceTicket));
+ }
+
+ /**
+ * 修改服务工单
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:edit')")
+ @Log(title = "服务工单", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ServiceTicket serviceTicket)
+ {
+ return toAjax(serviceTicketService.updateServiceTicket(serviceTicket));
+ }
+
+ /**
+ * 删除服务工单
+ */
+ @PreAuthorize("@ss.hasPermi('system:ticket:remove')")
+ @Log(title = "服务工单", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(serviceTicketService.deleteServiceTicketByIds(ids));
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/Business.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/Business.java
new file mode 100644
index 0000000..bd0bc9c
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/Business.java
@@ -0,0 +1,357 @@
+package com.ruoyi.crm.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 商机对象 business
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public class Business extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 商机id */
+ private Long id;
+
+ /** 标题 */
+ @Excel(name = "标题")
+ private String title;
+
+ /** 关联客户 */
+ @Excel(name = "关联客户")
+ private Long customerId;
+
+ /** 客户联系人 */
+ @Excel(name = "客户联系人")
+ private Long customerLinkman;
+
+ /** 客户名称 */
+ @Excel(name = "客户名称")
+ private String customerName;
+
+ /** 客户编号 */
+ @Excel(name = "客户编号")
+ private String customerNumber;
+
+ /** 商机名称 */
+ @Excel(name = "商机名称")
+ private String businessName;
+
+ /** 商机编号 */
+ @Excel(name = "商机编号")
+ private String businessNumber;
+
+ /** 销售阶段 */
+ @Excel(name = "销售阶段")
+ private Integer salesStage;
+
+ /** 赢率 */
+ @Excel(name = "赢率")
+ private Integer probabilityOfWining;
+
+ /** 阶段类型 */
+ @Excel(name = "阶段类型")
+ private Integer stageType;
+
+ /** 负责人 */
+ @Excel(name = "负责人")
+ private String personInCharge;
+
+ /** 归属部门 */
+ @Excel(name = "归属部门")
+ private String belongingDepartment;
+
+ /** 商机明细 */
+ @Excel(name = "商机明细")
+ private String businessDetail;
+
+ /** 预测商机金额(单位:分) */
+ @Excel(name = "预测商机金额", readConverterExp = "单=位:分")
+ private Integer forecastBusinessPrice;
+
+ /** 预计成交日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "预计成交日期", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date forecastSuccessTime;
+
+ /** 协作人 */
+ @Excel(name = "协作人")
+ private String collaborator;
+
+ /** 最后跟进时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "最后跟进时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date lastFollowUpTime;
+
+ /** 阶段变更时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "阶段变更时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date phaseChangeTime;
+
+ /** 输单原因 */
+ @Excel(name = "输单原因")
+ private String loseOrderCause;
+
+ /** 提交人 */
+ @Excel(name = "提交人")
+ private String submitter;
+
+ /** 提交时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date submitTime;
+
+ /** 删除标志 */
+ @Excel(name = "删除标志")
+ private Integer isDelete;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ public String getTitle()
+ {
+ return title;
+ }
+ public void setCustomerId(Long customerId)
+ {
+ this.customerId = customerId;
+ }
+
+ public Long getCustomerId()
+ {
+ return customerId;
+ }
+ public void setCustomerLinkman(Long customerLinkman)
+ {
+ this.customerLinkman = customerLinkman;
+ }
+
+ public Long getCustomerLinkman()
+ {
+ return customerLinkman;
+ }
+ public void setCustomerName(String customerName)
+ {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerName()
+ {
+ return customerName;
+ }
+ public void setCustomerNumber(String customerNumber)
+ {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerNumber()
+ {
+ return customerNumber;
+ }
+ public void setBusinessName(String businessName)
+ {
+ this.businessName = businessName;
+ }
+
+ public String getBusinessName()
+ {
+ return businessName;
+ }
+ public void setBusinessNumber(String businessNumber)
+ {
+ this.businessNumber = businessNumber;
+ }
+
+ public String getBusinessNumber()
+ {
+ return businessNumber;
+ }
+ public void setSalesStage(Integer salesStage)
+ {
+ this.salesStage = salesStage;
+ }
+
+ public Integer getSalesStage()
+ {
+ return salesStage;
+ }
+ public void setProbabilityOfWining(Integer probabilityOfWining)
+ {
+ this.probabilityOfWining = probabilityOfWining;
+ }
+
+ public Integer getProbabilityOfWining()
+ {
+ return probabilityOfWining;
+ }
+ public void setStageType(Integer stageType)
+ {
+ this.stageType = stageType;
+ }
+
+ public Integer getStageType()
+ {
+ return stageType;
+ }
+ public void setPersonInCharge(String personInCharge)
+ {
+ this.personInCharge = personInCharge;
+ }
+
+ public String getPersonInCharge()
+ {
+ return personInCharge;
+ }
+ public void setBelongingDepartment(String belongingDepartment)
+ {
+ this.belongingDepartment = belongingDepartment;
+ }
+
+ public String getBelongingDepartment()
+ {
+ return belongingDepartment;
+ }
+ public void setBusinessDetail(String businessDetail)
+ {
+ this.businessDetail = businessDetail;
+ }
+
+ public String getBusinessDetail()
+ {
+ return businessDetail;
+ }
+ public void setForecastBusinessPrice(Integer forecastBusinessPrice)
+ {
+ this.forecastBusinessPrice = forecastBusinessPrice;
+ }
+
+ public Integer getForecastBusinessPrice()
+ {
+ return forecastBusinessPrice;
+ }
+ public void setForecastSuccessTime(Date forecastSuccessTime)
+ {
+ this.forecastSuccessTime = forecastSuccessTime;
+ }
+
+ public Date getForecastSuccessTime()
+ {
+ return forecastSuccessTime;
+ }
+ public void setCollaborator(String collaborator)
+ {
+ this.collaborator = collaborator;
+ }
+
+ public String getCollaborator()
+ {
+ return collaborator;
+ }
+ public void setLastFollowUpTime(Date lastFollowUpTime)
+ {
+ this.lastFollowUpTime = lastFollowUpTime;
+ }
+
+ public Date getLastFollowUpTime()
+ {
+ return lastFollowUpTime;
+ }
+ public void setPhaseChangeTime(Date phaseChangeTime)
+ {
+ this.phaseChangeTime = phaseChangeTime;
+ }
+
+ public Date getPhaseChangeTime()
+ {
+ return phaseChangeTime;
+ }
+ public void setLoseOrderCause(String loseOrderCause)
+ {
+ this.loseOrderCause = loseOrderCause;
+ }
+
+ public String getLoseOrderCause()
+ {
+ return loseOrderCause;
+ }
+ public void setSubmitter(String submitter)
+ {
+ this.submitter = submitter;
+ }
+
+ public String getSubmitter()
+ {
+ return submitter;
+ }
+ public void setSubmitTime(Date submitTime)
+ {
+ this.submitTime = submitTime;
+ }
+
+ public Date getSubmitTime()
+ {
+ return submitTime;
+ }
+ public void setIsDelete(Integer isDelete)
+ {
+ this.isDelete = isDelete;
+ }
+
+ public Integer getIsDelete()
+ {
+ return isDelete;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("title", getTitle())
+ .append("customerId", getCustomerId())
+ .append("customerLinkman", getCustomerLinkman())
+ .append("customerName", getCustomerName())
+ .append("customerNumber", getCustomerNumber())
+ .append("businessName", getBusinessName())
+ .append("businessNumber", getBusinessNumber())
+ .append("salesStage", getSalesStage())
+ .append("probabilityOfWining", getProbabilityOfWining())
+ .append("stageType", getStageType())
+ .append("personInCharge", getPersonInCharge())
+ .append("belongingDepartment", getBelongingDepartment())
+ .append("businessDetail", getBusinessDetail())
+ .append("forecastBusinessPrice", getForecastBusinessPrice())
+ .append("forecastSuccessTime", getForecastSuccessTime())
+ .append("collaborator", getCollaborator())
+ .append("lastFollowUpTime", getLastFollowUpTime())
+ .append("phaseChangeTime", getPhaseChangeTime())
+ .append("loseOrderCause", getLoseOrderCause())
+ .append("submitter", getSubmitter())
+ .append("submitTime", getSubmitTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("isDelete", getIsDelete())
+ .toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ContactPerson.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ContactPerson.java
new file mode 100644
index 0000000..41fb5ec
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ContactPerson.java
@@ -0,0 +1,284 @@
+package com.ruoyi.crm.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 联系人对象 contact_person
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public class ContactPerson extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 联系人id */
+ private Long id;
+
+ /** 标题 */
+ @Excel(name = "标题")
+ private String title;
+
+ /** 姓名 */
+ @Excel(name = "姓名")
+ private String name;
+
+ /** 手机号 */
+ @Excel(name = "手机号")
+ private String phoneNumber;
+
+ /** 关联客户 */
+ @Excel(name = "关联客户")
+ private Long customerId;
+
+ /** 客户编号 */
+ @Excel(name = "客户编号")
+ private String customerNumber;
+
+ /** 部门 */
+ @Excel(name = "部门")
+ private String dep;
+
+ /** 职务 */
+ @Excel(name = "职务")
+ private String job;
+
+ /** 微信号 */
+ @Excel(name = "微信号")
+ private String wxNumber;
+
+ /** 邮箱 */
+ @Excel(name = "邮箱")
+ private String mailNumber;
+
+ /** 是否关键决策人 */
+ @Excel(name = "是否关键决策人")
+ private Integer isKey;
+
+ /** 联系人详情 */
+ @Excel(name = "联系人详情")
+ private String contactPersonDetail;
+
+ /** 负责人 */
+ @Excel(name = "负责人")
+ private String personInCharge;
+
+ /** 归属部门 */
+ @Excel(name = "归属部门")
+ private String belongingDepartment;
+
+ /** 协作人 */
+ @Excel(name = "协作人")
+ private String collaborator;
+
+ /** 提交人 */
+ @Excel(name = "提交人")
+ private String submitter;
+
+ /** 提交时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date submitTime;
+
+ /** 删除标志 */
+ @Excel(name = "删除标志")
+ private Integer isDelete;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ public String getTitle()
+ {
+ return title;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setPhoneNumber(String phoneNumber)
+ {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPhoneNumber()
+ {
+ return phoneNumber;
+ }
+ public void setCustomerId(Long customerId)
+ {
+ this.customerId = customerId;
+ }
+
+ public Long getCustomerId()
+ {
+ return customerId;
+ }
+ public void setCustomerNumber(String customerNumber)
+ {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerNumber()
+ {
+ return customerNumber;
+ }
+ public void setDep(String dep)
+ {
+ this.dep = dep;
+ }
+
+ public String getDep()
+ {
+ return dep;
+ }
+ public void setJob(String job)
+ {
+ this.job = job;
+ }
+
+ public String getJob()
+ {
+ return job;
+ }
+ public void setWxNumber(String wxNumber)
+ {
+ this.wxNumber = wxNumber;
+ }
+
+ public String getWxNumber()
+ {
+ return wxNumber;
+ }
+ public void setMailNumber(String mailNumber)
+ {
+ this.mailNumber = mailNumber;
+ }
+
+ public String getMailNumber()
+ {
+ return mailNumber;
+ }
+ public void setIsKey(Integer isKey)
+ {
+ this.isKey = isKey;
+ }
+
+ public Integer getIsKey()
+ {
+ return isKey;
+ }
+ public void setContactPersonDetail(String contactPersonDetail)
+ {
+ this.contactPersonDetail = contactPersonDetail;
+ }
+
+ public String getContactPersonDetail()
+ {
+ return contactPersonDetail;
+ }
+ public void setPersonInCharge(String personInCharge)
+ {
+ this.personInCharge = personInCharge;
+ }
+
+ public String getPersonInCharge()
+ {
+ return personInCharge;
+ }
+ public void setBelongingDepartment(String belongingDepartment)
+ {
+ this.belongingDepartment = belongingDepartment;
+ }
+
+ public String getBelongingDepartment()
+ {
+ return belongingDepartment;
+ }
+ public void setCollaborator(String collaborator)
+ {
+ this.collaborator = collaborator;
+ }
+
+ public String getCollaborator()
+ {
+ return collaborator;
+ }
+ public void setSubmitter(String submitter)
+ {
+ this.submitter = submitter;
+ }
+
+ public String getSubmitter()
+ {
+ return submitter;
+ }
+ public void setSubmitTime(Date submitTime)
+ {
+ this.submitTime = submitTime;
+ }
+
+ public Date getSubmitTime()
+ {
+ return submitTime;
+ }
+ public void setIsDelete(Integer isDelete)
+ {
+ this.isDelete = isDelete;
+ }
+
+ public Integer getIsDelete()
+ {
+ return isDelete;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("title", getTitle())
+ .append("name", getName())
+ .append("phoneNumber", getPhoneNumber())
+ .append("customerId", getCustomerId())
+ .append("customerNumber", getCustomerNumber())
+ .append("dep", getDep())
+ .append("job", getJob())
+ .append("wxNumber", getWxNumber())
+ .append("mailNumber", getMailNumber())
+ .append("isKey", getIsKey())
+ .append("contactPersonDetail", getContactPersonDetail())
+ .append("personInCharge", getPersonInCharge())
+ .append("belongingDepartment", getBelongingDepartment())
+ .append("collaborator", getCollaborator())
+ .append("submitter", getSubmitter())
+ .append("submitTime", getSubmitTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("isDelete", getIsDelete())
+ .toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpPlan.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpPlan.java
new file mode 100644
index 0000000..c1050d2
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpPlan.java
@@ -0,0 +1,187 @@
+package com.ruoyi.crm.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 跟进计划对象 follow_up_plan
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public class FollowUpPlan extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 跟进计划id */
+ private Long id;
+
+ /** 标题 */
+ @Excel(name = "标题")
+ private String title;
+
+ /** 计划内容 */
+ @Excel(name = "计划内容")
+ private String planContent;
+
+ /** 跟进客户 */
+ @Excel(name = "跟进客户")
+ private String customer;
+
+ /** 跟进时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "跟进时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date planTime;
+
+ /** 跟进执行人 */
+ @Excel(name = "跟进执行人")
+ private String planExecutor;
+
+ /** 归属部门 */
+ @Excel(name = "归属部门")
+ private String belongingDepartment;
+
+ /** 计划状态 */
+ @Excel(name = "计划状态")
+ private Integer planStatus;
+
+ /** 提交人 */
+ @Excel(name = "提交人")
+ private String submitter;
+
+ /** 提交时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date submitTime;
+
+ /** 是否删除 */
+ @Excel(name = "是否删除")
+ private Integer isDelete;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ public String getTitle()
+ {
+ return title;
+ }
+ public void setPlanContent(String planContent)
+ {
+ this.planContent = planContent;
+ }
+
+ public String getPlanContent()
+ {
+ return planContent;
+ }
+ public void setCustomer(String customer)
+ {
+ this.customer = customer;
+ }
+
+ public String getCustomer()
+ {
+ return customer;
+ }
+ public void setPlanTime(Date planTime)
+ {
+ this.planTime = planTime;
+ }
+
+ public Date getPlanTime()
+ {
+ return planTime;
+ }
+ public void setPlanExecutor(String planExecutor)
+ {
+ this.planExecutor = planExecutor;
+ }
+
+ public String getPlanExecutor()
+ {
+ return planExecutor;
+ }
+ public void setBelongingDepartment(String belongingDepartment)
+ {
+ this.belongingDepartment = belongingDepartment;
+ }
+
+ public String getBelongingDepartment()
+ {
+ return belongingDepartment;
+ }
+ public void setPlanStatus(Integer planStatus)
+ {
+ this.planStatus = planStatus;
+ }
+
+ public Integer getPlanStatus()
+ {
+ return planStatus;
+ }
+ public void setSubmitter(String submitter)
+ {
+ this.submitter = submitter;
+ }
+
+ public String getSubmitter()
+ {
+ return submitter;
+ }
+ public void setSubmitTime(Date submitTime)
+ {
+ this.submitTime = submitTime;
+ }
+
+ public Date getSubmitTime()
+ {
+ return submitTime;
+ }
+ public void setIsDelete(Integer isDelete)
+ {
+ this.isDelete = isDelete;
+ }
+
+ public Integer getIsDelete()
+ {
+ return isDelete;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("title", getTitle())
+ .append("planContent", getPlanContent())
+ .append("customer", getCustomer())
+ .append("planTime", getPlanTime())
+ .append("planExecutor", getPlanExecutor())
+ .append("belongingDepartment", getBelongingDepartment())
+ .append("planStatus", getPlanStatus())
+ .append("submitter", getSubmitter())
+ .append("submitTime", getSubmitTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("isDelete", getIsDelete())
+ .toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpRecord.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpRecord.java
new file mode 100644
index 0000000..751027d
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/FollowUpRecord.java
@@ -0,0 +1,257 @@
+package com.ruoyi.crm.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 跟进记录对象 follow_up_record
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public class FollowUpRecord extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** */
+ private Long id;
+
+ /** 标题 */
+ @Excel(name = "标题")
+ private String title;
+
+ /** 跟进记录 */
+ @Excel(name = "跟进记录")
+ private String followUpRecord;
+
+ /** 跟进主体 */
+ @Excel(name = "跟进主体")
+ private String followUpSubject;
+
+ /** 客户编号(辅助字段) */
+ @Excel(name = "客户编号", readConverterExp = "辅=助字段")
+ private String customerNumber;
+
+ /** 跟进商机 */
+ @Excel(name = "跟进商机")
+ private String followUpBusinessOpportunities;
+
+ /** 商机编号(辅助字段) */
+ @Excel(name = "商机编号", readConverterExp = "辅=助字段")
+ private String opportunityNumber;
+
+ /** 联系人 */
+ @Excel(name = "联系人")
+ private String contactPeople;
+
+ /** 跟进方式 */
+ @Excel(name = "跟进方式")
+ private Integer followUpType;
+
+ /** 跟进内容 */
+ @Excel(name = "跟进内容")
+ private String content;
+
+ /** 跟进时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "跟进时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date followUpTime;
+
+ /** 跟进人 */
+ @Excel(name = "跟进人")
+ private String followUpPeople;
+
+ /** 归属部门 */
+ @Excel(name = "归属部门")
+ private String belongingDepartment;
+
+ /** 提交人 */
+ @Excel(name = "提交人")
+ private String submitter;
+
+ /** 提交时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date submitTime;
+
+ /** 是否删除 */
+ @Excel(name = "客户id")
+ private Long customerId;
+
+ public Long getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(Long customerId) {
+ this.customerId = customerId;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ public String getTitle()
+ {
+ return title;
+ }
+ public void setFollowUpRecord(String followUpRecord)
+ {
+ this.followUpRecord = followUpRecord;
+ }
+
+ public String getFollowUpRecord()
+ {
+ return followUpRecord;
+ }
+ public void setFollowUpSubject(String followUpSubject)
+ {
+ this.followUpSubject = followUpSubject;
+ }
+
+ public String getFollowUpSubject()
+ {
+ return followUpSubject;
+ }
+ public void setCustomerNumber(String customerNumber)
+ {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerNumber()
+ {
+ return customerNumber;
+ }
+ public void setFollowUpBusinessOpportunities(String followUpBusinessOpportunities)
+ {
+ this.followUpBusinessOpportunities = followUpBusinessOpportunities;
+ }
+
+ public String getFollowUpBusinessOpportunities()
+ {
+ return followUpBusinessOpportunities;
+ }
+ public void setOpportunityNumber(String opportunityNumber)
+ {
+ this.opportunityNumber = opportunityNumber;
+ }
+
+ public String getOpportunityNumber()
+ {
+ return opportunityNumber;
+ }
+ public void setContactPeople(String contactPeople)
+ {
+ this.contactPeople = contactPeople;
+ }
+
+ public String getContactPeople()
+ {
+ return contactPeople;
+ }
+ public void setFollowUpType(Integer followUpType)
+ {
+ this.followUpType = followUpType;
+ }
+
+ public Integer getFollowUpType()
+ {
+ return followUpType;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public void setFollowUpTime(Date followUpTime)
+ {
+ this.followUpTime = followUpTime;
+ }
+
+ public Date getFollowUpTime()
+ {
+ return followUpTime;
+ }
+ public void setFollowUpPeople(String followUpPeople)
+ {
+ this.followUpPeople = followUpPeople;
+ }
+
+ public String getFollowUpPeople()
+ {
+ return followUpPeople;
+ }
+ public void setBelongingDepartment(String belongingDepartment)
+ {
+ this.belongingDepartment = belongingDepartment;
+ }
+
+ public String getBelongingDepartment()
+ {
+ return belongingDepartment;
+ }
+ public void setSubmitter(String submitter)
+ {
+ this.submitter = submitter;
+ }
+
+ public String getSubmitter()
+ {
+ return submitter;
+ }
+ public void setSubmitTime(Date submitTime)
+ {
+ this.submitTime = submitTime;
+ }
+
+ public Date getSubmitTime()
+ {
+ return submitTime;
+ }
+
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("title", getTitle())
+ .append("followUpRecord", getFollowUpRecord())
+ .append("followUpSubject", getFollowUpSubject())
+ .append("customerNumber", getCustomerNumber())
+ .append("followUpBusinessOpportunities", getFollowUpBusinessOpportunities())
+ .append("opportunityNumber", getOpportunityNumber())
+ .append("contactPeople", getContactPeople())
+ .append("followUpType", getFollowUpType())
+ .append("content", getContent())
+ .append("followUpTime", getFollowUpTime())
+ .append("followUpPeople", getFollowUpPeople())
+ .append("belongingDepartment", getBelongingDepartment())
+ .append("submitter", getSubmitter())
+ .append("submitTime", getSubmitTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .append("customerId", getCustomerId())
+ .toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ServiceTicket.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ServiceTicket.java
new file mode 100644
index 0000000..bd54f40
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/domain/ServiceTicket.java
@@ -0,0 +1,497 @@
+package com.ruoyi.crm.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 服务工单对象 service_ticket
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public class ServiceTicket extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 服务工单id */
+ private Long id;
+
+ /** 标题 */
+ @Excel(name = "标题")
+ private String title;
+
+ /** 客户姓名 */
+ @Excel(name = "客户姓名")
+ private String customerName;
+
+ /** 客户编号 */
+ @Excel(name = "客户编号")
+ private String customerNumber;
+
+ /** 合同标题 */
+ @Excel(name = "合同标题")
+ private String contractTitle;
+
+ /** 合同订单编号 */
+ @Excel(name = "合同订单编号")
+ private String contractOrderNumber;
+
+ /** 客户联系人 */
+ @Excel(name = "客户联系人")
+ private String customerContact;
+
+ /** 手机号 */
+ @Excel(name = "手机号")
+ private String phoneNumber;
+
+ /** 服务类型 */
+ @Excel(name = "服务类型")
+ private Integer serviceType;
+
+ /** 服务单号 */
+ @Excel(name = "服务单号")
+ private String serviceOrderNumber;
+
+ /** 第几个服务单 */
+ @Excel(name = "第几个服务单")
+ private Integer howManyServiceOrder;
+
+ /** 服务开始时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "服务开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date serviceStarTime;
+
+ /** 服务结束时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "服务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date serviceEndTime;
+
+ /** 服务需求天数 */
+ @Excel(name = "服务需求天数")
+ private Integer demandServiceDay;
+
+ /** 售后技术人员 */
+ @Excel(name = "售后技术人员")
+ private String afterSalesTechnician;
+
+ /** 服务地址(省/自治区/直辖市) */
+ @Excel(name = "服务地址(省/自治区/直辖市)")
+ private String serviceAddress;
+
+ /** 服务地址(市) */
+ @Excel(name = "服务地址(市)")
+ private String serviceAddressCity;
+
+ /** 服务地址(区) */
+ @Excel(name = "服务地址(区)")
+ private String serviceAddressArea;
+
+ /** 服务地址(详细地址) */
+ @Excel(name = "服务地址(详细地址)")
+ private String serviceAddressDetail;
+
+ /** 签到 */
+ @Excel(name = "签到")
+ private String signIn;
+
+ /** 签到时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "签到时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date signInTime;
+
+ /** 签退 */
+ @Excel(name = "签退")
+ private String signOut;
+
+ /** 签退时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "签退时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date signOutTime;
+
+ /** 是否解决问题(true or false) */
+ @Excel(name = "是否解决问题", readConverterExp = "是否解决问题(true or false)")
+ private Integer isSolveTheProblem;
+
+ /** 现场照片 */
+ @Excel(name = "现场照片")
+ private String scenePhoto;
+
+ /** 客户满意度 */
+ @Excel(name = "客户满意度")
+ private Integer customerSatisfaction;
+
+ /** 满意度数值 */
+ @Excel(name = "满意度数值")
+ private Integer satisfactionValue;
+
+ /** 客户意见与诉求 */
+ @Excel(name = "客户意见与诉求")
+ private String customerCommentsAndDemands;
+
+ /** 提交人 */
+ @Excel(name = "提交人")
+ private String submitter;
+
+ /** 提交时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date submitTime;
+
+ /** 流程状态 */
+ @Excel(name = "流程状态")
+ private Integer processState;
+
+ /** 当前节点 */
+ @Excel(name = "当前节点")
+ private Integer currentNode;
+
+ /** 当前负责人 */
+ @Excel(name = "当前负责人")
+ private String currentPersonInCharge;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ public String getTitle()
+ {
+ return title;
+ }
+ public void setCustomerName(String customerName)
+ {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerName()
+ {
+ return customerName;
+ }
+ public void setCustomerNumber(String customerNumber)
+ {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerNumber()
+ {
+ return customerNumber;
+ }
+ public void setContractTitle(String contractTitle)
+ {
+ this.contractTitle = contractTitle;
+ }
+
+ public String getContractTitle()
+ {
+ return contractTitle;
+ }
+ public void setContractOrderNumber(String contractOrderNumber)
+ {
+ this.contractOrderNumber = contractOrderNumber;
+ }
+
+ public String getContractOrderNumber()
+ {
+ return contractOrderNumber;
+ }
+ public void setCustomerContact(String customerContact)
+ {
+ this.customerContact = customerContact;
+ }
+
+ public String getCustomerContact()
+ {
+ return customerContact;
+ }
+ public void setPhoneNumber(String phoneNumber)
+ {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPhoneNumber()
+ {
+ return phoneNumber;
+ }
+ public void setServiceType(Integer serviceType)
+ {
+ this.serviceType = serviceType;
+ }
+
+ public Integer getServiceType()
+ {
+ return serviceType;
+ }
+ public void setServiceOrderNumber(String serviceOrderNumber)
+ {
+ this.serviceOrderNumber = serviceOrderNumber;
+ }
+
+ public String getServiceOrderNumber()
+ {
+ return serviceOrderNumber;
+ }
+ public void setHowManyServiceOrder(Integer howManyServiceOrder)
+ {
+ this.howManyServiceOrder = howManyServiceOrder;
+ }
+
+ public Integer getHowManyServiceOrder()
+ {
+ return howManyServiceOrder;
+ }
+ public void setServiceStarTime(Date serviceStarTime)
+ {
+ this.serviceStarTime = serviceStarTime;
+ }
+
+ public Date getServiceStarTime()
+ {
+ return serviceStarTime;
+ }
+ public void setServiceEndTime(Date serviceEndTime)
+ {
+ this.serviceEndTime = serviceEndTime;
+ }
+
+ public Date getServiceEndTime()
+ {
+ return serviceEndTime;
+ }
+ public void setDemandServiceDay(Integer demandServiceDay)
+ {
+ this.demandServiceDay = demandServiceDay;
+ }
+
+ public Integer getDemandServiceDay()
+ {
+ return demandServiceDay;
+ }
+ public void setAfterSalesTechnician(String afterSalesTechnician)
+ {
+ this.afterSalesTechnician = afterSalesTechnician;
+ }
+
+ public String getAfterSalesTechnician()
+ {
+ return afterSalesTechnician;
+ }
+ public void setServiceAddress(String serviceAddress)
+ {
+ this.serviceAddress = serviceAddress;
+ }
+
+ public String getServiceAddress()
+ {
+ return serviceAddress;
+ }
+ public void setServiceAddressCity(String serviceAddressCity)
+ {
+ this.serviceAddressCity = serviceAddressCity;
+ }
+
+ public String getServiceAddressCity()
+ {
+ return serviceAddressCity;
+ }
+ public void setServiceAddressArea(String serviceAddressArea)
+ {
+ this.serviceAddressArea = serviceAddressArea;
+ }
+
+ public String getServiceAddressArea()
+ {
+ return serviceAddressArea;
+ }
+ public void setServiceAddressDetail(String serviceAddressDetail)
+ {
+ this.serviceAddressDetail = serviceAddressDetail;
+ }
+
+ public String getServiceAddressDetail()
+ {
+ return serviceAddressDetail;
+ }
+ public void setSignIn(String signIn)
+ {
+ this.signIn = signIn;
+ }
+
+ public String getSignIn()
+ {
+ return signIn;
+ }
+ public void setSignInTime(Date signInTime)
+ {
+ this.signInTime = signInTime;
+ }
+
+ public Date getSignInTime()
+ {
+ return signInTime;
+ }
+ public void setSignOut(String signOut)
+ {
+ this.signOut = signOut;
+ }
+
+ public String getSignOut()
+ {
+ return signOut;
+ }
+ public void setSignOutTime(Date signOutTime)
+ {
+ this.signOutTime = signOutTime;
+ }
+
+ public Date getSignOutTime()
+ {
+ return signOutTime;
+ }
+ public void setIsSolveTheProblem(Integer isSolveTheProblem)
+ {
+ this.isSolveTheProblem = isSolveTheProblem;
+ }
+
+ public Integer getIsSolveTheProblem()
+ {
+ return isSolveTheProblem;
+ }
+ public void setScenePhoto(String scenePhoto)
+ {
+ this.scenePhoto = scenePhoto;
+ }
+
+ public String getScenePhoto()
+ {
+ return scenePhoto;
+ }
+ public void setCustomerSatisfaction(Integer customerSatisfaction)
+ {
+ this.customerSatisfaction = customerSatisfaction;
+ }
+
+ public Integer getCustomerSatisfaction()
+ {
+ return customerSatisfaction;
+ }
+ public void setSatisfactionValue(Integer satisfactionValue)
+ {
+ this.satisfactionValue = satisfactionValue;
+ }
+
+ public Integer getSatisfactionValue()
+ {
+ return satisfactionValue;
+ }
+ public void setCustomerCommentsAndDemands(String customerCommentsAndDemands)
+ {
+ this.customerCommentsAndDemands = customerCommentsAndDemands;
+ }
+
+ public String getCustomerCommentsAndDemands()
+ {
+ return customerCommentsAndDemands;
+ }
+ public void setSubmitter(String submitter)
+ {
+ this.submitter = submitter;
+ }
+
+ public String getSubmitter()
+ {
+ return submitter;
+ }
+ public void setSubmitTime(Date submitTime)
+ {
+ this.submitTime = submitTime;
+ }
+
+ public Date getSubmitTime()
+ {
+ return submitTime;
+ }
+ public void setProcessState(Integer processState)
+ {
+ this.processState = processState;
+ }
+
+ public Integer getProcessState()
+ {
+ return processState;
+ }
+ public void setCurrentNode(Integer currentNode)
+ {
+ this.currentNode = currentNode;
+ }
+
+ public Integer getCurrentNode()
+ {
+ return currentNode;
+ }
+ public void setCurrentPersonInCharge(String currentPersonInCharge)
+ {
+ this.currentPersonInCharge = currentPersonInCharge;
+ }
+
+ public String getCurrentPersonInCharge()
+ {
+ return currentPersonInCharge;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("title", getTitle())
+ .append("customerName", getCustomerName())
+ .append("customerNumber", getCustomerNumber())
+ .append("contractTitle", getContractTitle())
+ .append("contractOrderNumber", getContractOrderNumber())
+ .append("customerContact", getCustomerContact())
+ .append("phoneNumber", getPhoneNumber())
+ .append("serviceType", getServiceType())
+ .append("serviceOrderNumber", getServiceOrderNumber())
+ .append("howManyServiceOrder", getHowManyServiceOrder())
+ .append("serviceStarTime", getServiceStarTime())
+ .append("serviceEndTime", getServiceEndTime())
+ .append("demandServiceDay", getDemandServiceDay())
+ .append("afterSalesTechnician", getAfterSalesTechnician())
+ .append("serviceAddress", getServiceAddress())
+ .append("serviceAddressCity", getServiceAddressCity())
+ .append("serviceAddressArea", getServiceAddressArea())
+ .append("serviceAddressDetail", getServiceAddressDetail())
+ .append("signIn", getSignIn())
+ .append("signInTime", getSignInTime())
+ .append("signOut", getSignOut())
+ .append("signOutTime", getSignOutTime())
+ .append("isSolveTheProblem", getIsSolveTheProblem())
+ .append("scenePhoto", getScenePhoto())
+ .append("customerSatisfaction", getCustomerSatisfaction())
+ .append("satisfactionValue", getSatisfactionValue())
+ .append("customerCommentsAndDemands", getCustomerCommentsAndDemands())
+ .append("submitter", getSubmitter())
+ .append("submitTime", getSubmitTime())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("processState", getProcessState())
+ .append("currentNode", getCurrentNode())
+ .append("currentPersonInCharge", getCurrentPersonInCharge())
+ .toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/BusinessMapper.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/BusinessMapper.java
new file mode 100644
index 0000000..46307d1
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/BusinessMapper.java
@@ -0,0 +1,69 @@
+package com.ruoyi.crm.system.mapper;
+
+import com.ruoyi.crm.system.domain.Business;
+
+import java.util.List;
+
+/**
+ * 商机Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public interface BusinessMapper
+{
+ /**
+ * 查询商机
+ *
+ * @param id 商机主键
+ * @return 商机
+ */
+ public Business selectBusinessById(Long id);
+
+ /**
+ * 查询商机列表
+ *
+ * @param business 商机
+ * @return 商机集合
+ */
+ public List selectBusinessList(Business business);
+
+ /**
+ * 新增商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ public int insertBusiness(Business business);
+
+ /**
+ * 修改商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ public int updateBusiness(Business business);
+
+ /**
+ * 删除商机
+ *
+ * @param id 商机主键
+ * @return 结果
+ */
+ public int deleteBusinessById(Long id);
+
+ /**
+ * 批量删除商机
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteBusinessByIds(Long[] ids);
+
+ /**
+ * 根据商机编号查询
+ * @param businessNumber
+ * @return
+ */
+ public Business selectByBusinessNumber(String businessNumber);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ContactPersonMapper.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ContactPersonMapper.java
new file mode 100644
index 0000000..6e65285
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ContactPersonMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.crm.system.mapper;
+
+import com.ruoyi.crm.system.domain.ContactPerson;
+
+import java.util.List;
+
+/**
+ * 联系人Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public interface ContactPersonMapper
+{
+ /**
+ * 查询联系人
+ *
+ * @param id 联系人主键
+ * @return 联系人
+ */
+ public ContactPerson selectContactPersonById(Long id);
+
+ /**
+ * 查询联系人列表
+ *
+ * @param contactPerson 联系人
+ * @return 联系人集合
+ */
+ public List selectContactPersonList(ContactPerson contactPerson);
+
+ /**
+ * 新增联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ public int insertContactPerson(ContactPerson contactPerson);
+
+ /**
+ * 修改联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ public int updateContactPerson(ContactPerson contactPerson);
+
+ /**
+ * 删除联系人
+ *
+ * @param id 联系人主键
+ * @return 结果
+ */
+ public int deleteContactPersonById(Long id);
+
+ /**
+ * 批量删除联系人
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteContactPersonByIds(Long[] ids);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpPlanMapper.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpPlanMapper.java
new file mode 100644
index 0000000..63c2123
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpPlanMapper.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.mapper;
+
+
+import com.ruoyi.crm.system.domain.FollowUpPlan;
+
+import java.util.List;
+
+/**
+ * 跟进计划Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface FollowUpPlanMapper
+{
+ /**
+ * 查询跟进计划
+ *
+ * @param id 跟进计划主键
+ * @return 跟进计划
+ */
+ public FollowUpPlan selectFollowUpPlanById(Long id);
+
+ /**
+ * 查询跟进计划列表
+ *
+ * @param followUpPlan 跟进计划
+ * @return 跟进计划集合
+ */
+ public List selectFollowUpPlanList(FollowUpPlan followUpPlan);
+
+ /**
+ * 新增跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ public int insertFollowUpPlan(FollowUpPlan followUpPlan);
+
+ /**
+ * 修改跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ public int updateFollowUpPlan(FollowUpPlan followUpPlan);
+
+ /**
+ * 删除跟进计划
+ *
+ * @param id 跟进计划主键
+ * @return 结果
+ */
+ public int deleteFollowUpPlanById(Long id);
+
+ /**
+ * 批量删除跟进计划
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteFollowUpPlanByIds(Long[] ids);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpRecordMapper.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpRecordMapper.java
new file mode 100644
index 0000000..0a54c02
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/FollowUpRecordMapper.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.mapper;
+
+
+import com.ruoyi.crm.system.domain.FollowUpRecord;
+
+import java.util.List;
+
+/**
+ * 跟进记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface FollowUpRecordMapper
+{
+ /**
+ * 查询跟进记录
+ *
+ * @param id 跟进记录主键
+ * @return 跟进记录
+ */
+ public FollowUpRecord selectFollowUpRecordById(Long id);
+
+ /**
+ * 查询跟进记录列表
+ *
+ * @param followUpRecord 跟进记录
+ * @return 跟进记录集合
+ */
+ public List selectFollowUpRecordList(FollowUpRecord followUpRecord);
+
+ /**
+ * 新增跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ public int insertFollowUpRecord(FollowUpRecord followUpRecord);
+
+ /**
+ * 修改跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ public int updateFollowUpRecord(FollowUpRecord followUpRecord);
+
+ /**
+ * 删除跟进记录
+ *
+ * @param id 跟进记录主键
+ * @return 结果
+ */
+ public int deleteFollowUpRecordById(Long id);
+
+ /**
+ * 批量删除跟进记录
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteFollowUpRecordByIds(Long[] ids);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ServiceTicketMapper.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ServiceTicketMapper.java
new file mode 100644
index 0000000..637de16
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/mapper/ServiceTicketMapper.java
@@ -0,0 +1,62 @@
+package com.ruoyi.crm.system.mapper;
+
+import com.ruoyi.crm.system.domain.ServiceTicket;
+
+import java.util.List;
+
+/**
+ * 服务工单Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface ServiceTicketMapper
+{
+ /**
+ * 查询服务工单
+ *
+ * @param id 服务工单主键
+ * @return 服务工单
+ */
+ public ServiceTicket selectServiceTicketById(Long id);
+
+ /**
+ * 查询服务工单列表
+ *
+ * @param serviceTicket 服务工单
+ * @return 服务工单集合
+ */
+ public List selectServiceTicketList(ServiceTicket serviceTicket);
+
+ /**
+ * 新增服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ public int insertServiceTicket(ServiceTicket serviceTicket);
+
+ /**
+ * 修改服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ public int updateServiceTicket(ServiceTicket serviceTicket);
+
+ /**
+ * 删除服务工单
+ *
+ * @param id 服务工单主键
+ * @return 结果
+ */
+ public int deleteServiceTicketById(Long id);
+
+ /**
+ * 批量删除服务工单
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteServiceTicketByIds(Long[] ids);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IBusinessService.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IBusinessService.java
new file mode 100644
index 0000000..4ee9c31
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IBusinessService.java
@@ -0,0 +1,74 @@
+package com.ruoyi.crm.system.service;
+
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.crm.system.domain.Business;
+
+import java.util.List;
+
+/**
+ * 商机Service接口
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public interface IBusinessService
+{
+ /**
+ * 查询商机
+ *
+ * @param id 商机主键
+ * @return 商机
+ */
+ public Business selectBusinessById(Long id);
+
+ /**
+ * 查询商机列表
+ *
+ * @param business 商机
+ * @return 商机集合
+ */
+ public List selectBusinessList(Business business);
+
+ /**
+ * 新增商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ public int insertBusiness(Business business);
+
+ /**
+ * 修改商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ public int updateBusiness(Business business);
+
+ /**
+ * 批量删除商机
+ *
+ * @param ids 需要删除的商机主键集合
+ * @return 结果
+ */
+ public int deleteBusinessByIds(Long[] ids);
+
+ /**
+ * 删除商机信息
+ *
+ * @param id 商机主键
+ * @return 结果
+ */
+ public int deleteBusinessById(Long id);
+
+ /**
+ * 导入用户数据
+ *
+ * @param userList 用户数据列表
+ * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
+ * @param operName 操作用户
+ * @return 结果
+ */
+ public String importBusines(List userList, Boolean isUpdateSupport, String operName);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IContactPersonService.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IContactPersonService.java
new file mode 100644
index 0000000..8b7cb37
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IContactPersonService.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.service;
+
+
+import com.ruoyi.crm.system.domain.ContactPerson;
+
+import java.util.List;
+
+/**
+ * 联系人Service接口
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+public interface IContactPersonService
+{
+ /**
+ * 查询联系人
+ *
+ * @param id 联系人主键
+ * @return 联系人
+ */
+ public ContactPerson selectContactPersonById(Long id);
+
+ /**
+ * 查询联系人列表
+ *
+ * @param contactPerson 联系人
+ * @return 联系人集合
+ */
+ public List selectContactPersonList(ContactPerson contactPerson);
+
+ /**
+ * 新增联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ public int insertContactPerson(ContactPerson contactPerson);
+
+ /**
+ * 修改联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ public int updateContactPerson(ContactPerson contactPerson);
+
+ /**
+ * 批量删除联系人
+ *
+ * @param ids 需要删除的联系人主键集合
+ * @return 结果
+ */
+ public int deleteContactPersonByIds(Long[] ids);
+
+ /**
+ * 删除联系人信息
+ *
+ * @param id 联系人主键
+ * @return 结果
+ */
+ public int deleteContactPersonById(Long id);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpPlanService.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpPlanService.java
new file mode 100644
index 0000000..7a79f7b
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpPlanService.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.service;
+
+
+import com.ruoyi.crm.system.domain.FollowUpPlan;
+
+import java.util.List;
+
+/**
+ * 跟进计划Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface IFollowUpPlanService
+{
+ /**
+ * 查询跟进计划
+ *
+ * @param id 跟进计划主键
+ * @return 跟进计划
+ */
+ public FollowUpPlan selectFollowUpPlanById(Long id);
+
+ /**
+ * 查询跟进计划列表
+ *
+ * @param followUpPlan 跟进计划
+ * @return 跟进计划集合
+ */
+ public List selectFollowUpPlanList(FollowUpPlan followUpPlan);
+
+ /**
+ * 新增跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ public int insertFollowUpPlan(FollowUpPlan followUpPlan);
+
+ /**
+ * 修改跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ public int updateFollowUpPlan(FollowUpPlan followUpPlan);
+
+ /**
+ * 批量删除跟进计划
+ *
+ * @param ids 需要删除的跟进计划主键集合
+ * @return 结果
+ */
+ public int deleteFollowUpPlanByIds(Long[] ids);
+
+ /**
+ * 删除跟进计划信息
+ *
+ * @param id 跟进计划主键
+ * @return 结果
+ */
+ public int deleteFollowUpPlanById(Long id);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpRecordService.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpRecordService.java
new file mode 100644
index 0000000..21ea55d
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IFollowUpRecordService.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.service;
+
+
+import com.ruoyi.crm.system.domain.FollowUpRecord;
+
+import java.util.List;
+
+/**
+ * 跟进记录Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface IFollowUpRecordService
+{
+ /**
+ * 查询跟进记录
+ *
+ * @param id 跟进记录主键
+ * @return 跟进记录
+ */
+ public FollowUpRecord selectFollowUpRecordById(Long id);
+
+ /**
+ * 查询跟进记录列表
+ *
+ * @param followUpRecord 跟进记录
+ * @return 跟进记录集合
+ */
+ public List selectFollowUpRecordList(FollowUpRecord followUpRecord);
+
+ /**
+ * 新增跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ public int insertFollowUpRecord(FollowUpRecord followUpRecord);
+
+ /**
+ * 修改跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ public int updateFollowUpRecord(FollowUpRecord followUpRecord);
+
+ /**
+ * 批量删除跟进记录
+ *
+ * @param ids 需要删除的跟进记录主键集合
+ * @return 结果
+ */
+ public int deleteFollowUpRecordByIds(Long[] ids);
+
+ /**
+ * 删除跟进记录信息
+ *
+ * @param id 跟进记录主键
+ * @return 结果
+ */
+ public int deleteFollowUpRecordById(Long id);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IServiceTicketService.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IServiceTicketService.java
new file mode 100644
index 0000000..afcdc85
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/IServiceTicketService.java
@@ -0,0 +1,63 @@
+package com.ruoyi.crm.system.service;
+
+
+import com.ruoyi.crm.system.domain.ServiceTicket;
+
+import java.util.List;
+
+/**
+ * 服务工单Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+public interface IServiceTicketService
+{
+ /**
+ * 查询服务工单
+ *
+ * @param id 服务工单主键
+ * @return 服务工单
+ */
+ public ServiceTicket selectServiceTicketById(Long id);
+
+ /**
+ * 查询服务工单列表
+ *
+ * @param serviceTicket 服务工单
+ * @return 服务工单集合
+ */
+ public List selectServiceTicketList(ServiceTicket serviceTicket);
+
+ /**
+ * 新增服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ public int insertServiceTicket(ServiceTicket serviceTicket);
+
+ /**
+ * 修改服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ public int updateServiceTicket(ServiceTicket serviceTicket);
+
+ /**
+ * 批量删除服务工单
+ *
+ * @param ids 需要删除的服务工单主键集合
+ * @return 结果
+ */
+ public int deleteServiceTicketByIds(Long[] ids);
+
+ /**
+ * 删除服务工单信息
+ *
+ * @param id 服务工单主键
+ * @return 结果
+ */
+ public int deleteServiceTicketById(Long id);
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/BusinessServiceImpl.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/BusinessServiceImpl.java
new file mode 100644
index 0000000..06096bd
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/BusinessServiceImpl.java
@@ -0,0 +1,176 @@
+package com.ruoyi.crm.system.service.impl;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.BeanValidators;
+import com.ruoyi.crm.system.domain.Business;
+import com.ruoyi.crm.system.mapper.BusinessMapper;
+import com.ruoyi.crm.system.service.IBusinessService;
+import com.ruoyi.system.service.impl.SysUserServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.validation.Validator;
+import java.util.List;
+
+/**
+ * 商机Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+@Service
+public class BusinessServiceImpl implements IBusinessService
+{
+ private static final Logger log = LoggerFactory.getLogger(BusinessServiceImpl.class);
+
+ @Autowired
+ private BusinessMapper businessMapper;
+
+ @Autowired
+ protected Validator validator;
+
+ /**
+ * 查询商机
+ *
+ * @param id 商机主键
+ * @return 商机
+ */
+ @Override
+ public Business selectBusinessById(Long id)
+ {
+ return businessMapper.selectBusinessById(id);
+ }
+
+ /**
+ * 查询商机列表
+ *
+ * @param business 商机
+ * @return 商机
+ */
+ @Override
+ public List selectBusinessList(Business business)
+ {
+ return businessMapper.selectBusinessList(business);
+ }
+
+ /**
+ * 新增商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ @Override
+ public int insertBusiness(Business business)
+ {
+ business.setCreateTime(DateUtils.getNowDate());
+ return businessMapper.insertBusiness(business);
+ }
+
+ /**
+ * 修改商机
+ *
+ * @param business 商机
+ * @return 结果
+ */
+ @Override
+ public int updateBusiness(Business business)
+ {
+ business.setUpdateTime(DateUtils.getNowDate());
+ return businessMapper.updateBusiness(business);
+ }
+
+ /**
+ * 批量删除商机
+ *
+ * @param ids 需要删除的商机主键
+ * @return 结果
+ */
+ @Override
+ public int deleteBusinessByIds(Long[] ids)
+ {
+ return businessMapper.deleteBusinessByIds(ids);
+ }
+
+ /**
+ * 删除商机信息
+ *
+ * @param id 商机主键
+ * @return 结果
+ */
+ @Override
+ public int deleteBusinessById(Long id)
+ {
+ return businessMapper.deleteBusinessById(id);
+ }
+
+ /**
+ * 导入商机数据
+ * @param userList 用户数据列表
+ * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
+ * @param operName 操作用户
+ * @return
+ */
+ @Override
+ public String importBusines(List userList, Boolean isUpdateSupport, String operName) {
+ if (StringUtils.isNull(userList) || userList.size() == 0)
+ {
+ throw new ServiceException("导入用户数据不能为空!");
+ }
+ int successNum = 0;
+ int failureNum = 0;
+ StringBuilder successMsg = new StringBuilder();
+ StringBuilder failureMsg = new StringBuilder();
+ for (Business business : userList) {
+ try
+ {
+ // 验证是否存在这个商机
+ Business b = businessMapper.selectByBusinessNumber(business.getBusinessNumber()+"");
+ System.out.println("----------------------------"+b);
+ if (StringUtils.isNull(b))
+ {
+ BeanValidators.validateWithException(validator, business);
+ business.setCreateTime(DateUtils.getNowDate());
+ businessMapper.insertBusiness(business);
+ successNum++;
+ successMsg.append("
" + successNum + "、商机编号 " + business.getBusinessNumber() + " 导入成功");
+ }
+ else if (isUpdateSupport)
+ {
+ BeanValidators.validateWithException(validator, business);
+ business.setUpdateBy(operName);
+ this.updateBusiness(business);
+ successNum++;
+ successMsg.append("
" + successNum + "、商机编号 " + business.getBusinessNumber() + " 更新成功");
+ }
+ else
+ {
+ failureNum++;
+ failureMsg.append("
" + failureNum + "、商机编号 " + business.getBusinessNumber() + " 已存在");
+ }
+ }
+ catch (Exception e)
+ {
+ failureNum++;
+ String msg = "
" + failureNum + "、商机编号 " + business.getBusinessNumber() + " 导入失败:";
+ failureMsg.append(msg + e.getMessage());
+ log.error(msg, e);
+ }
+ }
+ if (failureNum > 0)
+ {
+ failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+ throw new ServiceException(failureMsg.toString());
+ }
+ else
+ {
+ successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+ }
+ return successMsg.toString();
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ContactPersonServiceImpl.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ContactPersonServiceImpl.java
new file mode 100644
index 0000000..817fe41
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ContactPersonServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.crm.system.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.crm.system.domain.ContactPerson;
+import com.ruoyi.crm.system.mapper.ContactPersonMapper;
+import com.ruoyi.crm.system.service.IContactPersonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 联系人Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-02-29
+ */
+@Service
+public class ContactPersonServiceImpl implements IContactPersonService
+{
+ @Autowired
+ private ContactPersonMapper contactPersonMapper;
+
+ /**
+ * 查询联系人
+ *
+ * @param id 联系人主键
+ * @return 联系人
+ */
+ @Override
+ public ContactPerson selectContactPersonById(Long id)
+ {
+ return contactPersonMapper.selectContactPersonById(id);
+ }
+
+ /**
+ * 查询联系人列表
+ *
+ * @param contactPerson 联系人
+ * @return 联系人
+ */
+ @Override
+ public List selectContactPersonList(ContactPerson contactPerson)
+ {
+ return contactPersonMapper.selectContactPersonList(contactPerson);
+ }
+
+ /**
+ * 新增联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ @Override
+ public int insertContactPerson(ContactPerson contactPerson)
+ {
+ contactPerson.setCreateTime(DateUtils.getNowDate());
+ return contactPersonMapper.insertContactPerson(contactPerson);
+ }
+
+ /**
+ * 修改联系人
+ *
+ * @param contactPerson 联系人
+ * @return 结果
+ */
+ @Override
+ public int updateContactPerson(ContactPerson contactPerson)
+ {
+ contactPerson.setUpdateTime(DateUtils.getNowDate());
+ return contactPersonMapper.updateContactPerson(contactPerson);
+ }
+
+ /**
+ * 批量删除联系人
+ *
+ * @param ids 需要删除的联系人主键
+ * @return 结果
+ */
+ @Override
+ public int deleteContactPersonByIds(Long[] ids)
+ {
+ return contactPersonMapper.deleteContactPersonByIds(ids);
+ }
+
+ /**
+ * 删除联系人信息
+ *
+ * @param id 联系人主键
+ * @return 结果
+ */
+ @Override
+ public int deleteContactPersonById(Long id)
+ {
+ return contactPersonMapper.deleteContactPersonById(id);
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpPlanServiceImpl.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpPlanServiceImpl.java
new file mode 100644
index 0000000..f0ad048
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpPlanServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.crm.system.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.crm.system.domain.FollowUpPlan;
+import com.ruoyi.crm.system.mapper.FollowUpPlanMapper;
+import com.ruoyi.crm.system.service.IFollowUpPlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 跟进计划Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@Service
+public class FollowUpPlanServiceImpl implements IFollowUpPlanService
+{
+ @Autowired
+ private FollowUpPlanMapper followUpPlanMapper;
+
+ /**
+ * 查询跟进计划
+ *
+ * @param id 跟进计划主键
+ * @return 跟进计划
+ */
+ @Override
+ public FollowUpPlan selectFollowUpPlanById(Long id)
+ {
+ return followUpPlanMapper.selectFollowUpPlanById(id);
+ }
+
+ /**
+ * 查询跟进计划列表
+ *
+ * @param followUpPlan 跟进计划
+ * @return 跟进计划
+ */
+ @Override
+ public List selectFollowUpPlanList(FollowUpPlan followUpPlan)
+ {
+ return followUpPlanMapper.selectFollowUpPlanList(followUpPlan);
+ }
+
+ /**
+ * 新增跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ @Override
+ public int insertFollowUpPlan(FollowUpPlan followUpPlan)
+ {
+ followUpPlan.setCreateTime(DateUtils.getNowDate());
+ return followUpPlanMapper.insertFollowUpPlan(followUpPlan);
+ }
+
+ /**
+ * 修改跟进计划
+ *
+ * @param followUpPlan 跟进计划
+ * @return 结果
+ */
+ @Override
+ public int updateFollowUpPlan(FollowUpPlan followUpPlan)
+ {
+ followUpPlan.setUpdateTime(DateUtils.getNowDate());
+ return followUpPlanMapper.updateFollowUpPlan(followUpPlan);
+ }
+
+ /**
+ * 批量删除跟进计划
+ *
+ * @param ids 需要删除的跟进计划主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFollowUpPlanByIds(Long[] ids)
+ {
+ return followUpPlanMapper.deleteFollowUpPlanByIds(ids);
+ }
+
+ /**
+ * 删除跟进计划信息
+ *
+ * @param id 跟进计划主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFollowUpPlanById(Long id)
+ {
+ return followUpPlanMapper.deleteFollowUpPlanById(id);
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpRecordServiceImpl.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpRecordServiceImpl.java
new file mode 100644
index 0000000..79382fc
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/FollowUpRecordServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.crm.system.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.crm.system.domain.FollowUpRecord;
+import com.ruoyi.crm.system.mapper.FollowUpRecordMapper;
+import com.ruoyi.crm.system.service.IFollowUpRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 跟进记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@Service
+public class FollowUpRecordServiceImpl implements IFollowUpRecordService
+{
+ @Autowired
+ private FollowUpRecordMapper followUpRecordMapper;
+
+ /**
+ * 查询跟进记录
+ *
+ * @param id 跟进记录主键
+ * @return 跟进记录
+ */
+ @Override
+ public FollowUpRecord selectFollowUpRecordById(Long id)
+ {
+ return followUpRecordMapper.selectFollowUpRecordById(id);
+ }
+
+ /**
+ * 查询跟进记录列表
+ *
+ * @param followUpRecord 跟进记录
+ * @return 跟进记录
+ */
+ @Override
+ public List selectFollowUpRecordList(FollowUpRecord followUpRecord)
+ {
+ return followUpRecordMapper.selectFollowUpRecordList(followUpRecord);
+ }
+
+ /**
+ * 新增跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ @Override
+ public int insertFollowUpRecord(FollowUpRecord followUpRecord)
+ {
+ followUpRecord.setCreateTime(DateUtils.getNowDate());
+ return followUpRecordMapper.insertFollowUpRecord(followUpRecord);
+ }
+
+ /**
+ * 修改跟进记录
+ *
+ * @param followUpRecord 跟进记录
+ * @return 结果
+ */
+ @Override
+ public int updateFollowUpRecord(FollowUpRecord followUpRecord)
+ {
+ followUpRecord.setUpdateTime(DateUtils.getNowDate());
+ return followUpRecordMapper.updateFollowUpRecord(followUpRecord);
+ }
+
+ /**
+ * 批量删除跟进记录
+ *
+ * @param ids 需要删除的跟进记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFollowUpRecordByIds(Long[] ids)
+ {
+ return followUpRecordMapper.deleteFollowUpRecordByIds(ids);
+ }
+
+ /**
+ * 删除跟进记录信息
+ *
+ * @param id 跟进记录主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFollowUpRecordById(Long id)
+ {
+ return followUpRecordMapper.deleteFollowUpRecordById(id);
+ }
+}
diff --git a/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ServiceTicketServiceImpl.java b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ServiceTicketServiceImpl.java
new file mode 100644
index 0000000..5f54b65
--- /dev/null
+++ b/ruoyi-crm/src/main/java/com/ruoyi/crm/system/service/impl/ServiceTicketServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.crm.system.service.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.crm.system.domain.ServiceTicket;
+import com.ruoyi.crm.system.mapper.ServiceTicketMapper;
+import com.ruoyi.crm.system.service.IServiceTicketService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 服务工单Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-01
+ */
+@Service
+public class ServiceTicketServiceImpl implements IServiceTicketService
+{
+ @Autowired
+ private ServiceTicketMapper serviceTicketMapper;
+
+ /**
+ * 查询服务工单
+ *
+ * @param id 服务工单主键
+ * @return 服务工单
+ */
+ @Override
+ public ServiceTicket selectServiceTicketById(Long id)
+ {
+ return serviceTicketMapper.selectServiceTicketById(id);
+ }
+
+ /**
+ * 查询服务工单列表
+ *
+ * @param serviceTicket 服务工单
+ * @return 服务工单
+ */
+ @Override
+ public List selectServiceTicketList(ServiceTicket serviceTicket)
+ {
+ return serviceTicketMapper.selectServiceTicketList(serviceTicket);
+ }
+
+ /**
+ * 新增服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ @Override
+ public int insertServiceTicket(ServiceTicket serviceTicket)
+ {
+ serviceTicket.setCreateTime(DateUtils.getNowDate());
+ return serviceTicketMapper.insertServiceTicket(serviceTicket);
+ }
+
+ /**
+ * 修改服务工单
+ *
+ * @param serviceTicket 服务工单
+ * @return 结果
+ */
+ @Override
+ public int updateServiceTicket(ServiceTicket serviceTicket)
+ {
+ serviceTicket.setUpdateTime(DateUtils.getNowDate());
+ return serviceTicketMapper.updateServiceTicket(serviceTicket);
+ }
+
+ /**
+ * 批量删除服务工单
+ *
+ * @param ids 需要删除的服务工单主键
+ * @return 结果
+ */
+ @Override
+ public int deleteServiceTicketByIds(Long[] ids)
+ {
+ return serviceTicketMapper.deleteServiceTicketByIds(ids);
+ }
+
+ /**
+ * 删除服务工单信息
+ *
+ * @param id 服务工单主键
+ * @return 结果
+ */
+ @Override
+ public int deleteServiceTicketById(Long id)
+ {
+ return serviceTicketMapper.deleteServiceTicketById(id);
+ }
+}
diff --git a/ruoyi-crm/src/main/resources/mapper/crm/CrmCustomerMapper.xml b/ruoyi-crm/src/main/resources/mapper/crm/CrmCustomerMapper.xml
index 9af146d..ac607ed 100644
--- a/ruoyi-crm/src/main/resources/mapper/crm/CrmCustomerMapper.xml
+++ b/ruoyi-crm/src/main/resources/mapper/crm/CrmCustomerMapper.xml
@@ -207,7 +207,7 @@
select
c.id, c.owner, c.name, m.content, m.create_time
from crm_customer c
- inner join crm_comment m on m.customer_id=c.id
+ inner join follow_up_record m on m.customer_id=c.id
where c.owner= #{owner}
order by m.create_time desc limit 10
diff --git a/ruoyi-crm/src/main/resources/system/BusinessMapper.xml b/ruoyi-crm/src/main/resources/system/BusinessMapper.xml
new file mode 100644
index 0000000..e84d029
--- /dev/null
+++ b/ruoyi-crm/src/main/resources/system/BusinessMapper.xml
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, title, customer_id, customer_linkman, customer_name, customer_number, business_name, business_number, sales_stage, probability_of_wining, stage_type, person_in_charge, belonging_department, business_detail, forecast_business_price, forecast_success_time, collaborator, last_follow_up_time, phase_change_time, lose_order_cause, submitter, submit_time, create_by, create_time, update_by, update_time, remark, is_delete from business
+
+
+
+
+
+
+
+ insert into business
+
+ title,
+ customer_id,
+ customer_linkman,
+ customer_name,
+ customer_number,
+ business_name,
+ business_number,
+ sales_stage,
+ probability_of_wining,
+ stage_type,
+ person_in_charge,
+ belonging_department,
+ business_detail,
+ forecast_business_price,
+ forecast_success_time,
+ collaborator,
+ last_follow_up_time,
+ phase_change_time,
+ lose_order_cause,
+ submitter,
+ submit_time,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+ is_delete,
+
+
+ #{title},
+ #{customerId},
+ #{customerLinkman},
+ #{customerName},
+ #{customerNumber},
+ #{businessName},
+ #{businessNumber},
+ #{salesStage},
+ #{probabilityOfWining},
+ #{stageType},
+ #{personInCharge},
+ #{belongingDepartment},
+ #{businessDetail},
+ #{forecastBusinessPrice},
+ #{forecastSuccessTime},
+ #{collaborator},
+ #{lastFollowUpTime},
+ #{phaseChangeTime},
+ #{loseOrderCause},
+ #{submitter},
+ #{submitTime},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+ #{isDelete},
+
+
+
+
+ update business
+
+ title = #{title},
+ customer_id = #{customerId},
+ customer_linkman = #{customerLinkman},
+ customer_name = #{customerName},
+ customer_number = #{customerNumber},
+ business_name = #{businessName},
+ business_number = #{businessNumber},
+ sales_stage = #{salesStage},
+ probability_of_wining = #{probabilityOfWining},
+ stage_type = #{stageType},
+ person_in_charge = #{personInCharge},
+ belonging_department = #{belongingDepartment},
+ business_detail = #{businessDetail},
+ forecast_business_price = #{forecastBusinessPrice},
+ forecast_success_time = #{forecastSuccessTime},
+ collaborator = #{collaborator},
+ last_follow_up_time = #{lastFollowUpTime},
+ phase_change_time = #{phaseChangeTime},
+ lose_order_cause = #{loseOrderCause},
+ submitter = #{submitter},
+ submit_time = #{submitTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+ is_delete = #{isDelete},
+
+ where id = #{id}
+
+
+
+ delete from business where id = #{id}
+
+
+
+ delete from business where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-crm/src/main/resources/system/ContactPersonMapper.xml b/ruoyi-crm/src/main/resources/system/ContactPersonMapper.xml
new file mode 100644
index 0000000..9e10f49
--- /dev/null
+++ b/ruoyi-crm/src/main/resources/system/ContactPersonMapper.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, title, name, phone_number, customer_id, customer_number, dep, job, wx_number, mail_number, is_key, contact_person_detail, person_in_charge, belonging_department, collaborator, submitter, submit_time, create_by, create_time, update_by, update_time, remark, is_delete from contact_person
+
+
+
+
+
+
+
+ insert into contact_person
+
+ title,
+ name,
+ phone_number,
+ customer_id,
+ customer_number,
+ dep,
+ job,
+ wx_number,
+ mail_number,
+ is_key,
+ contact_person_detail,
+ person_in_charge,
+ belonging_department,
+ collaborator,
+ submitter,
+ submit_time,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+ is_delete,
+
+
+ #{title},
+ #{name},
+ #{phoneNumber},
+ #{customerId},
+ #{customerNumber},
+ #{dep},
+ #{job},
+ #{wxNumber},
+ #{mailNumber},
+ #{isKey},
+ #{contactPersonDetail},
+ #{personInCharge},
+ #{belongingDepartment},
+ #{collaborator},
+ #{submitter},
+ #{submitTime},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+ #{isDelete},
+
+
+
+
+ update contact_person
+
+ title = #{title},
+ name = #{name},
+ phone_number = #{phoneNumber},
+ customer_id = #{customerId},
+ customer_number = #{customerNumber},
+ dep = #{dep},
+ job = #{job},
+ wx_number = #{wxNumber},
+ mail_number = #{mailNumber},
+ is_key = #{isKey},
+ contact_person_detail = #{contactPersonDetail},
+ person_in_charge = #{personInCharge},
+ belonging_department = #{belongingDepartment},
+ collaborator = #{collaborator},
+ submitter = #{submitter},
+ submit_time = #{submitTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+ is_delete = #{isDelete},
+
+ where id = #{id}
+
+
+
+ delete from contact_person where id = #{id}
+
+
+
+ delete from contact_person where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-crm/src/main/resources/system/FollowUpPlanMapper.xml b/ruoyi-crm/src/main/resources/system/FollowUpPlanMapper.xml
new file mode 100644
index 0000000..5ac79c2
--- /dev/null
+++ b/ruoyi-crm/src/main/resources/system/FollowUpPlanMapper.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, title, plan_content, customer, plan_time, plan_executor, belonging_department, plan_status, submitter, submit_time, create_by, create_time, update_by, update_time, remark, is_delete from follow_up_plan
+
+
+
+
+
+
+
+ insert into follow_up_plan
+
+ title,
+ plan_content,
+ customer,
+ plan_time,
+ plan_executor,
+ belonging_department,
+ plan_status,
+ submitter,
+ submit_time,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+ is_delete,
+
+
+ #{title},
+ #{planContent},
+ #{customer},
+ #{planTime},
+ #{planExecutor},
+ #{belongingDepartment},
+ #{planStatus},
+ #{submitter},
+ #{submitTime},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+ #{isDelete},
+
+
+
+
+ update follow_up_plan
+
+ title = #{title},
+ plan_content = #{planContent},
+ customer = #{customer},
+ plan_time = #{planTime},
+ plan_executor = #{planExecutor},
+ belonging_department = #{belongingDepartment},
+ plan_status = #{planStatus},
+ submitter = #{submitter},
+ submit_time = #{submitTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+ is_delete = #{isDelete},
+
+ where id = #{id}
+
+
+
+ delete from follow_up_plan where id = #{id}
+
+
+
+ delete from follow_up_plan where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-crm/src/main/resources/system/FollowUpRecordMapper.xml b/ruoyi-crm/src/main/resources/system/FollowUpRecordMapper.xml
new file mode 100644
index 0000000..f4bf226
--- /dev/null
+++ b/ruoyi-crm/src/main/resources/system/FollowUpRecordMapper.xml
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, title, follow_up_record, follow_up_subject, customer_number, follow_up_business_opportunities, opportunity_number, contact_people, follow_up_type, content, follow_up_time, follow_up_people, belonging_department, submitter, submit_time, create_by, create_time, update_by, update_time, remark, customer_id from follow_up_record
+
+
+
+
+
+
+
+ insert into follow_up_record
+
+ id,
+ title,
+ follow_up_record,
+ follow_up_subject,
+ customer_number,
+ follow_up_business_opportunities,
+ opportunity_number,
+ contact_people,
+ follow_up_type,
+ content,
+ follow_up_time,
+ follow_up_people,
+ belonging_department,
+ submitter,
+ submit_time,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+ customer_id,
+
+
+ #{id},
+ #{title},
+ #{followUpRecord},
+ #{followUpSubject},
+ #{customerNumber},
+ #{followUpBusinessOpportunities},
+ #{opportunityNumber},
+ #{contactPeople},
+ #{followUpType},
+ #{content},
+ #{followUpTime},
+ #{followUpPeople},
+ #{belongingDepartment},
+ #{submitter},
+ #{submitTime},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+ #{customerId},
+
+
+
+
+ update follow_up_record
+
+ title = #{title},
+ follow_up_record = #{followUpRecord},
+ follow_up_subject = #{followUpSubject},
+ customer_number = #{customerNumber},
+ follow_up_business_opportunities = #{followUpBusinessOpportunities},
+ opportunity_number = #{opportunityNumber},
+ contact_people = #{contactPeople},
+ follow_up_type = #{followUpType},
+ content = #{content},
+ follow_up_time = #{followUpTime},
+ follow_up_people = #{followUpPeople},
+ belonging_department = #{belongingDepartment},
+ submitter = #{submitter},
+ submit_time = #{submitTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+ customer_id = #{customerId},
+
+ where id = #{id}
+
+
+
+ delete from follow_up_record where id = #{id}
+
+
+
+ delete from follow_up_record where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-crm/src/main/resources/system/ServiceTicketMapper.xml b/ruoyi-crm/src/main/resources/system/ServiceTicketMapper.xml
new file mode 100644
index 0000000..06f6ebb
--- /dev/null
+++ b/ruoyi-crm/src/main/resources/system/ServiceTicketMapper.xml
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, title, customer_name, customer_number, contract_title, contract_order_number, customer_contact, phone_number, service_type, service_order_number, how_many_service_order, service_star_time, service_end_time, demand_service_day, after_sales_technician, service_address, service_address_city, service_address_area, service_address_detail, sign_in, sign_in_time, sign_out, sign_out_time, is_solve_the_problem, scene_photo, customer_satisfaction, satisfaction_value, customer_comments_and_demands, submitter, submit_time, create_by, create_time, update_by, update_time, process_state, current_node, current_person_in_charge from service_ticket
+
+
+
+
+
+
+
+ insert into service_ticket
+
+ title,
+ customer_name,
+ customer_number,
+ contract_title,
+ contract_order_number,
+ customer_contact,
+ phone_number,
+ service_type,
+ service_order_number,
+ how_many_service_order,
+ service_star_time,
+ service_end_time,
+ demand_service_day,
+ after_sales_technician,
+ service_address,
+ service_address_city,
+ service_address_area,
+ service_address_detail,
+ sign_in,
+ sign_in_time,
+ sign_out,
+ sign_out_time,
+ is_solve_the_problem,
+ scene_photo,
+ customer_satisfaction,
+ satisfaction_value,
+ customer_comments_and_demands,
+ submitter,
+ submit_time,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ process_state,
+ current_node,
+ current_person_in_charge,
+
+
+ #{title},
+ #{customerName},
+ #{customerNumber},
+ #{contractTitle},
+ #{contractOrderNumber},
+ #{customerContact},
+ #{phoneNumber},
+ #{serviceType},
+ #{serviceOrderNumber},
+ #{howManyServiceOrder},
+ #{serviceStarTime},
+ #{serviceEndTime},
+ #{demandServiceDay},
+ #{afterSalesTechnician},
+ #{serviceAddress},
+ #{serviceAddressCity},
+ #{serviceAddressArea},
+ #{serviceAddressDetail},
+ #{signIn},
+ #{signInTime},
+ #{signOut},
+ #{signOutTime},
+ #{isSolveTheProblem},
+ #{scenePhoto},
+ #{customerSatisfaction},
+ #{satisfactionValue},
+ #{customerCommentsAndDemands},
+ #{submitter},
+ #{submitTime},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{processState},
+ #{currentNode},
+ #{currentPersonInCharge},
+
+
+
+
+ update service_ticket
+
+ title = #{title},
+ customer_name = #{customerName},
+ customer_number = #{customerNumber},
+ contract_title = #{contractTitle},
+ contract_order_number = #{contractOrderNumber},
+ customer_contact = #{customerContact},
+ phone_number = #{phoneNumber},
+ service_type = #{serviceType},
+ service_order_number = #{serviceOrderNumber},
+ how_many_service_order = #{howManyServiceOrder},
+ service_star_time = #{serviceStarTime},
+ service_end_time = #{serviceEndTime},
+ demand_service_day = #{demandServiceDay},
+ after_sales_technician = #{afterSalesTechnician},
+ service_address = #{serviceAddress},
+ service_address_city = #{serviceAddressCity},
+ service_address_area = #{serviceAddressArea},
+ service_address_detail = #{serviceAddressDetail},
+ sign_in = #{signIn},
+ sign_in_time = #{signInTime},
+ sign_out = #{signOut},
+ sign_out_time = #{signOutTime},
+ is_solve_the_problem = #{isSolveTheProblem},
+ scene_photo = #{scenePhoto},
+ customer_satisfaction = #{customerSatisfaction},
+ satisfaction_value = #{satisfactionValue},
+ customer_comments_and_demands = #{customerCommentsAndDemands},
+ submitter = #{submitter},
+ submit_time = #{submitTime},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ process_state = #{processState},
+ current_node = #{currentNode},
+ current_person_in_charge = #{currentPersonInCharge},
+
+ where id = #{id}
+
+
+
+ delete from service_ticket where id = #{id}
+
+
+
+ delete from service_ticket where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/crm/business.js b/ruoyi-ui/src/api/crm/business.js
new file mode 100644
index 0000000..bafd59e
--- /dev/null
+++ b/ruoyi-ui/src/api/crm/business.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询商机列表
+export function listBusiness(query) {
+ return request({
+ url: '/system/business/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询商机详细
+export function getBusiness(id) {
+ return request({
+ url: '/system/business/' + id,
+ method: 'get'
+ })
+}
+
+// 新增商机
+export function addBusiness(data) {
+ return request({
+ url: '/system/business',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改商机
+export function updateBusiness(data) {
+ return request({
+ url: '/system/business',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除商机
+export function delBusiness(id) {
+ return request({
+ url: '/system/business/' + id,
+ method: 'delete'
+ })
+}
+
+// 自动添加一条跟进记录
+export function addRecords(data) {
+ return request({
+ url: '/system/business/addRecords',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/ruoyi-ui/src/api/crm/clues.js b/ruoyi-ui/src/api/crm/clues.js
index 7d29b4a..560a20b 100644
--- a/ruoyi-ui/src/api/crm/clues.js
+++ b/ruoyi-ui/src/api/crm/clues.js
@@ -18,6 +18,15 @@ export function listClues(query) {
})
}
+ //添加关联人
+ export function addAssociation(data) {
+ return request({
+ url: '/system/person',
+ method: 'post',
+ data: data
+ })
+ }
+
// 查询线索详细
export function getClues(id) {
return request({
diff --git a/ruoyi-ui/src/api/crm/comment.js b/ruoyi-ui/src/api/crm/comment.js
index b2ee03a..f8507d2 100644
--- a/ruoyi-ui/src/api/crm/comment.js
+++ b/ruoyi-ui/src/api/crm/comment.js
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询跟进记录列表
export function listComment(query) {
return request({
- url: '/crm/comment/list',
+ url: '/system/record/list',
method: 'get',
params: query
})
@@ -20,7 +20,7 @@ export function listCustomerComment(customerId) {
// 查询跟进记录详细
export function getComment(id) {
return request({
- url: '/crm/comment/' + id,
+ url: '/system/record/' + id,
method: 'get'
})
}
@@ -28,7 +28,7 @@ export function getComment(id) {
// 新增跟进记录
export function addComment(data) {
return request({
- url: '/crm/comment',
+ url: '/system/record',
method: 'post',
data: data
})
@@ -37,7 +37,7 @@ export function addComment(data) {
// 修改跟进记录
export function updateComment(data) {
return request({
- url: '/crm/comment',
+ url: '/system/record',
method: 'put',
data: data
})
@@ -46,7 +46,7 @@ export function updateComment(data) {
// 删除跟进记录
export function delComment(id) {
return request({
- url: '/crm/comment/' + id,
+ url: '/system/record/' + id,
method: 'delete'
})
}
diff --git a/ruoyi-ui/src/api/crm/person.js b/ruoyi-ui/src/api/crm/person.js
new file mode 100644
index 0000000..e252561
--- /dev/null
+++ b/ruoyi-ui/src/api/crm/person.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询联系人列表
+export function listPerson(query) {
+ return request({
+ url: '/system/person/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询联系人详细
+export function getPerson(id) {
+ return request({
+ url: '/system/person/' + id,
+ method: 'get'
+ })
+}
+
+// 新增联系人
+export function addPerson(data) {
+ return request({
+ url: '/system/person',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改联系人
+export function updatePerson(data) {
+ return request({
+ url: '/system/person',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除联系人
+export function delPerson(id) {
+ return request({
+ url: '/system/person/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/crm/plan.js b/ruoyi-ui/src/api/crm/plan.js
new file mode 100644
index 0000000..16b7adb
--- /dev/null
+++ b/ruoyi-ui/src/api/crm/plan.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询跟进计划列表
+export function listPlan(query) {
+ return request({
+ url: '/system/plan/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询跟进计划详细
+export function getPlan(id) {
+ return request({
+ url: '/system/plan/' + id,
+ method: 'get'
+ })
+}
+
+// 新增跟进计划
+export function addPlan(data) {
+ return request({
+ url: '/system/plan',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改跟进计划
+export function updatePlan(data) {
+ return request({
+ url: '/system/plan',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除跟进计划
+export function delPlan(id) {
+ return request({
+ url: '/system/plan/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/crm/record.js b/ruoyi-ui/src/api/crm/record.js
new file mode 100644
index 0000000..eabb610
--- /dev/null
+++ b/ruoyi-ui/src/api/crm/record.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询跟进记录列表
+export function listRecord(query) {
+ return request({
+ url: '/system/record/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询跟进记录详细
+export function getRecord(id) {
+ return request({
+ url: '/system/record/' + id,
+ method: 'get'
+ })
+}
+
+// 新增跟进记录
+export function addRecord(data) {
+ return request({
+ url: '/system/record',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改跟进记录
+export function updateRecord(data) {
+ return request({
+ url: '/system/record',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除跟进记录
+export function delRecord(id) {
+ return request({
+ url: '/system/record/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/api/crm/ticket.js b/ruoyi-ui/src/api/crm/ticket.js
new file mode 100644
index 0000000..b44daff
--- /dev/null
+++ b/ruoyi-ui/src/api/crm/ticket.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询服务工单列表
+export function listTicket(query) {
+ return request({
+ url: '/system/ticket/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询服务工单详细
+export function getTicket(id) {
+ return request({
+ url: '/system/ticket/' + id,
+ method: 'get'
+ })
+}
+
+// 新增服务工单
+export function addTicket(data) {
+ return request({
+ url: '/system/ticket',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改服务工单
+export function updateTicket(data) {
+ return request({
+ url: '/system/ticket',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除服务工单
+export function delTicket(id) {
+ return request({
+ url: '/system/ticket/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/views/crm/business/index.vue b/ruoyi-ui/src/views/crm/business/index.vue
new file mode 100644
index 0000000..eaf5ae1
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/business/index.vue
@@ -0,0 +1,766 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.forecastSuccessTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+ {{ parseTime(scope.row.lastFollowUpTime, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.phaseChangeTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 添加关联
+ 确认
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+ 是否更新已经存在的商机数据
+
+
仅允许导入xls、xlsx格式文件。
+
下载模板
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/crm/clues/AddAssociation.vue b/ruoyi-ui/src/views/crm/clues/AddAssociation.vue
new file mode 100644
index 0000000..55bcb9e
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/clues/AddAssociation.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/crm/clues/list.vue b/ruoyi-ui/src/views/crm/clues/list.vue
index 7765f67..9c6df12 100644
--- a/ruoyi-ui/src/views/crm/clues/list.vue
+++ b/ruoyi-ui/src/views/crm/clues/list.vue
@@ -59,6 +59,7 @@
转移
转成客户
+ 添加关联
修改
删除
@@ -97,6 +98,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -126,236 +141,255 @@
+
diff --git a/ruoyi-ui/src/views/crm/clues/person-list.vue b/ruoyi-ui/src/views/crm/clues/person-list.vue
index 4b2c8ad..6b9e486 100644
--- a/ruoyi-ui/src/views/crm/clues/person-list.vue
+++ b/ruoyi-ui/src/views/crm/clues/person-list.vue
@@ -59,6 +59,7 @@
转移
转成客户
+ 添加关联
修改
删除
@@ -126,237 +127,250 @@
+
diff --git a/ruoyi-ui/src/views/crm/customer/Comment.vue b/ruoyi-ui/src/views/crm/customer/Comment.vue
index 1e8fa9b..64c4008 100644
--- a/ruoyi-ui/src/views/crm/customer/Comment.vue
+++ b/ruoyi-ui/src/views/crm/customer/Comment.vue
@@ -10,8 +10,8 @@
-
-
+
+
@@ -47,9 +47,9 @@ export default {
},
// 表单参数
form: {
- customerId: undefined,
- content: undefined,
- nextFollowupTime: undefined
+ customerId: '',
+ content: '',
+ followUpTime: undefined
},
// 表单校验
rules: {
@@ -80,9 +80,9 @@ export default {
},
handleClose () {
this.form = {
- customerId: undefined,
- content: undefined,
- nextFollowupTime: undefined
+ customerId: '',
+ content: '',
+ followUpTime: undefined
}
this.openComment = false
this.$emit("close-dialog");
@@ -90,7 +90,9 @@ export default {
/** 提交按钮 */
submitForm () {
this.$refs['form'].validate((valid) => {
+ console.log(this.form,'form')
if (valid) {
+ console.log(this.form,'form')
addComment(this.form).then((response) => {
this.$modal.msgSuccess('保存成功')
this.handleClose()
@@ -106,4 +108,4 @@ export default {
},
}
-
\ No newline at end of file
+
diff --git a/ruoyi-ui/src/views/crm/person/index.vue b/ruoyi-ui/src/views/crm/person/index.vue
new file mode 100644
index 0000000..18bad75
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/person/index.vue
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/crm/plan/index.vue b/ruoyi-ui/src/views/crm/plan/index.vue
new file mode 100644
index 0000000..bf8aee6
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/plan/index.vue
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.planTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/crm/pool/list.vue b/ruoyi-ui/src/views/crm/pool/list.vue
index fcc0e4f..eee9305 100644
--- a/ruoyi-ui/src/views/crm/pool/list.vue
+++ b/ruoyi-ui/src/views/crm/pool/list.vue
@@ -18,7 +18,7 @@
-
+
diff --git a/ruoyi-ui/src/views/crm/record/index.vue b/ruoyi-ui/src/views/crm/record/index.vue
new file mode 100644
index 0000000..5269e62
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/record/index.vue
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.followUpTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.submitTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/crm/ticket/index.vue b/ruoyi-ui/src/views/crm/ticket/index.vue
new file mode 100644
index 0000000..b3ccee1
--- /dev/null
+++ b/ruoyi-ui/src/views/crm/ticket/index.vue
@@ -0,0 +1,789 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.serviceStarTime, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.serviceEndTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.signInTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+ {{ parseTime(scope.row.signOutTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.submitTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
index 0134a8c..1fdf276 100644
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ b/ruoyi-ui/src/views/system/user/index.vue
@@ -502,6 +502,7 @@ import { getToken } from '@/utils/auth'
import { treeselect } from '@/api/system/dept'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+import {getTenant} from "../../../utils/auth";
export default {
name: 'User',
@@ -556,7 +557,8 @@ export default {
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
- headers: { Authorization: 'Bearer ' + getToken() },
+ // headers: { Authorization: 'Bearer ' + getToken() },
+ headers: { tenant: getTenant() ,Authorization: 'Bearer ' + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + '/system/user/importData',
},
@@ -858,4 +860,4 @@ export default {
},
},
}
-
\ No newline at end of file
+
diff --git a/sql/rycrm-tenant-1-zzw-20240306.sql b/sql/rycrm-tenant-1-zzw-20240306.sql
new file mode 100644
index 0000000..0eabc71
--- /dev/null
+++ b/sql/rycrm-tenant-1-zzw-20240306.sql
@@ -0,0 +1,1329 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : little
+ Source Server Type : MySQL
+ Source Server Version : 50703
+ Source Host : localhost:3306
+ Source Schema : rycrm-tenant-1
+
+ Target Server Type : MySQL
+ Target Server Version : 50703
+ File Encoding : 65001
+
+ Date: 06/03/2024 10:42:41
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for business
+-- ----------------------------
+DROP TABLE IF EXISTS `business`;
+CREATE TABLE `business` (
+ `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '商机id',
+ `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `customer_id` int(20) NULL DEFAULT NULL COMMENT '关联客户',
+ `customer_linkman` int(20) NULL DEFAULT NULL COMMENT '客户联系人',
+ `customer_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户名称',
+ `customer_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户编号',
+ `business_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商机名称',
+ `business_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商机编号',
+ `sales_stage` int(4) NULL DEFAULT NULL COMMENT '销售阶段',
+ `probability_of_wining` int(6) NULL DEFAULT NULL COMMENT '赢率',
+ `stage_type` int(4) NULL DEFAULT NULL COMMENT '阶段类型',
+ `person_in_charge` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
+ `belonging_department` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属部门',
+ `business_detail` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商机明细',
+ `forecast_business_price` int(6) NULL DEFAULT NULL COMMENT '预测商机金额(单位:分)',
+ `forecast_success_time` datetime NULL DEFAULT NULL COMMENT '预计成交日期',
+ `collaborator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '协作人',
+ `last_follow_up_time` datetime NULL DEFAULT NULL COMMENT '最后跟进时间',
+ `phase_change_time` datetime NULL DEFAULT NULL COMMENT '阶段变更时间',
+ `lose_order_cause` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '输单原因',
+ `submitter` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提交人',
+ `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
+ `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `is_delete` int(4) NULL DEFAULT NULL COMMENT '删除标志',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商机表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of business
+-- ----------------------------
+INSERT INTO `business` VALUES (1, '1', 1, 1, '1', '1', '1', '1', 2, 1, 0, '1', '1', '1', 1, '2024-03-01 08:00:00', '1', '2024-03-01 08:00:00', '2024-03-01 08:00:00', '11', '1', '2024-03-01 08:00:00', NULL, '2024-03-01 09:21:40', NULL, '2024-03-05 10:05:06', '1', 1);
+INSERT INTO `business` VALUES (2, NULL, NULL, NULL, NULL, NULL, NULL, 'qqq', 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-05 16:58:01', NULL, NULL, NULL, NULL);
+INSERT INTO `business` VALUES (3, '7', 7, NULL, '7', '7', '7', '7', 2, 7, 1, '1', '1', '', NULL, NULL, '', NULL, NULL, '', '', NULL, NULL, '2024-03-05 17:48:47', NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for contact_person
+-- ----------------------------
+DROP TABLE IF EXISTS `contact_person`;
+CREATE TABLE `contact_person` (
+ `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '联系人id',
+ `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
+ `phone_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
+ `customer_id` int(20) NULL DEFAULT NULL COMMENT '关联客户',
+ `customer_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户编号',
+ `dep` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门',
+ `job` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职务',
+ `wx_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信号',
+ `mail_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+ `is_key` int(4) NULL DEFAULT NULL COMMENT '是否关键决策人',
+ `contact_person_detail` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人详情',
+ `person_in_charge` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
+ `belonging_department` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属部门',
+ `collaborator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '协作人',
+ `submitter` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提交人',
+ `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
+ `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `is_delete` int(4) NULL DEFAULT NULL COMMENT '删除标志',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '联系人表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of contact_person
+-- ----------------------------
+INSERT INTO `contact_person` VALUES (2, '1', '1', '1', 1, '1', '1', '1', '1', '16545118@qq.com', 0, '1', '1', '1', '1', '1', '2024-03-01 08:00:00', NULL, '2024-03-01 09:21:04', NULL, NULL, '1', 1);
+INSERT INTO `contact_person` VALUES (3, NULL, '张三', '13599599983', 3, NULL, NULL, NULL, 'sadaw123', '16545118@qq.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-04 11:15:48', NULL, NULL, NULL, NULL);
+INSERT INTO `contact_person` VALUES (4, NULL, '1111111', '13599599983', 3, NULL, NULL, NULL, '11111111111111111', '16545118@qq.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-04 15:58:42', NULL, NULL, NULL, NULL);
+INSERT INTO `contact_person` VALUES (5, NULL, '222222222', '13599599983', 3, NULL, NULL, NULL, '2222222222', '484648559@qq.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-04 15:58:51', NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for crm_comment
+-- ----------------------------
+DROP TABLE IF EXISTS `crm_comment`;
+CREATE TABLE `crm_comment` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `customer_id` bigint(20) NULL DEFAULT NULL COMMENT '客户ID',
+ `content` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回复内容',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户跟进记录表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of crm_comment
+-- ----------------------------
+INSERT INTO `crm_comment` VALUES (1, 4, '111', 'admin', '2024-03-01 16:25:58', '', NULL);
+INSERT INTO `crm_comment` VALUES (2, 4, '客户同意签合同', 'admin', '2024-03-01 16:30:31', '', NULL);
+INSERT INTO `crm_comment` VALUES (3, 2, '1223', 'admin', '2024-03-05 11:31:11', '', NULL);
+
+-- ----------------------------
+-- Table structure for crm_customer
+-- ----------------------------
+DROP TABLE IF EXISTS `crm_customer`;
+CREATE TABLE `crm_customer` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '客户ID',
+ `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '客户编号',
+ `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '客户名称',
+ `linkman` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '联系人',
+ `phone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '联系电话',
+ `region` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '地区',
+ `customer_industry` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '客户行业',
+ `customer_rank` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '客户级别',
+ `customer_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '客户状态',
+ `clues_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '线索名称',
+ `clues_source` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '线索来源',
+ `clues_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '线索状态',
+ `deal_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否成交(0未成交 1成交)',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态(0线索 1客户 2公海)',
+ `owner` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
+ `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+ `version` int(11) NULL DEFAULT 0 COMMENT '版本',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `last_update_record` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最后跟进记录',
+ `last_followup_time` datetime NULL DEFAULT NULL COMMENT '最后跟进时间',
+ `next_followup_time` datetime NULL DEFAULT NULL COMMENT '下次跟进时间',
+ `pre_owner` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '前负责人',
+ `to_pool_time` datetime NULL DEFAULT NULL COMMENT '转公海时间',
+ `to_customer_time` datetime NULL DEFAULT NULL COMMENT '转客户时间',
+ `pool_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '公海类型',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `idx_name`(`name`) USING BTREE,
+ INDEX `idx_phone`(`phone`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of crm_customer
+-- ----------------------------
+INSERT INTO `crm_customer` VALUES (1, '', '线索转客户1', '张三', '13800138000', '', '', 'A', '意向客户', '新线索1', '', '', '0', '2', 'admin', '0', 0, 'admin', '2022-01-19 17:10:47', '', '2022-01-19 17:11:41', NULL, '', '2022-01-19 17:11:41', NULL, '', NULL, '2022-01-19 17:11:41', 'normal');
+INSERT INTO `crm_customer` VALUES (2, '', '5555', '李四', '13800138001', '', '', 'B', '测试客户', '新线索2', '', '', '0', '1', 'admin', '0', 0, 'admin', '2022-01-19 17:11:04', '', '2024-03-05 11:31:11', NULL, '1', '2024-03-05 11:31:11', '2024-03-12 00:00:00', '', NULL, '2024-03-04 09:20:47', '');
+INSERT INTO `crm_customer` VALUES (3, '', '', '王五', '13800138002', '', '', '', '', '新线索3', '', '', '0', '0', 'admin', '0', 0, 'admin', '2022-01-19 17:11:21', '', NULL, NULL, '', NULL, NULL, '', NULL, NULL, '');
+INSERT INTO `crm_customer` VALUES (4, '111', '111', '111', '13599599983', '北京市', '房地产', 'A', '测试客户', '', '', '', '1', '1', 'admin', '0', 0, 'admin', '2024-03-01 16:25:46', 'admin', '2024-03-01 16:57:14', '111', '客户同意签合同', '2024-03-01 16:30:31', '2024-03-02 00:00:00', '', NULL, NULL, '');
+INSERT INTO `crm_customer` VALUES (5, '', '1', '1', '13599599983', '', '', 'A', '测试客户', '1', '电话', '有效', '0', '1', 'admin', '0', 0, 'admin', '2024-03-01 16:56:25', '', '2024-03-01 16:56:48', '1', '', NULL, NULL, '', NULL, '2024-03-01 16:56:48', '');
+
+-- ----------------------------
+-- Table structure for crm_order
+-- ----------------------------
+DROP TABLE IF EXISTS `crm_order`;
+CREATE TABLE `crm_order` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `order_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单编号',
+ `customer_id` bigint(20) NOT NULL COMMENT '客户ID',
+ `amount` decimal(19, 2) NULL DEFAULT 0.00 COMMENT '订单金额',
+ `owner` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态(0待审核 1审核通过 2审核不通过)',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE INDEX `idx_order_no`(`order_no`) USING BTREE,
+ INDEX `idx_customer_id`(`customer_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of crm_order
+-- ----------------------------
+INSERT INTO `crm_order` VALUES (1, '226as26AS', 4, 10000.00, 'admin', 'admin', '2024-03-01 16:32:01', '', NULL, '晚上五点签合同', '1');
+
+-- ----------------------------
+-- Table structure for follow_up_plan
+-- ----------------------------
+DROP TABLE IF EXISTS `follow_up_plan`;
+CREATE TABLE `follow_up_plan` (
+ `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '跟进计划id',
+ `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `plan_content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '计划内容',
+ `customer` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进客户',
+ `plan_time` datetime NULL DEFAULT NULL COMMENT '跟进时间',
+ `plan_executor` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进执行人',
+ `belonging_department` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属部门',
+ `plan_status` int(4) NULL DEFAULT NULL COMMENT '计划状态',
+ `submitter` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提交人',
+ `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `is_delete` int(4) NULL DEFAULT NULL COMMENT '是否删除',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '跟进计划表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of follow_up_plan
+-- ----------------------------
+INSERT INTO `follow_up_plan` VALUES (1, '1', '1', '1', '2024-03-01 08:00:00', '1', '1', NULL, '1', '2024-03-01 08:00:00', NULL, '2024-03-01 14:45:21', NULL, NULL, '1', 1);
+
+-- ----------------------------
+-- Table structure for follow_up_record
+-- ----------------------------
+DROP TABLE IF EXISTS `follow_up_record`;
+CREATE TABLE `follow_up_record` (
+ `id` int(20) NOT NULL AUTO_INCREMENT,
+ `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `follow_up_record` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进记录',
+ `follow_up_subject` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进主体',
+ `customer_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户编号(辅助字段)',
+ `follow_up_business_opportunities` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进商机',
+ `opportunity_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商机编号(辅助字段)',
+ `contact_people` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人',
+ `follow_up_type` int(4) NULL DEFAULT NULL COMMENT '跟进方式',
+ `content` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进内容',
+ `follow_up_time` datetime NULL DEFAULT NULL COMMENT '跟进时间',
+ `follow_up_people` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跟进人',
+ `belonging_department` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属部门',
+ `submitter` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提交人',
+ `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `customer_id` int(20) NULL DEFAULT NULL COMMENT '客户id',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '跟进记录表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of follow_up_record
+-- ----------------------------
+INSERT INTO `follow_up_record` VALUES (1, '1', '1', '1', '1', '1', '1', '1', NULL, '1', '2024-03-01 08:00:00', '1', '1', '1', '2024-03-01 08:00:00', NULL, '2024-03-01 14:45:50', NULL, NULL, '1', 1);
+INSERT INTO `follow_up_record` VALUES (2, '商机已确认', '客户已确认,即将报价', NULL, 'zy_202403051', NULL, NULL, NULL, NULL, '商机已确认,客户已确认,即将报价', NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-05 10:05:06', NULL, NULL, NULL, NULL);
+INSERT INTO `follow_up_record` VALUES (3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-05 21:49:17', NULL, NULL, NULL, NULL);
+INSERT INTO `follow_up_record` VALUES (4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-07 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-05 21:54:15', NULL, NULL, NULL, NULL);
+INSERT INTO `follow_up_record` VALUES (5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-08 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-05 21:55:40', NULL, NULL, NULL, NULL);
+INSERT INTO `follow_up_record` VALUES (6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2024-03-07 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-05 21:58:26', NULL, NULL, NULL, NULL);
+INSERT INTO `follow_up_record` VALUES (7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'ccccccc', '2024-03-08 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-05 21:59:54', NULL, NULL, NULL, 2);
+INSERT INTO `follow_up_record` VALUES (8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'vvvvvvvvv', '2024-03-09 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-05 22:01:35', NULL, NULL, NULL, 2);
+INSERT INTO `follow_up_record` VALUES (9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'wwww', '2024-03-07 00:00:00', NULL, NULL, NULL, NULL, NULL, '2024-03-06 10:30:32', NULL, NULL, NULL, 2);
+
+-- ----------------------------
+-- Table structure for gen_table
+-- ----------------------------
+DROP TABLE IF EXISTS `gen_table`;
+CREATE TABLE `gen_table` (
+ `table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
+ `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '表名称',
+ `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '表描述',
+ `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联子表的表名',
+ `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表关联的外键名',
+ `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '实体类名称',
+ `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
+ `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成包路径',
+ `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成模块名',
+ `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成业务名',
+ `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成功能名',
+ `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生成功能作者',
+ `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
+ `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
+ `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '其它生成选项',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`table_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成业务表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of gen_table
+-- ----------------------------
+INSERT INTO `gen_table` VALUES (1, 'crm_customer', '客户表', NULL, NULL, 'CrmCustomer', 'crud', 'com.ruoyi.crm', 'crm', 'customer', '客户', 'ruoyi', '0', '/', '{}', 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30', NULL);
+INSERT INTO `gen_table` VALUES (2, 'crm_comment', '客户跟进记录表', NULL, NULL, 'CrmComment', 'crud', 'com.ruoyi.crm', 'crm', 'comment', '跟进记录', 'ruoyi', '0', '/', '{\"parentMenuId\":\"2008\"}', 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30', NULL);
+INSERT INTO `gen_table` VALUES (3, 'crm_order', '订单表', NULL, NULL, 'CrmOrder', 'crud', 'com.ruoyi.crm', 'crm', 'order', '我的订单', 'ruoyi', '0', '/', '{\"parentMenuId\":\"2008\"}', 'admin', '2022-01-18 18:10:56', '', '2022-01-19 10:54:01', NULL);
+
+-- ----------------------------
+-- Table structure for gen_table_column
+-- ----------------------------
+DROP TABLE IF EXISTS `gen_table_column`;
+CREATE TABLE `gen_table_column` (
+ `column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
+ `table_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属表编号',
+ `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列名称',
+ `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列描述',
+ `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列类型',
+ `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'JAVA类型',
+ `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'JAVA字段名',
+ `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否主键(1是)',
+ `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否自增(1是)',
+ `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否必填(1是)',
+ `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)',
+ `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)',
+ `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)',
+ `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)',
+ `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',
+ `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
+ `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`column_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 50 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of gen_table_column
+-- ----------------------------
+INSERT INTO `gen_table_column` VALUES (1, '1', 'id', '客户ID', 'bigint(20)', 'Long', 'id', '1', '1', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (2, '1', 'code', '客户编号', 'varchar(32)', 'String', 'code', '0', '0', NULL, '1', '1', '1', '1', 'LIKE', 'input', '', 2, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (3, '1', 'name', '客户名称', 'varchar(64)', 'String', 'name', '0', '0', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 3, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (4, '1', 'linkman', '联系人', 'varchar(64)', 'String', 'linkman', '0', '0', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 4, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (5, '1', 'phone', '联系电话', 'varchar(64)', 'String', 'phone', '0', '0', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 5, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (6, '1', 'region', '地区', 'varchar(64)', 'String', 'region', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'select', 'region_list', 6, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (7, '1', 'customer_industry', '客户行业', 'varchar(64)', 'String', 'customerIndustry', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'select', 'customer_industry', 7, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (8, '1', 'customer_rank', '客户级别', 'varchar(64)', 'String', 'customerRank', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'select', 'customer_rank', 8, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (9, '1', 'customer_status', '客户状态', 'varchar(64)', 'String', 'customerStatus', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'select', 'customer_status', 9, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (10, '1', 'status', '状态(0线索 1客户 2公海)', 'char(1)', 'String', 'status', '0', '0', NULL, NULL, NULL, NULL, NULL, 'EQ', 'radio', '', 10, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (11, '1', 'clues_name', '线索名称', 'varchar(64)', 'String', 'cluesName', '0', '0', '1', '1', '1', '1', '1', 'LIKE', 'input', '', 11, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (12, '1', 'clues_source', '线索来源', 'varchar(64)', 'String', 'cluesSource', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'select', 'clues_source', 12, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (13, '1', 'clues_status', '线索状态', 'varchar(64)', 'String', 'cluesStatus', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'select', 'clues_status', 13, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (14, '1', 'deal_status', '是否成交(0未成交 1成交)', 'char(1)', 'String', 'dealStatus', '0', '0', NULL, NULL, NULL, NULL, NULL, 'EQ', 'radio', '', 14, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (16, '1', 'del_flag', '删除标志(0代表存在 2代表删除)', 'char(1)', 'String', 'delFlag', '0', '0', NULL, NULL, NULL, NULL, NULL, 'EQ', 'input', '', 16, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (17, '1', 'version', '版本', 'int(11)', 'Long', 'version', '0', '0', NULL, NULL, NULL, NULL, NULL, 'EQ', 'input', '', 17, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (18, '1', 'create_by', '创建者', 'varchar(64)', 'String', 'createBy', '0', '0', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 18, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (19, '1', 'create_time', '创建时间', 'datetime', 'Date', 'createTime', '0', '0', NULL, '1', NULL, NULL, '1', 'EQ', 'datetime', '', 19, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (20, '1', 'update_by', '更新者', 'varchar(64)', 'String', 'updateBy', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'input', '', 20, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (21, '1', 'update_time', '更新时间', 'datetime', 'Date', 'updateTime', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'datetime', '', 21, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (22, '1', 'remark', '备注', 'varchar(500)', 'String', 'remark', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'textarea', '', 22, 'admin', '2022-01-12 18:02:20', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (23, '1', 'last_update_record', '最后跟进记录', 'varchar(255)', 'String', 'lastUpdateRecord', '0', '0', NULL, NULL, NULL, '1', NULL, 'EQ', 'input', '', 23, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (24, '1', 'last_followup_time', '最后跟进时间', 'datetime', 'Date', 'lastFollowupTime', '0', '0', NULL, NULL, NULL, '1', '1', 'BETWEEN', 'datetime', '', 24, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (25, '1', 'next_followup_time', '下次跟进时间', 'datetime', 'Date', 'nextFollowupTime', '0', '0', NULL, NULL, NULL, '1', NULL, 'EQ', 'datetime', '', 25, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (27, '1', 'to_liberum_time', '转公海时间', 'datetime', 'Date', 'toLiberumTime', '0', '0', NULL, NULL, NULL, '1', NULL, 'EQ', 'datetime', '', 27, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (28, '1', 'to_customer_time', '转客户时间', 'datetime', 'Date', 'toCustomerTime', '0', '0', NULL, NULL, NULL, '1', NULL, 'EQ', 'datetime', '', 28, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (29, '1', 'liberum_type', '公海类型', 'varchar(64)', 'String', 'liberumType', '0', '0', NULL, NULL, NULL, NULL, NULL, 'EQ', 'select', '', 29, '', '2022-01-13 10:40:24', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (30, '1', 'owner', '负责人', 'varchar(64)', 'String', 'owner', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'input', '', 15, '', '2022-01-14 10:07:17', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (31, '1', 'pre_owner', '前负责人', 'varchar(64)', 'String', 'preOwner', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'input', '', 26, '', '2022-01-14 10:07:17', '', '2022-01-19 15:18:30');
+INSERT INTO `gen_table_column` VALUES (32, '2', 'id', NULL, 'bigint(20)', 'Long', 'id', '1', '0', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (33, '2', 'customer_id', '客户ID', 'bigint(20)', 'Long', 'customerId', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'input', '', 2, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (34, '2', 'content', '回复内容', 'varchar(512)', 'String', 'content', '0', '0', '1', '1', '1', '1', NULL, 'EQ', 'editor', '', 3, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (35, '2', 'create_by', '创建者', 'varchar(64)', 'String', 'createBy', '0', '0', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 4, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (36, '2', 'create_time', '创建时间', 'datetime', 'Date', 'createTime', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'datetime', '', 5, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (37, '2', 'update_by', '更新者', 'varchar(64)', 'String', 'updateBy', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'input', '', 6, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (38, '2', 'update_time', '更新时间', 'datetime', 'Date', 'updateTime', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'datetime', '', 7, 'admin', '2022-01-18 14:56:58', '', '2022-01-18 15:06:30');
+INSERT INTO `gen_table_column` VALUES (39, '3', 'id', NULL, 'bigint(20)', 'Long', 'id', '1', '0', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (40, '3', 'order_no', '订单编号', 'varchar(32)', 'String', 'orderNo', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'input', '', 2, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (41, '3', 'customer_id', '客户ID', 'bigint(20)', 'Long', 'customerId', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'input', '', 3, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (42, '3', 'amount', '订单金额', 'decimal(19,2)', 'BigDecimal', 'amount', '0', '0', '1', '1', '1', '1', NULL, 'EQ', 'input', '', 4, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (43, '3', 'owner', '负责人', 'varchar(64)', 'String', 'owner', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'input', '', 5, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (44, '3', 'create_by', '创建者', 'varchar(64)', 'String', 'createBy', '0', '0', NULL, '1', NULL, NULL, NULL, 'EQ', 'input', '', 6, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (45, '3', 'create_time', '创建时间', 'datetime', 'Date', 'createTime', '0', '0', NULL, '1', NULL, NULL, '1', 'BETWEEN', 'datetime', '', 7, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (46, '3', 'update_by', '更新者', 'varchar(64)', 'String', 'updateBy', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'input', '', 8, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (47, '3', 'update_time', '更新时间', 'datetime', 'Date', 'updateTime', '0', '0', NULL, '1', '1', NULL, NULL, 'EQ', 'datetime', '', 9, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (48, '3', 'remark', '备注', 'varchar(500)', 'String', 'remark', '0', '0', NULL, '1', '1', '1', NULL, 'EQ', 'textarea', '', 10, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+INSERT INTO `gen_table_column` VALUES (49, '3', 'status', '状态(0待审核 1审核通过 2审核不通过)', 'char(1)', 'String', 'status', '0', '0', NULL, '1', '1', '1', '1', 'EQ', 'radio', 'order_review_status', 11, 'admin', '2022-01-18 18:10:57', '', '2022-01-19 10:54:02');
+
+-- ----------------------------
+-- Table structure for master_tenant
+-- ----------------------------
+DROP TABLE IF EXISTS `master_tenant`;
+CREATE TABLE `master_tenant` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `tenant` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
+ `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据库连接URL',
+ `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+ `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+ `database_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据库名',
+ `host_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据库主机名',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态(1正常 2停止)',
+ `expiration_date` datetime NULL DEFAULT NULL COMMENT '到期日期',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE INDEX `idx_tenant`(`tenant`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of master_tenant
+-- ----------------------------
+INSERT INTO `master_tenant` VALUES (1, 'tenant1', 'jdbc:mysql://localhost:3306/rycrm-tenant-1?useSSL=false', 'root', 'root', 'rycrm-tenant-1', 'localhost', NULL, '1', NULL);
+INSERT INTO `master_tenant` VALUES (2, 'tenant2', 'jdbc:mysql://localhost:3306/rycrm-tenant-2?useSSL=false', 'root', 'root', 'rycrm-tenant-2', 'localhost', NULL, '1', NULL);
+
+-- ----------------------------
+-- Table structure for service_ticket
+-- ----------------------------
+DROP TABLE IF EXISTS `service_ticket`;
+CREATE TABLE `service_ticket` (
+ `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '服务工单id',
+ `title` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `customer_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户姓名',
+ `customer_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户编号',
+ `contract_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合同标题',
+ `contract_order_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '合同订单编号',
+ `customer_contact` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户联系人',
+ `phone_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
+ `service_type` int(4) NULL DEFAULT NULL COMMENT '服务类型',
+ `service_order_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务单号',
+ `how_many_service_order` int(6) NULL DEFAULT NULL COMMENT '第几个服务单',
+ `service_star_time` datetime NULL DEFAULT NULL COMMENT '服务开始时间',
+ `service_end_time` datetime NULL DEFAULT NULL COMMENT '服务结束时间',
+ `demand_service_day` int(6) NULL DEFAULT NULL COMMENT '服务需求天数',
+ `after_sales_technician` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '售后技术人员',
+ `service_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务地址(省/自治区/直辖市)',
+ `service_address_city` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务地址(市)',
+ `service_address_area` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务地址(区)',
+ `service_address_detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务地址(详细地址)',
+ `sign_in` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签到',
+ `sign_in_time` datetime NULL DEFAULT NULL COMMENT '签到时间',
+ `sign_out` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签退',
+ `sign_out_time` datetime NULL DEFAULT NULL COMMENT '签退时间',
+ `is_solve_the_problem` bit(1) NULL DEFAULT NULL COMMENT '是否解决问题(true or false)',
+ `scene_photo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '现场照片',
+ `customer_satisfaction` int(4) NULL DEFAULT NULL COMMENT '客户满意度',
+ `satisfaction_value` int(4) NULL DEFAULT NULL COMMENT '满意度数值',
+ `customer_comments_and_demands` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户意见与诉求',
+ `submitter` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提交人',
+ `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间',
+ `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `process_state` int(4) NULL DEFAULT NULL COMMENT '流程状态',
+ `current_node` int(4) NULL DEFAULT NULL COMMENT '当前节点',
+ `current_person_in_charge` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前负责人',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '服务工单表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of service_ticket
+-- ----------------------------
+INSERT INTO `service_ticket` VALUES (1, '1', '1', '1', '1', '1', '1', '1', NULL, '1', 1, '2024-03-01 00:00:00', '2024-03-01 00:00:00', 1, '1', '1', '1', '1', '1', '1', '2024-03-01 00:00:00', '1', '2024-03-01 00:00:00', b'0', '', NULL, 1, '1', '1', '2024-03-01 00:00:00', NULL, '2024-03-01 13:26:11', NULL, '2024-03-01 16:22:36', NULL, NULL, '1');
+
+-- ----------------------------
+-- Table structure for sys_config
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_config`;
+CREATE TABLE `sys_config` (
+ `config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
+ `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数名称',
+ `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键名',
+ `config_value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '参数键值',
+ `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`config_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数配置表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_config
+-- ----------------------------
+INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2022-01-11 19:11:40', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
+INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2022-01-11 19:11:40', '', NULL, '初始化密码 123456');
+INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2022-01-11 19:11:40', '', NULL, '深色主题theme-dark,浅色主题theme-light');
+INSERT INTO `sys_config` VALUES (4, '账号自助-验证码开关', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', '2022-01-11 19:11:40', '', NULL, '是否开启验证码功能(true开启,false关闭)');
+INSERT INTO `sys_config` VALUES (5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', '2022-01-11 19:11:40', '', NULL, '是否开启注册用户功能(true开启,false关闭)');
+INSERT INTO `sys_config` VALUES (6, '公海规则', 'crm.pool.days', '10', 'Y', 'admin', '2022-01-18 17:07:48', '', NULL, '超过时间未跟进将客户移入公海,单位:天');
+
+-- ----------------------------
+-- Table structure for sys_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dept`;
+CREATE TABLE `sys_dept` (
+ `dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',
+ `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父部门id',
+ `ancestors` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '祖级列表',
+ `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称',
+ `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序',
+ `leader` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人',
+ `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
+ `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '部门状态(0正常 1停用)',
+ `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`dept_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 110 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_dept
+-- ----------------------------
+INSERT INTO `sys_dept` VALUES (100, 0, '0', 'Tenant-1', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', 'admin', '2022-01-11 19:15:10');
+INSERT INTO `sys_dept` VALUES (101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+INSERT INTO `sys_dept` VALUES (109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL);
+
+-- ----------------------------
+-- Table structure for sys_dict_data
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_data`;
+CREATE TABLE `sys_dict_data` (
+ `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
+ `dict_sort` int(4) NULL DEFAULT 0 COMMENT '字典排序',
+ `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签',
+ `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值',
+ `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型',
+ `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)',
+ `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格回显样式',
+ `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`dict_code`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 143 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_dict_data
+-- ----------------------------
+INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '性别男');
+INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '性别女');
+INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '性别未知');
+INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '显示菜单');
+INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '隐藏菜单');
+INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '默认分组');
+INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '系统分组');
+INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '系统默认是');
+INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '系统默认否');
+INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '通知');
+INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '公告');
+INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '关闭状态');
+INSERT INTO `sys_dict_data` VALUES (18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '新增操作');
+INSERT INTO `sys_dict_data` VALUES (19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '修改操作');
+INSERT INTO `sys_dict_data` VALUES (20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '删除操作');
+INSERT INTO `sys_dict_data` VALUES (21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '授权操作');
+INSERT INTO `sys_dict_data` VALUES (22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '导出操作');
+INSERT INTO `sys_dict_data` VALUES (23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '导入操作');
+INSERT INTO `sys_dict_data` VALUES (24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '强退操作');
+INSERT INTO `sys_dict_data` VALUES (25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '生成操作');
+INSERT INTO `sys_dict_data` VALUES (26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '清空操作');
+INSERT INTO `sys_dict_data` VALUES (27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (100, 0, '北京市', '北京市', 'region_list', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:08:08', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (101, 0, '上海市', '上海市', 'region_list', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:08:15', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (102, 0, '广东省', '广东省', 'region_list', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:08:25', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (103, 0, '百度', '百度', 'clues_source', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:09:02', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (104, 1, '抖音', '抖音', 'clues_source', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:09:08', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (105, 2, '头条', '头条', 'clues_source', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:09:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (106, 3, '电话', '电话', 'clues_source', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:09:40', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (107, 0, '有效', '有效', 'clues_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:09:59', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (108, 1, '无效', '无效', 'clues_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:10:06', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (109, 0, '计算机互联网', '计算机互联网', 'customer_industry', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:10:50', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (110, 1, '加工生产', '加工生产', 'customer_industry', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:11:02', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (111, 2, '房地产', '房地产', 'customer_industry', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:11:20', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (112, 3, '金融', '金融', 'customer_industry', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:11:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (113, 0, 'A', 'A', 'customer_rank', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:11:55', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (114, 1, 'B', 'B', 'customer_rank', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:11:59', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (115, 2, 'C', 'C', 'customer_rank', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:12:04', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (116, 3, 'D', 'D', 'customer_rank', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:12:10', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (117, 4, 'E', 'E', 'customer_rank', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:12:18', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (118, 0, '测试客户', '测试客户', 'customer_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:12:56', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (119, 1, '意向客户', '意向客户', 'customer_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:13:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (120, 2, '签单客户', '签单客户', 'customer_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:13:17', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (121, 3, '回款客户', '回款客户', 'customer_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:13:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (122, 4, '上门客户', '上门客户', 'customer_status', NULL, 'default', 'N', '0', 'admin', '2022-01-12 18:13:42', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (123, 0, '普通', 'normal', 'pool_type', NULL, 'default', 'N', '0', 'admin', '2022-01-13 13:33:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (124, 1, '高级', 'high', 'pool_type', NULL, 'default', 'N', '0', 'admin', '2022-01-13 13:33:24', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (125, 0, '未成交', '0', 'deal_status', NULL, 'default', 'N', '0', 'admin', '2022-01-15 18:11:42', 'admin', '2022-01-15 18:12:15', NULL);
+INSERT INTO `sys_dict_data` VALUES (126, 1, '已成交', '1', 'deal_status', NULL, 'default', 'N', '0', 'admin', '2022-01-15 18:11:58', 'admin', '2022-01-15 18:12:09', NULL);
+INSERT INTO `sys_dict_data` VALUES (127, 0, '待审核', '0', 'order_review_status', NULL, 'default', 'N', '0', 'admin', '2022-01-19 10:52:06', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (128, 1, '审核通过', '1', 'order_review_status', NULL, 'default', 'N', '0', 'admin', '2022-01-19 10:52:15', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (129, 2, '审核不通过', '2', 'order_review_status', NULL, 'default', 'N', '0', 'admin', '2022-01-19 10:52:23', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (130, 0, '是', '1', 'is_key', NULL, 'primary', 'N', '0', 'admin', '2024-03-01 11:46:44', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (131, 0, '否', '0', 'is_key', NULL, 'info', 'N', '0', 'admin', '2024-03-01 11:46:54', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (132, 0, '需求发现', '0', 'sales_stage', NULL, 'primary', 'N', '0', 'admin', '2024-03-01 11:47:41', 'admin', '2024-03-04 16:50:22', NULL);
+INSERT INTO `sys_dict_data` VALUES (133, 0, '需求确认', '1', 'sales_stage', NULL, 'success', 'N', '0', 'admin', '2024-03-01 11:47:50', 'admin', '2024-03-04 16:50:48', NULL);
+INSERT INTO `sys_dict_data` VALUES (134, 0, '方案报价', '2', 'sales_stage', NULL, 'info', 'N', '0', 'admin', '2024-03-01 11:48:04', 'admin', '2024-03-04 16:51:09', NULL);
+INSERT INTO `sys_dict_data` VALUES (135, 0, '商务谈判', '3', 'sales_stage', NULL, 'warning', 'N', '0', 'admin', '2024-03-01 11:48:24', 'admin', '2024-03-04 16:51:31', NULL);
+INSERT INTO `sys_dict_data` VALUES (136, 0, 'test0', '0', 'stage_type', NULL, 'primary', 'N', '0', 'admin', '2024-03-01 11:49:28', 'admin', '2024-03-01 11:49:38', NULL);
+INSERT INTO `sys_dict_data` VALUES (137, 0, 'test1', '1', 'stage_type', NULL, 'success', 'N', '0', 'admin', '2024-03-01 11:50:28', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (138, 0, 'test0', '0', 'service_type', NULL, 'primary', 'N', '0', 'admin', '2024-03-01 11:50:50', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (139, 0, 'test1', '1', 'service_type', NULL, 'success', 'N', '0', 'admin', '2024-03-01 11:51:01', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (140, 0, '交易成功', '4', 'sales_stage', NULL, 'success', 'N', '0', 'admin', '2024-03-04 16:52:15', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (141, 0, '交易失败', '5', 'sales_stage', NULL, 'danger', 'N', '0', 'admin', '2024-03-04 16:52:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (142, 0, '无效', '6', 'sales_stage', NULL, 'warning', 'N', '0', 'admin', '2024-03-04 16:52:53', '', NULL, NULL);
+
+-- ----------------------------
+-- Table structure for sys_dict_type
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_type`;
+CREATE TABLE `sys_dict_type` (
+ `dict_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
+ `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典名称',
+ `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`dict_id`) USING BTREE,
+ UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 113 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_dict_type
+-- ----------------------------
+INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '用户性别列表');
+INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '菜单状态列表');
+INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '系统开关列表');
+INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '任务状态列表');
+INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '任务分组列表');
+INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '系统是否列表');
+INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '通知类型列表');
+INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '通知状态列表');
+INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '操作类型列表');
+INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '登录状态列表');
+INSERT INTO `sys_dict_type` VALUES (100, '线索来源', 'clues_source', '0', 'admin', '2022-01-12 18:05:44', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (101, '线索状态', 'clues_status', '0', 'admin', '2022-01-12 18:05:59', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (102, '行业类别', 'customer_industry', '0', 'admin', '2022-01-12 18:06:30', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (103, '客户级别', 'customer_rank', '0', 'admin', '2022-01-12 18:06:42', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (104, '客户状态', 'customer_status', '0', 'admin', '2022-01-12 18:06:54', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (105, '所在地区', 'region_list', '0', 'admin', '2022-01-12 18:07:47', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (106, '公海类型', 'pool_type', '0', 'admin', '2022-01-13 13:28:04', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (107, '成交状态', 'deal_status', '0', 'admin', '2022-01-15 18:10:43', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (108, '订单审核状态', 'order_review_status', '0', 'admin', '2022-01-19 10:51:35', 'admin', '2022-01-19 10:53:41', NULL);
+INSERT INTO `sys_dict_type` VALUES (109, '是否关键决策人', 'is_key', '0', 'admin', '2024-03-01 11:43:50', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (110, '销售阶段', 'sales_stage', '0', 'admin', '2024-03-01 11:45:38', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (111, '阶段类型', 'stage_type', '0', 'admin', '2024-03-01 11:45:57', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (112, '服务类型', 'service_type', '0', 'admin', '2024-03-01 11:46:11', '', NULL, NULL);
+
+-- ----------------------------
+-- Table structure for sys_job
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_job`;
+CREATE TABLE `sys_job` (
+ `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
+ `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务名称',
+ `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名',
+ `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串',
+ `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'cron执行表达式',
+ `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
+ `concurrent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1暂停)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注信息',
+ PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_job
+-- ----------------------------
+INSERT INTO `sys_job` VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_job` VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_job` VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+
+-- ----------------------------
+-- Table structure for sys_job_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_job_log`;
+CREATE TABLE `sys_job_log` (
+ `job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
+ `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称',
+ `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务组名',
+ `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串',
+ `job_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志信息',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)',
+ `exception_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '异常信息',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`job_log_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_job_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_logininfor
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_logininfor`;
+CREATE TABLE `sys_logininfor` (
+ `info_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID',
+ `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户账号',
+ `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录IP地址',
+ `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '登录地点',
+ `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '浏览器类型',
+ `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作系统',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '登录状态(0成功 1失败)',
+ `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '提示消息',
+ `login_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
+ PRIMARY KEY (`info_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 345 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_logininfor
+-- ----------------------------
+INSERT INTO `sys_logininfor` VALUES (291, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '1', '验证码错误', '2024-03-01 11:26:54');
+INSERT INTO `sys_logininfor` VALUES (292, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 11:27:02');
+INSERT INTO `sys_logininfor` VALUES (293, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 11:43:27');
+INSERT INTO `sys_logininfor` VALUES (294, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 11:45:14');
+INSERT INTO `sys_logininfor` VALUES (295, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 14:50:41');
+INSERT INTO `sys_logininfor` VALUES (296, 'admin', '127.0.0.1', '内网IP', 'Firefox 12', 'Windows 10', '0', '登录成功', '2024-03-01 15:19:18');
+INSERT INTO `sys_logininfor` VALUES (297, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 15:24:37');
+INSERT INTO `sys_logininfor` VALUES (298, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 15:55:08');
+INSERT INTO `sys_logininfor` VALUES (299, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 16:43:02');
+INSERT INTO `sys_logininfor` VALUES (300, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 16:55:42');
+INSERT INTO `sys_logininfor` VALUES (301, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 17:32:50');
+INSERT INTO `sys_logininfor` VALUES (302, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-01 17:44:53');
+INSERT INTO `sys_logininfor` VALUES (303, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 09:10:19');
+INSERT INTO `sys_logininfor` VALUES (304, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 10:25:14');
+INSERT INTO `sys_logininfor` VALUES (305, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 11:05:53');
+INSERT INTO `sys_logininfor` VALUES (306, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 11:22:38');
+INSERT INTO `sys_logininfor` VALUES (307, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '退出成功', '2024-03-04 12:05:08');
+INSERT INTO `sys_logininfor` VALUES (308, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 12:05:16');
+INSERT INTO `sys_logininfor` VALUES (309, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 13:04:10');
+INSERT INTO `sys_logininfor` VALUES (310, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 13:17:02');
+INSERT INTO `sys_logininfor` VALUES (311, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 15:26:20');
+INSERT INTO `sys_logininfor` VALUES (312, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 15:38:08');
+INSERT INTO `sys_logininfor` VALUES (313, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 16:47:57');
+INSERT INTO `sys_logininfor` VALUES (314, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-04 17:12:55');
+INSERT INTO `sys_logininfor` VALUES (315, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 09:54:02');
+INSERT INTO `sys_logininfor` VALUES (316, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '退出成功', '2024-03-05 10:18:08');
+INSERT INTO `sys_logininfor` VALUES (317, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 10:18:24');
+INSERT INTO `sys_logininfor` VALUES (318, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 10:24:41');
+INSERT INTO `sys_logininfor` VALUES (319, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 10:39:00');
+INSERT INTO `sys_logininfor` VALUES (320, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '退出成功', '2024-03-05 11:17:20');
+INSERT INTO `sys_logininfor` VALUES (321, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 11:28:55');
+INSERT INTO `sys_logininfor` VALUES (322, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 11:45:35');
+INSERT INTO `sys_logininfor` VALUES (323, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 11:46:49');
+INSERT INTO `sys_logininfor` VALUES (324, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 11:54:00');
+INSERT INTO `sys_logininfor` VALUES (325, 'admin', '127.0.0.1', '内网IP', 'Firefox 12', 'Windows 10', '0', '登录成功', '2024-03-05 13:09:14');
+INSERT INTO `sys_logininfor` VALUES (326, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 13:31:48');
+INSERT INTO `sys_logininfor` VALUES (327, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 15:11:47');
+INSERT INTO `sys_logininfor` VALUES (328, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 15:39:47');
+INSERT INTO `sys_logininfor` VALUES (329, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '退出成功', '2024-03-05 15:39:48');
+INSERT INTO `sys_logininfor` VALUES (330, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 15:40:01');
+INSERT INTO `sys_logininfor` VALUES (331, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '退出成功', '2024-03-05 15:40:01');
+INSERT INTO `sys_logininfor` VALUES (332, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 15:40:44');
+INSERT INTO `sys_logininfor` VALUES (333, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 16:13:38');
+INSERT INTO `sys_logininfor` VALUES (334, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 16:18:35');
+INSERT INTO `sys_logininfor` VALUES (335, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 16:25:08');
+INSERT INTO `sys_logininfor` VALUES (336, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 16:52:54');
+INSERT INTO `sys_logininfor` VALUES (337, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 17:27:07');
+INSERT INTO `sys_logininfor` VALUES (338, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 17:39:42');
+INSERT INTO `sys_logininfor` VALUES (339, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 20:01:50');
+INSERT INTO `sys_logininfor` VALUES (340, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 20:43:04');
+INSERT INTO `sys_logininfor` VALUES (341, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 21:46:39');
+INSERT INTO `sys_logininfor` VALUES (342, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-05 22:16:30');
+INSERT INTO `sys_logininfor` VALUES (343, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-06 09:25:18');
+INSERT INTO `sys_logininfor` VALUES (344, 'admin', '127.0.0.1', '内网IP', 'Chrome 12', 'Windows 10', '0', '登录成功', '2024-03-06 10:29:56');
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+ `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
+ `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
+ `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
+ `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序',
+ `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址',
+ `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径',
+ `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由参数',
+ `is_frame` int(1) NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)',
+ `is_cache` int(1) NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)',
+ `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)',
+ `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
+ `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限标识',
+ `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+ PRIMARY KEY (`menu_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2053 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 200, 'system', NULL, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2022-01-11 19:11:40', '', NULL, '系统管理目录');
+INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 300, 'monitor', NULL, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2022-01-11 19:11:40', '', NULL, '系统监控目录');
+INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 400, 'tool', NULL, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2022-01-11 19:11:40', '', NULL, '系统工具目录');
+INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', '2022-01-11 19:11:40', '', NULL, '用户管理菜单');
+INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2022-01-11 19:11:40', '', NULL, '角色管理菜单');
+INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2022-01-11 19:11:40', '', NULL, '菜单管理菜单');
+INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', '2022-01-11 19:11:40', '', NULL, '部门管理菜单');
+INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', '2022-01-11 19:11:40', '', NULL, '岗位管理菜单');
+INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2022-01-11 19:11:40', '', NULL, '字典管理菜单');
+INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2022-01-11 19:11:40', '', NULL, '参数设置菜单');
+INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2022-01-11 19:11:40', '', NULL, '通知公告菜单');
+INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', '2022-01-11 19:11:40', '', NULL, '日志管理菜单');
+INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2022-01-11 19:11:40', '', NULL, '在线用户菜单');
+INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2022-01-11 19:11:40', '', NULL, '定时任务菜单');
+INSERT INTO `sys_menu` VALUES (111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', '2022-01-11 19:11:40', '', NULL, '数据监控菜单');
+INSERT INTO `sys_menu` VALUES (112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2022-01-11 19:11:40', '', NULL, '服务监控菜单');
+INSERT INTO `sys_menu` VALUES (113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2022-01-11 19:11:40', '', NULL, '缓存监控菜单');
+INSERT INTO `sys_menu` VALUES (114, '表单构建', 3, 1, 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2022-01-11 19:11:40', '', NULL, '表单构建菜单');
+INSERT INTO `sys_menu` VALUES (115, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2022-01-11 19:11:40', '', NULL, '代码生成菜单');
+INSERT INTO `sys_menu` VALUES (116, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2022-01-11 19:11:40', '', NULL, '系统接口菜单');
+INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2022-01-11 19:11:40', '', NULL, '操作日志菜单');
+INSERT INTO `sys_menu` VALUES (501, '登录日志', 108, 2, 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2022-01-11 19:11:40', '', NULL, '登录日志菜单');
+INSERT INTO `sys_menu` VALUES (1001, '用户查询', 100, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1002, '用户新增', 100, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1003, '用户修改', 100, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1004, '用户删除', 100, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1005, '用户导出', 100, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1006, '用户导入', 100, 6, '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1007, '重置密码', 100, 7, '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1008, '角色查询', 101, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1009, '角色新增', 101, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1010, '角色修改', 101, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1011, '角色删除', 101, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1012, '角色导出', 101, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1013, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1014, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1015, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1016, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1017, '部门查询', 103, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1018, '部门新增', 103, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1019, '部门修改', 103, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1020, '部门删除', 103, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1021, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1022, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1023, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1024, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1025, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1026, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1027, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1028, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1029, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1030, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1031, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1032, '参数新增', 106, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1033, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1034, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1035, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1036, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1037, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1038, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1039, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1040, '操作查询', 500, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1041, '操作删除', 500, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1042, '日志导出', 500, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1043, '登录查询', 501, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1044, '登录删除', 501, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1045, '日志导出', 501, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 7, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1055, '生成查询', 115, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1056, '生成修改', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1057, '生成删除', 115, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1058, '导入代码', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1059, '预览代码', 115, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1060, '生成代码', 115, 5, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2006, '公海管理', 0, 100, 'crm/pool', NULL, NULL, 1, 0, 'M', '0', '0', '', 'peoples', 'admin', '2022-01-12 19:23:39', 'admin', '2022-01-12 19:57:42', '');
+INSERT INTO `sys_menu` VALUES (2007, '线索管理', 0, 101, 'crm/clues', NULL, NULL, 1, 0, 'M', '0', '0', '', 'time-range', 'admin', '2022-01-12 19:25:51', 'admin', '2022-01-12 19:49:32', '');
+INSERT INTO `sys_menu` VALUES (2008, '客户管理', 0, 102, 'crm/customer', NULL, NULL, 1, 0, 'M', '0', '0', '', 'user', 'admin', '2022-01-12 19:26:15', 'admin', '2022-01-12 19:50:13', '');
+INSERT INTO `sys_menu` VALUES (2009, '客户公海', 2006, 100, 'list', 'crm/pool/list', NULL, 1, 0, 'C', '0', '0', 'crm:pool:list', '#', 'admin', '2022-01-12 19:33:38', 'admin', '2022-01-12 19:59:51', '');
+INSERT INTO `sys_menu` VALUES (2010, '我的线索', 2007, 100, 'person', 'crm/clues/person-list', NULL, 1, 0, 'C', '0', '0', 'crm:clues:person:list', '#', 'admin', '2022-01-12 19:37:30', 'admin', '2022-01-12 19:47:18', '');
+INSERT INTO `sys_menu` VALUES (2011, '线索列表', 2007, 101, 'list', 'crm/clues/list', NULL, 1, 0, 'C', '0', '0', 'crm:clues:list', '#', 'admin', '2022-01-12 19:38:49', 'admin', '2022-01-12 19:50:03', '');
+INSERT INTO `sys_menu` VALUES (2012, '我的客户', 2008, 100, 'person', 'crm/customer/person-list', NULL, 1, 0, 'C', '0', '0', 'crm:customer:person:list', '#', 'admin', '2022-01-12 19:42:14', 'admin', '2024-03-04 13:10:53', '');
+INSERT INTO `sys_menu` VALUES (2013, '客户列表', 2008, 101, 'list', 'crm/customer/list', NULL, 1, 0, 'C', '0', '0', 'crm:customer:list', '#', 'admin', '2022-01-12 19:42:44', 'admin', '2022-01-12 19:50:29', '');
+INSERT INTO `sys_menu` VALUES (2014, '成交客户', 2008, 102, 'deal', 'crm/customer/deal-list', NULL, 1, 0, 'C', '0', '0', 'crm:customer:deal:list', '#', 'admin', '2022-01-12 19:43:37', 'admin', '2022-01-12 19:50:32', '');
+INSERT INTO `sys_menu` VALUES (2015, '业绩订单', 0, 103, 'crm/order', NULL, NULL, 1, 0, 'M', '0', '0', '', 'money', 'admin', '2022-01-19 10:20:01', 'admin', '2022-01-19 10:20:17', '');
+INSERT INTO `sys_menu` VALUES (2016, '我的订单', 2015, 0, 'crm/customer', 'crm/order/person-list', NULL, 1, 0, 'C', '0', '0', 'crm:order:person:list', '#', 'admin', '2022-01-19 10:20:36', 'admin', '2022-01-19 10:21:08', '');
+INSERT INTO `sys_menu` VALUES (2017, '订单列表', 2015, 1, 'crm/order', 'crm/order/list', NULL, 1, 0, 'C', '0', '0', 'crm:order:list', '#', 'admin', '2022-01-19 11:07:45', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2020, '联系人', 2008, 1, 'personse', 'crm/person/index', NULL, 1, 0, 'C', '0', '0', 'system:person:list', '#', 'admin', '2024-03-01 11:33:42', 'admin', '2024-03-04 12:04:59', '联系人菜单');
+INSERT INTO `sys_menu` VALUES (2021, '联系人查询', 2020, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:person:query', '#', 'admin', '2024-03-01 11:33:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2022, '联系人新增', 2020, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:person:add', '#', 'admin', '2024-03-01 11:33:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2023, '联系人修改', 2020, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:person:edit', '#', 'admin', '2024-03-01 11:33:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2024, '联系人删除', 2020, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:person:remove', '#', 'admin', '2024-03-01 11:33:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2025, '联系人导出', 2020, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:person:export', '#', 'admin', '2024-03-01 11:33:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2026, '商机', 2008, 1, 'business', 'crm/business/index', NULL, 1, 0, 'C', '0', '0', 'system:business:list', '#', 'admin', '2024-03-01 11:34:07', 'admin', '2024-03-01 16:45:21', '商机菜单');
+INSERT INTO `sys_menu` VALUES (2027, '商机查询', 2026, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:business:query', '#', 'admin', '2024-03-01 11:34:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2028, '商机新增', 2026, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:business:add', '#', 'admin', '2024-03-01 11:34:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2029, '商机修改', 2026, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:business:edit', '#', 'admin', '2024-03-01 11:34:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2030, '商机删除', 2026, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:business:remove', '#', 'admin', '2024-03-01 11:34:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2031, '商机导出', 2026, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:business:export', '#', 'admin', '2024-03-01 11:34:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2032, '服务工单', 0, 502, 'service', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'star', 'admin', '2024-03-01 14:52:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2035, '服务工单', 2032, 1, 'ticket', 'crm/ticket/index', NULL, 1, 0, 'C', '0', '0', 'system:ticket:list', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '服务工单菜单');
+INSERT INTO `sys_menu` VALUES (2036, '服务工单查询', 2035, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:ticket:query', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2037, '服务工单新增', 2035, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:ticket:add', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2038, '服务工单修改', 2035, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:ticket:edit', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2039, '服务工单删除', 2035, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:ticket:remove', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2040, '服务工单导出', 2035, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:ticket:export', '#', 'admin', '2024-03-01 15:22:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2041, '跟进计划', 2008, 1, 'plan', 'crm/plan/index', NULL, 1, 0, 'C', '0', '0', 'system:plan:list', '#', 'admin', '2024-03-01 15:22:53', 'admin', '2024-03-01 16:45:47', '跟进计划菜单');
+INSERT INTO `sys_menu` VALUES (2042, '跟进计划查询', 2041, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:plan:query', '#', 'admin', '2024-03-01 15:22:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2043, '跟进计划新增', 2041, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:plan:add', '#', 'admin', '2024-03-01 15:22:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2044, '跟进计划修改', 2041, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:plan:edit', '#', 'admin', '2024-03-01 15:22:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2045, '跟进计划删除', 2041, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:plan:remove', '#', 'admin', '2024-03-01 15:22:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2046, '跟进计划导出', 2041, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:plan:export', '#', 'admin', '2024-03-01 15:22:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2047, '跟进记录', 2008, 1, 'record', 'crm/record/index', NULL, 1, 0, 'C', '0', '0', 'system:record:list', '#', 'admin', '2024-03-01 15:23:05', 'admin', '2024-03-01 16:49:12', '跟进记录菜单');
+INSERT INTO `sys_menu` VALUES (2048, '跟进记录查询', 2047, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:record:query', '#', 'admin', '2024-03-01 15:23:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2049, '跟进记录新增', 2047, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:record:add', '#', 'admin', '2024-03-01 15:23:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2050, '跟进记录修改', 2047, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:record:edit', '#', 'admin', '2024-03-01 15:23:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2051, '跟进记录删除', 2047, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:record:remove', '#', 'admin', '2024-03-01 15:23:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2052, '跟进记录导出', 2047, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'system:record:export', '#', 'admin', '2024-03-01 15:23:05', '', NULL, '');
+
+-- ----------------------------
+-- Table structure for sys_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_notice`;
+CREATE TABLE `sys_notice` (
+ `notice_id` int(4) NOT NULL AUTO_INCREMENT COMMENT '公告ID',
+ `notice_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题',
+ `notice_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告类型(1通知 2公告)',
+ `notice_content` longblob NULL COMMENT '公告内容',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`notice_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_notice
+-- ----------------------------
+INSERT INTO `sys_notice` VALUES (1, '温馨提醒:2018-07-01 若依新版本发布啦', '2', 0xE696B0E78988E69CACE58685E5AEB9, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '管理员');
+INSERT INTO `sys_notice` VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '1', 0xE7BBB4E68AA4E58685E5AEB9, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '管理员');
+
+-- ----------------------------
+-- Table structure for sys_oper_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_oper_log`;
+CREATE TABLE `sys_oper_log` (
+ `oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
+ `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '模块标题',
+ `business_type` int(2) NULL DEFAULT 0 COMMENT '业务类型(0其它 1新增 2修改 3删除)',
+ `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '方法名称',
+ `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求方式',
+ `operator_type` int(1) NULL DEFAULT 0 COMMENT '操作类别(0其它 1后台用户 2手机端用户)',
+ `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作人员',
+ `dept_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '部门名称',
+ `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求URL',
+ `oper_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主机地址',
+ `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '操作地点',
+ `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求参数',
+ `json_result` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '返回参数',
+ `status` int(1) NULL DEFAULT 0 COMMENT '操作状态(0正常 1异常)',
+ `error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '错误消息',
+ `oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
+ PRIMARY KEY (`oper_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 435 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_oper_log
+-- ----------------------------
+INSERT INTO `sys_oper_log` VALUES (346, '菜单管理', 1, 'com.ruoyi.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"date-range\",\"orderNum\":\"500\",\"menuName\":\"联系人管理\",\"params\":{},\"parentId\":0,\"isCache\":\"0\",\"path\":\"lxr\",\"createBy\":\"admin\",\"children\":[],\"isFrame\":\"1\",\"menuType\":\"M\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:31:03');
+INSERT INTO `sys_oper_log` VALUES (347, '菜单管理', 1, 'com.ruoyi.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"education\",\"orderNum\":\"501\",\"menuName\":\"商机管理\",\"params\":{},\"parentId\":0,\"isCache\":\"0\",\"path\":\"business\",\"createBy\":\"admin\",\"children\":[],\"isFrame\":\"1\",\"menuType\":\"M\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:32:14');
+INSERT INTO `sys_oper_log` VALUES (348, '字典类型', 1, 'com.ruoyi.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', NULL, '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"是否关键决策人\",\"params\":{},\"dictType\":\"is_key\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:43:50');
+INSERT INTO `sys_oper_log` VALUES (349, '字典类型', 1, 'com.ruoyi.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', NULL, '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"销售阶段\",\"params\":{},\"dictType\":\"sales_stage\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:45:38');
+INSERT INTO `sys_oper_log` VALUES (350, '字典类型', 1, 'com.ruoyi.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', NULL, '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"阶段类型\",\"params\":{},\"dictType\":\"stage_type\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:45:57');
+INSERT INTO `sys_oper_log` VALUES (351, '字典类型', 1, 'com.ruoyi.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', NULL, '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"服务类型\",\"params\":{},\"dictType\":\"service_type\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:46:11');
+INSERT INTO `sys_oper_log` VALUES (352, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"1\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"is_key\",\"dictLabel\":\"是\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:46:44');
+INSERT INTO `sys_oper_log` VALUES (353, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"info\",\"dictSort\":0,\"params\":{},\"dictType\":\"is_key\",\"dictLabel\":\"否\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:46:55');
+INSERT INTO `sys_oper_log` VALUES (354, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"test0\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:47:41');
+INSERT INTO `sys_oper_log` VALUES (355, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"1\",\"listClass\":\"success\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"test1\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:47:50');
+INSERT INTO `sys_oper_log` VALUES (356, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"2\",\"listClass\":\"info\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"test2\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:48:04');
+INSERT INTO `sys_oper_log` VALUES (357, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"3\",\"listClass\":\"warning\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"test3\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:48:24');
+INSERT INTO `sys_oper_log` VALUES (358, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"stage_type\",\"dictLabel\":\"test0\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:49:28');
+INSERT INTO `sys_oper_log` VALUES (359, '字典数据', 2, 'com.ruoyi.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"stage_type\",\"dictLabel\":\"test0\",\"createBy\":\"admin\",\"default\":false,\"isDefault\":\"N\",\"createTime\":1709264968000,\"dictCode\":136,\"updateBy\":\"admin\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:49:38');
+INSERT INTO `sys_oper_log` VALUES (360, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"1\",\"listClass\":\"success\",\"dictSort\":0,\"params\":{},\"dictType\":\"stage_type\",\"dictLabel\":\"test1\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:50:28');
+INSERT INTO `sys_oper_log` VALUES (361, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"service_type\",\"dictLabel\":\"test0\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:50:50');
+INSERT INTO `sys_oper_log` VALUES (362, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"1\",\"listClass\":\"success\",\"dictSort\":0,\"params\":{},\"dictType\":\"service_type\",\"dictLabel\":\"test1\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 11:51:01');
+INSERT INTO `sys_oper_log` VALUES (363, '菜单管理', 1, 'com.ruoyi.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"star\",\"orderNum\":\"502\",\"menuName\":\"服务工单\",\"params\":{},\"parentId\":0,\"isCache\":\"0\",\"path\":\"service\",\"createBy\":\"admin\",\"children\":[],\"isFrame\":\"1\",\"menuType\":\"M\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 14:52:24');
+INSERT INTO `sys_oper_log` VALUES (364, '菜单管理', 1, 'com.ruoyi.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"excel\",\"orderNum\":\"503\",\"menuName\":\"跟进计划\",\"params\":{},\"parentId\":0,\"isCache\":\"0\",\"path\":\"plan\",\"createBy\":\"admin\",\"children\":[],\"isFrame\":\"1\",\"menuType\":\"M\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 14:53:06');
+INSERT INTO `sys_oper_log` VALUES (365, '菜单管理', 1, 'com.ruoyi.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"example\",\"orderNum\":\"504\",\"menuName\":\"跟进记录\",\"params\":{},\"parentId\":0,\"isCache\":\"0\",\"path\":\"record\",\"createBy\":\"admin\",\"children\":[],\"isFrame\":\"1\",\"menuType\":\"M\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 14:53:48');
+INSERT INTO `sys_oper_log` VALUES (366, '服务工单', 2, 'com.ruoyi.system.controller.ServiceTicketController.edit()', 'PUT', 1, 'admin', NULL, '/system/ticket', '127.0.0.1', '内网IP', '{\"submitter\":\"1\",\"howManyServiceOrder\":1,\"serviceAddressDetail\":\"1\",\"contractOrderNumber\":\"1\",\"serviceAddressArea\":\"1\",\"title\":\"1\",\"currentPersonInCharge\":\"1\",\"customerContact\":\"1\",\"id\":1,\"demandServiceDay\":1,\"serviceStarTime\":1709222400000,\"signOutTime\":1709222400000,\"serviceEndTime\":1709222400000,\"serviceAddressCity\":\"1\",\"isSolveTheProblem\":0,\"serviceAddress\":\"1\",\"signOut\":\"1\",\"updateTime\":1709281356261,\"customerNumber\":\"1\",\"params\":{},\"scenePhoto\":\"\",\"customerName\":\"1\",\"signInTime\":1709222400000,\"contractTitle\":\"1\",\"phoneNumber\":\"1\",\"submitTime\":1709222400000,\"createTime\":1709270771000,\"signIn\":\"1\",\"afterSalesTechnician\":\"1\",\"customerCommentsAndDemands\":\"1\",\"serviceOrderNumber\":\"1\",\"satisfactionValue\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:22:36');
+INSERT INTO `sys_oper_log` VALUES (367, '客户', 1, 'com.ruoyi.crm.controller.CrmCustomerController.add()', 'POST', 1, 'admin', NULL, '/crm/customer', '127.0.0.1', '内网IP', '{\"code\":\"1\",\"remark\":\"1\",\"id\":4,\"owner\":\"admin\",\"dealStatus\":\"0\",\"params\":{},\"linkman\":\"1\",\"createBy\":\"admin\",\"createTime\":1709281545797,\"phone\":\"13599599983\",\"name\":\"1\",\"status\":\"1\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:25:45');
+INSERT INTO `sys_oper_log` VALUES (368, '跟进记录', 1, 'com.ruoyi.crm.controller.CrmCommentController.add()', 'POST', 1, 'admin', NULL, '/crm/comment', '127.0.0.1', '内网IP', '{\"nextFollowupTime\":1709308800000,\"customerId\":4,\"content\":\"111\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:25:58');
+INSERT INTO `sys_oper_log` VALUES (369, '跟进记录', 1, 'com.ruoyi.crm.controller.CrmCommentController.add()', 'POST', 1, 'admin', NULL, '/crm/comment', '127.0.0.1', '内网IP', '{\"nextFollowupTime\":1709308800000,\"customerId\":4,\"content\":\"客户同意签合同\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:30:30');
+INSERT INTO `sys_oper_log` VALUES (370, '订单', 1, 'com.ruoyi.crm.controller.CrmOrderController.add()', 'POST', 1, 'admin', NULL, '/crm/order', '127.0.0.1', '内网IP', '{\"owner\":\"admin\",\"amount\":10000,\"orderNo\":\"226as26AS\",\"remark\":\"晚上五点签合同\",\"params\":{},\"createBy\":\"admin\",\"createTime\":1709281921186,\"customerId\":4,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:32:01');
+INSERT INTO `sys_oper_log` VALUES (371, '订单', 2, 'com.ruoyi.crm.controller.CrmOrderController.approve()', 'PUT', 1, 'admin', NULL, '/crm/order/approve/1', '127.0.0.1', '内网IP', '1', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:34:32');
+INSERT INTO `sys_oper_log` VALUES (372, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"联系人\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"person\",\"component\":\"crm/person/index\",\"children\":[],\"createTime\":1709264022000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2020,\"menuType\":\"C\",\"perms\":\"system:person:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:44:43');
+INSERT INTO `sys_oper_log` VALUES (373, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"商机\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"business\",\"component\":\"crm/business/index\",\"children\":[],\"createTime\":1709264047000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2026,\"menuType\":\"C\",\"perms\":\"system:business:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:45:21');
+INSERT INTO `sys_oper_log` VALUES (374, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"跟进计划\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"plan\",\"component\":\"crm/plan/index\",\"children\":[],\"createTime\":1709277773000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2041,\"menuType\":\"C\",\"perms\":\"system:plan:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:45:47');
+INSERT INTO `sys_oper_log` VALUES (375, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"example\",\"orderNum\":\"504\",\"menuName\":\"跟进记录\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"record\",\"children\":[],\"createTime\":1709276028000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2034,\"menuType\":\"M\",\"perms\":\"\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:45:58');
+INSERT INTO `sys_oper_log` VALUES (376, '菜单管理', 3, 'com.ruoyi.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', NULL, '/system/menu/2018', '127.0.0.1', '内网IP', '{menuId=2018}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:46:07');
+INSERT INTO `sys_oper_log` VALUES (377, '菜单管理', 3, 'com.ruoyi.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', NULL, '/system/menu/2019', '127.0.0.1', '内网IP', '{menuId=2019}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:46:16');
+INSERT INTO `sys_oper_log` VALUES (378, '菜单管理', 3, 'com.ruoyi.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', NULL, '/system/menu/2033', '127.0.0.1', '内网IP', '{menuId=2033}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:46:20');
+INSERT INTO `sys_oper_log` VALUES (379, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"跟进记录\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"record\",\"component\":\"crm/record/index\",\"children\":[],\"createTime\":1709277785000,\"isFrame\":\"1\",\"menuId\":2047,\"menuType\":\"C\",\"perms\":\"system:record:list\",\"status\":\"0\"}', '{\"msg\":\"修改菜单\'跟进记录\'失败,菜单名称已存在\",\"code\":500}', 0, NULL, '2024-03-01 16:48:32');
+INSERT INTO `sys_oper_log` VALUES (380, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"跟进记录1\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"record\",\"component\":\"crm/record/index\",\"children\":[],\"createTime\":1709277785000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2047,\"menuType\":\"C\",\"perms\":\"system:record:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:48:52');
+INSERT INTO `sys_oper_log` VALUES (381, '菜单管理', 3, 'com.ruoyi.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', NULL, '/system/menu/2034', '127.0.0.1', '内网IP', '{menuId=2034}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:48:59');
+INSERT INTO `sys_oper_log` VALUES (382, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"跟进记录\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"record\",\"component\":\"crm/record/index\",\"children\":[],\"createTime\":1709277785000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2047,\"menuType\":\"C\",\"perms\":\"system:record:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:49:12');
+INSERT INTO `sys_oper_log` VALUES (383, '线索', 1, 'com.ruoyi.crm.controller.CrmCluesController.add()', 'POST', 1, 'admin', NULL, '/crm/clues', '127.0.0.1', '内网IP', '{\"cluesName\":\"1\",\"cluesStatus\":\"有效\",\"remark\":\"1\",\"id\":5,\"owner\":\"admin\",\"dealStatus\":\"0\",\"params\":{},\"linkman\":\"1\",\"createBy\":\"admin\",\"createTime\":1709283384768,\"phone\":\"13599599983\",\"cluesSource\":\"电话\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:56:24');
+INSERT INTO `sys_oper_log` VALUES (384, '线索', 2, 'com.ruoyi.crm.controller.CrmCluesController.toCustomer()', 'PUT', 1, 'admin', NULL, '/crm/clues/to-customer', '127.0.0.1', '内网IP', '{\"customerStatus\":\"测试客户\",\"customerRank\":\"A\",\"name\":\"1\",\"id\":5}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:56:47');
+INSERT INTO `sys_oper_log` VALUES (385, '客户', 2, 'com.ruoyi.crm.controller.CrmCustomerController.edit()', 'PUT', 1, 'admin', NULL, '/crm/customer', '127.0.0.1', '内网IP', '{\"nextFollowupTime\":1709308800000,\"code\":\"111\",\"customerRank\":\"A\",\"cluesName\":\"\",\"cluesStatus\":\"\",\"lastFollowupTime\":1709281831000,\"remark\":\"111\",\"delFlag\":\"0\",\"customerStatus\":\"测试客户\",\"updateBy\":\"admin\",\"id\":4,\"owner\":\"admin\",\"preOwner\":\"\",\"customerIndustry\":\"房地产\",\"updateTime\":1709283434328,\"dealStatus\":\"1\",\"params\":{},\"poolType\":\"\",\"version\":0,\"lastUpdateRecord\":\"客户同意签合同\",\"linkman\":\"111\",\"createBy\":\"admin\",\"createTime\":1709281546000,\"phone\":\"13599599983\",\"name\":\"111\",\"cluesSource\":\"\",\"region\":\"北京市\",\"status\":\"1\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-01 16:57:14');
+INSERT INTO `sys_oper_log` VALUES (386, '线索', 2, 'com.ruoyi.crm.controller.CrmCluesController.toCustomer()', 'PUT', 1, 'admin', NULL, '/crm/clues/to-customer', '127.0.0.1', '内网IP', '{\"customerStatus\":\"测试客户\",\"customerRank\":\"B\",\"name\":\"5555\",\"id\":2}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 09:20:46');
+INSERT INTO `sys_oper_log` VALUES (387, '联系人', 1, 'com.ruoyi.system.controller.ContactPersonController.test()', 'POST', 1, 'admin', NULL, '/system/person/test', '127.0.0.1', '内网IP', '{\"name\":\"1\",\"phoneNumber\":\"13599599983\",\"wxNumber\":\"1\",\"mailNumber\":\"16545118@qq.com\"}', '{\"msg\":\"s\",\"code\":200}', 0, NULL, '2024-03-04 11:06:47');
+INSERT INTO `sys_oper_log` VALUES (388, '联系人', 1, 'com.ruoyi.system.controller.ContactPersonController.test()', 'POST', 1, 'admin', NULL, '/system/person/test', '127.0.0.1', '内网IP', '{\"name\":\"1\",\"phoneNumber\":\"13599599983\",\"customerId\":\"\",\"wxNumber\":\"1\",\"mailNumber\":\"16545118@qq.com\"}', '{\"msg\":\"s\",\"code\":200}', 0, NULL, '2024-03-04 11:09:55');
+INSERT INTO `sys_oper_log` VALUES (389, '联系人', 1, 'com.ruoyi.system.controller.ContactPersonController.test()', 'POST', 1, 'admin', NULL, '/system/person/test', '127.0.0.1', '内网IP', '{\"name\":\"1\",\"phoneNumber\":\"13599599983\",\"customerId\":3,\"wxNumber\":\"1\",\"mailNumber\":\"16545118@qq.com\"}', '{\"msg\":\"s\",\"code\":200}', 0, NULL, '2024-03-04 11:10:54');
+INSERT INTO `sys_oper_log` VALUES (390, '联系人', 1, 'com.ruoyi.system.controller.ContactPersonController.test()', 'POST', 1, 'admin', NULL, '/system/person/test', '127.0.0.1', '内网IP', '{\"name\":\"1\",\"phoneNumber\":\"13599599983\",\"customerId\":3,\"wxNumber\":\"1\",\"mailNumber\":\"16545118@qq.com\"}', '{\"msg\":\"s\",\"code\":200}', 0, NULL, '2024-03-04 11:12:29');
+INSERT INTO `sys_oper_log` VALUES (391, '联系人', 1, 'com.ruoyi.system.controller.ContactPersonController.add()', 'POST', 1, 'admin', NULL, '/system/person', '127.0.0.1', '内网IP', '{\"mailNumber\":\"16545118@qq.com\",\"customerId\":3,\"id\":3,\"wxNumber\":\"sadaw123\",\"params\":{},\"phoneNumber\":\"13599599983\",\"createTime\":1709522148091,\"name\":\"张三\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 11:15:48');
+INSERT INTO `sys_oper_log` VALUES (392, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"1\",\"menuName\":\"联系人\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"person\",\"component\":\"crm/person/index\",\"children\":[],\"createTime\":1709264022000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2020,\"menuType\":\"C\",\"perms\":\"system:person:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 12:04:59');
+INSERT INTO `sys_oper_log` VALUES (393, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"100\",\"menuName\":\"我的客户\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"person\",\"component\":\"crm/customer\",\"children\":[],\"createTime\":1641987734000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2012,\"menuType\":\"C\",\"perms\":\"crm:customer:person:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 13:10:01');
+INSERT INTO `sys_oper_log` VALUES (394, '菜单管理', 2, 'com.ruoyi.web.controller.system.SysMenuController.edit()', 'PUT', 1, 'admin', NULL, '/system/menu', '127.0.0.1', '内网IP', '{\"visible\":\"0\",\"icon\":\"#\",\"orderNum\":\"100\",\"menuName\":\"我的客户\",\"params\":{},\"parentId\":2008,\"isCache\":\"0\",\"path\":\"person\",\"component\":\"crm/customer/person-list\",\"children\":[],\"createTime\":1641987734000,\"updateBy\":\"admin\",\"isFrame\":\"1\",\"menuId\":2012,\"menuType\":\"C\",\"perms\":\"crm:customer:person:list\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 13:10:53');
+INSERT INTO `sys_oper_log` VALUES (395, '联系人', 1, 'com.ruoyi.crm.system.controller.ContactPersonController.add()', 'POST', 1, 'admin', NULL, '/system/person', '127.0.0.1', '内网IP', '{\"mailNumber\":\"16545118@qq.com\",\"customerId\":3,\"id\":4,\"wxNumber\":\"11111111111111111\",\"params\":{},\"phoneNumber\":\"13599599983\",\"createTime\":1709539122371,\"name\":\"1111111\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 15:58:42');
+INSERT INTO `sys_oper_log` VALUES (396, '联系人', 1, 'com.ruoyi.crm.system.controller.ContactPersonController.add()', 'POST', 1, 'admin', NULL, '/system/person', '127.0.0.1', '内网IP', '{\"mailNumber\":\"484648559@qq.com\",\"customerId\":3,\"id\":5,\"wxNumber\":\"2222222222\",\"params\":{},\"phoneNumber\":\"13599599983\",\"createTime\":1709539130542,\"name\":\"222222222\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 15:58:50');
+INSERT INTO `sys_oper_log` VALUES (397, '字典数据', 2, 'com.ruoyi.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"0\",\"listClass\":\"primary\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"需求发现\",\"createBy\":\"admin\",\"default\":false,\"isDefault\":\"N\",\"createTime\":1709264861000,\"dictCode\":132,\"updateBy\":\"admin\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:50:22');
+INSERT INTO `sys_oper_log` VALUES (398, '字典数据', 2, 'com.ruoyi.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"1\",\"listClass\":\"success\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"需求确认\",\"createBy\":\"admin\",\"default\":false,\"isDefault\":\"N\",\"createTime\":1709264870000,\"dictCode\":133,\"updateBy\":\"admin\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:50:48');
+INSERT INTO `sys_oper_log` VALUES (399, '字典数据', 2, 'com.ruoyi.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"2\",\"listClass\":\"info\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"方案报价\",\"createBy\":\"admin\",\"default\":false,\"isDefault\":\"N\",\"createTime\":1709264884000,\"dictCode\":134,\"updateBy\":\"admin\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:51:09');
+INSERT INTO `sys_oper_log` VALUES (400, '字典数据', 2, 'com.ruoyi.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"3\",\"listClass\":\"warning\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"商务谈判\",\"createBy\":\"admin\",\"default\":false,\"isDefault\":\"N\",\"createTime\":1709264904000,\"dictCode\":135,\"updateBy\":\"admin\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:51:31');
+INSERT INTO `sys_oper_log` VALUES (401, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"4\",\"listClass\":\"success\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"交易成功\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:52:15');
+INSERT INTO `sys_oper_log` VALUES (402, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"5\",\"listClass\":\"danger\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"交易失败\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:52:31');
+INSERT INTO `sys_oper_log` VALUES (403, '字典数据', 1, 'com.ruoyi.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', NULL, '/system/dict/data', '127.0.0.1', '内网IP', '{\"dictValue\":\"6\",\"listClass\":\"warning\",\"dictSort\":0,\"params\":{},\"dictType\":\"sales_stage\",\"dictLabel\":\"无效\",\"createBy\":\"admin\",\"default\":false,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 16:52:53');
+INSERT INTO `sys_oper_log` VALUES (404, '商机', 2, 'com.ruoyi.crm.system.controller.BusinessController.edit()', 'PUT', 1, 'admin', NULL, '/system/business', '127.0.0.1', '内网IP', '{\"salesStage\":2,\"id\":1,\"updateTime\":1709543591441,\"params\":{}}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 17:13:11');
+INSERT INTO `sys_oper_log` VALUES (405, '商机', 2, 'com.ruoyi.crm.system.controller.BusinessController.edit()', 'PUT', 1, 'admin', NULL, '/system/business', '127.0.0.1', '内网IP', '{\"salesStage\":2,\"id\":1,\"updateTime\":1709543667797,\"params\":{}}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-04 17:14:27');
+INSERT INTO `sys_oper_log` VALUES (406, '跟进记录', 1, 'com.ruoyi.crm.system.controller.BusinessController.addRecords()', 'POST', 1, 'admin', NULL, '/system/business/addRecords', '127.0.0.1', '内网IP', '{\"followUpContent\":\"商机已确认,客户已确认,即将报价\",\"customerNumber\":\"zy_202403051\",\"params\":{},\"title\":\"商机已确认\",\"followUpRecord\":\"客户已确认,即将报价\",\"createTime\":1709604306204}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 10:05:06');
+INSERT INTO `sys_oper_log` VALUES (407, '商机', 2, 'com.ruoyi.crm.system.controller.BusinessController.edit()', 'PUT', 1, 'admin', NULL, '/system/business', '127.0.0.1', '内网IP', '{\"salesStage\":2,\"id\":1,\"updateTime\":1709604306183,\"params\":{}}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 10:05:06');
+INSERT INTO `sys_oper_log` VALUES (408, '跟进记录', 1, 'com.ruoyi.crm.controller.CrmCommentController.add()', 'POST', 1, 'admin', NULL, '/crm/comment', '127.0.0.1', '内网IP', '{\"nextFollowupTime\":1710172800000,\"customerId\":2,\"content\":\"1\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 11:31:10');
+INSERT INTO `sys_oper_log` VALUES (409, '商机', 5, 'com.ruoyi.crm.system.controller.BusinessController.export()', 'POST', 1, 'admin', NULL, '/system/business/export', '127.0.0.1', '内网IP', '{\"params\":{}}', NULL, 0, NULL, '2024-03-05 15:35:32');
+INSERT INTO `sys_oper_log` VALUES (410, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', '{\"code\":200}', 0, NULL, '2024-03-05 16:27:32');
+INSERT INTO `sys_oper_log` VALUES (411, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 1 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 16:31:16');
+INSERT INTO `sys_oper_log` VALUES (412, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 1 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 16:53:19');
+INSERT INTO `sys_oper_log` VALUES (413, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 www 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 16:54:53');
+INSERT INTO `sys_oper_log` VALUES (414, '商机', 1, 'com.ruoyi.crm.system.controller.BusinessController.add()', 'POST', 1, 'admin', NULL, '/system/business', '127.0.0.1', '内网IP', '{\"salesStage\":0,\"id\":2,\"stageType\":0,\"businessNumber\":\"qqq\",\"params\":{},\"createTime\":1709629080530}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 16:58:00');
+INSERT INTO `sys_oper_log` VALUES (415, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 www 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:02:34');
+INSERT INTO `sys_oper_log` VALUES (416, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 www 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:04:58');
+INSERT INTO `sys_oper_log` VALUES (417, '用户管理', 6, 'com.ruoyi.web.controller.system.SysUserController.importData()', 'POST', 1, 'admin', NULL, '/system/user/importData', '127.0.0.1', '内网IP', 'false', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、账号 ret 导入成功\",\"code\":200}', 0, NULL, '2024-03-05 17:08:23');
+INSERT INTO `sys_oper_log` VALUES (418, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 www 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:18:20');
+INSERT INTO `sys_oper_log` VALUES (419, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '', '2024-03-05 17:20:14');
+INSERT INTO `sys_oper_log` VALUES (420, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '', '2024-03-05 17:21:40');
+INSERT INTO `sys_oper_log` VALUES (421, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 www 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:23:01');
+INSERT INTO `sys_oper_log` VALUES (422, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 asdasd 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:27:40');
+INSERT INTO `sys_oper_log` VALUES (423, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 asdasd 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:31:18');
+INSERT INTO `sys_oper_log` VALUES (424, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 asdasd 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:40:20');
+INSERT INTO `sys_oper_log` VALUES (425, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 asdasd 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:42:07');
+INSERT INTO `sys_oper_log` VALUES (426, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', NULL, 1, '很抱歉,导入失败!共 1 条数据格式不正确,错误如下:
1、商机编号 asdasd 导入失败:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=\'businessNumber\', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId=\'null\', jdbcTypeName=\'null\', expression=\'null\'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long', '2024-03-05 17:43:49');
+INSERT INTO `sys_oper_log` VALUES (427, '用户管理', 6, 'com.ruoyi.crm.system.controller.BusinessController.importData()', 'POST', 1, 'admin', NULL, '/system/business/importData', '127.0.0.1', '内网IP', 'false', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、商机编号 7 导入成功\",\"code\":200}', 0, NULL, '2024-03-05 17:48:46');
+INSERT INTO `sys_oper_log` VALUES (428, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"params\":{},\"createTime\":1709646557473}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 21:49:17');
+INSERT INTO `sys_oper_log` VALUES (429, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709740800000,\"params\":{},\"createTime\":1709646855016}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 21:54:15');
+INSERT INTO `sys_oper_log` VALUES (430, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709827200000,\"params\":{},\"createTime\":1709646939674}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 21:55:39');
+INSERT INTO `sys_oper_log` VALUES (431, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709740800000,\"params\":{},\"createTime\":1709647106098}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 21:58:26');
+INSERT INTO `sys_oper_log` VALUES (432, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709827200000,\"params\":{},\"content\":\"ccccccc\",\"createTime\":1709647194420,\"customerId\":2}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 21:59:54');
+INSERT INTO `sys_oper_log` VALUES (433, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709913600000,\"params\":{},\"content\":\"vvvvvvvvv\",\"createTime\":1709647294770,\"customerId\":2}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-05 22:01:34');
+INSERT INTO `sys_oper_log` VALUES (434, '跟进记录', 1, 'com.ruoyi.crm.system.controller.FollowUpRecordController.add()', 'POST', 1, 'admin', NULL, '/system/record', '127.0.0.1', '内网IP', '{\"followUpTime\":1709740800000,\"params\":{},\"content\":\"wwww\",\"createTime\":1709692231599,\"customerId\":2}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2024-03-06 10:30:31');
+
+-- ----------------------------
+-- Table structure for sys_post
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_post`;
+CREATE TABLE `sys_post` (
+ `post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
+ `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位编码',
+ `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位名称',
+ `post_sort` int(4) NOT NULL COMMENT '显示顺序',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态(0正常 1停用)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`post_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位信息表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_post
+-- ----------------------------
+INSERT INTO `sys_post` VALUES (1, 'ceo', '董事长', 1, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_post` VALUES (2, 'se', '项目经理', 2, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_post` VALUES (3, 'hr', '人力资源', 3, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+INSERT INTO `sys_post` VALUES (4, 'user', '普通员工', 4, '0', 'admin', '2022-01-11 19:11:40', '', NULL, '');
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+ `role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+ `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色名称',
+ `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色权限字符串',
+ `role_sort` int(4) NOT NULL COMMENT '显示顺序',
+ `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
+ `menu_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '菜单树选择项是否关联显示',
+ `dept_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '部门树选择项是否关联显示',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色状态(0正常 1停用)',
+ `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`role_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 1, '0', '0', 'admin', '2022-01-11 19:11:40', '', NULL, '超级管理员');
+INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, '2', 1, 1, '0', '0', 'admin', '2022-01-11 19:11:40', 'admin', '2022-01-14 00:24:25', '普通角色');
+
+-- ----------------------------
+-- Table structure for sys_role_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_dept`;
+CREATE TABLE `sys_role_dept` (
+ `role_id` bigint(20) NOT NULL COMMENT '角色ID',
+ `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
+ PRIMARY KEY (`role_id`, `dept_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和部门关联表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_role_dept
+-- ----------------------------
+INSERT INTO `sys_role_dept` VALUES (2, 100);
+INSERT INTO `sys_role_dept` VALUES (2, 101);
+INSERT INTO `sys_role_dept` VALUES (2, 105);
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+ `role_id` bigint(20) NOT NULL COMMENT '角色ID',
+ `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
+ PRIMARY KEY (`role_id`, `menu_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+INSERT INTO `sys_role_menu` VALUES (2, 1);
+INSERT INTO `sys_role_menu` VALUES (2, 2);
+INSERT INTO `sys_role_menu` VALUES (2, 3);
+INSERT INTO `sys_role_menu` VALUES (2, 100);
+INSERT INTO `sys_role_menu` VALUES (2, 101);
+INSERT INTO `sys_role_menu` VALUES (2, 102);
+INSERT INTO `sys_role_menu` VALUES (2, 103);
+INSERT INTO `sys_role_menu` VALUES (2, 104);
+INSERT INTO `sys_role_menu` VALUES (2, 105);
+INSERT INTO `sys_role_menu` VALUES (2, 106);
+INSERT INTO `sys_role_menu` VALUES (2, 107);
+INSERT INTO `sys_role_menu` VALUES (2, 108);
+INSERT INTO `sys_role_menu` VALUES (2, 109);
+INSERT INTO `sys_role_menu` VALUES (2, 110);
+INSERT INTO `sys_role_menu` VALUES (2, 111);
+INSERT INTO `sys_role_menu` VALUES (2, 112);
+INSERT INTO `sys_role_menu` VALUES (2, 113);
+INSERT INTO `sys_role_menu` VALUES (2, 114);
+INSERT INTO `sys_role_menu` VALUES (2, 115);
+INSERT INTO `sys_role_menu` VALUES (2, 116);
+INSERT INTO `sys_role_menu` VALUES (2, 500);
+INSERT INTO `sys_role_menu` VALUES (2, 501);
+INSERT INTO `sys_role_menu` VALUES (2, 1001);
+INSERT INTO `sys_role_menu` VALUES (2, 1002);
+INSERT INTO `sys_role_menu` VALUES (2, 1003);
+INSERT INTO `sys_role_menu` VALUES (2, 1004);
+INSERT INTO `sys_role_menu` VALUES (2, 1005);
+INSERT INTO `sys_role_menu` VALUES (2, 1006);
+INSERT INTO `sys_role_menu` VALUES (2, 1007);
+INSERT INTO `sys_role_menu` VALUES (2, 1008);
+INSERT INTO `sys_role_menu` VALUES (2, 1009);
+INSERT INTO `sys_role_menu` VALUES (2, 1010);
+INSERT INTO `sys_role_menu` VALUES (2, 1011);
+INSERT INTO `sys_role_menu` VALUES (2, 1012);
+INSERT INTO `sys_role_menu` VALUES (2, 1013);
+INSERT INTO `sys_role_menu` VALUES (2, 1014);
+INSERT INTO `sys_role_menu` VALUES (2, 1015);
+INSERT INTO `sys_role_menu` VALUES (2, 1016);
+INSERT INTO `sys_role_menu` VALUES (2, 1017);
+INSERT INTO `sys_role_menu` VALUES (2, 1018);
+INSERT INTO `sys_role_menu` VALUES (2, 1019);
+INSERT INTO `sys_role_menu` VALUES (2, 1020);
+INSERT INTO `sys_role_menu` VALUES (2, 1021);
+INSERT INTO `sys_role_menu` VALUES (2, 1022);
+INSERT INTO `sys_role_menu` VALUES (2, 1023);
+INSERT INTO `sys_role_menu` VALUES (2, 1024);
+INSERT INTO `sys_role_menu` VALUES (2, 1025);
+INSERT INTO `sys_role_menu` VALUES (2, 1026);
+INSERT INTO `sys_role_menu` VALUES (2, 1027);
+INSERT INTO `sys_role_menu` VALUES (2, 1028);
+INSERT INTO `sys_role_menu` VALUES (2, 1029);
+INSERT INTO `sys_role_menu` VALUES (2, 1030);
+INSERT INTO `sys_role_menu` VALUES (2, 1031);
+INSERT INTO `sys_role_menu` VALUES (2, 1032);
+INSERT INTO `sys_role_menu` VALUES (2, 1033);
+INSERT INTO `sys_role_menu` VALUES (2, 1034);
+INSERT INTO `sys_role_menu` VALUES (2, 1035);
+INSERT INTO `sys_role_menu` VALUES (2, 1036);
+INSERT INTO `sys_role_menu` VALUES (2, 1037);
+INSERT INTO `sys_role_menu` VALUES (2, 1038);
+INSERT INTO `sys_role_menu` VALUES (2, 1039);
+INSERT INTO `sys_role_menu` VALUES (2, 1040);
+INSERT INTO `sys_role_menu` VALUES (2, 1041);
+INSERT INTO `sys_role_menu` VALUES (2, 1042);
+INSERT INTO `sys_role_menu` VALUES (2, 1043);
+INSERT INTO `sys_role_menu` VALUES (2, 1044);
+INSERT INTO `sys_role_menu` VALUES (2, 1045);
+INSERT INTO `sys_role_menu` VALUES (2, 1046);
+INSERT INTO `sys_role_menu` VALUES (2, 1047);
+INSERT INTO `sys_role_menu` VALUES (2, 1048);
+INSERT INTO `sys_role_menu` VALUES (2, 1049);
+INSERT INTO `sys_role_menu` VALUES (2, 1050);
+INSERT INTO `sys_role_menu` VALUES (2, 1051);
+INSERT INTO `sys_role_menu` VALUES (2, 1052);
+INSERT INTO `sys_role_menu` VALUES (2, 1053);
+INSERT INTO `sys_role_menu` VALUES (2, 1054);
+INSERT INTO `sys_role_menu` VALUES (2, 1055);
+INSERT INTO `sys_role_menu` VALUES (2, 1056);
+INSERT INTO `sys_role_menu` VALUES (2, 1057);
+INSERT INTO `sys_role_menu` VALUES (2, 1058);
+INSERT INTO `sys_role_menu` VALUES (2, 1059);
+INSERT INTO `sys_role_menu` VALUES (2, 1060);
+INSERT INTO `sys_role_menu` VALUES (2, 2006);
+INSERT INTO `sys_role_menu` VALUES (2, 2007);
+INSERT INTO `sys_role_menu` VALUES (2, 2008);
+INSERT INTO `sys_role_menu` VALUES (2, 2009);
+INSERT INTO `sys_role_menu` VALUES (2, 2010);
+INSERT INTO `sys_role_menu` VALUES (2, 2012);
+INSERT INTO `sys_role_menu` VALUES (2, 2014);
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+ `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
+ `dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID',
+ `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号',
+ `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户昵称',
+ `user_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '00' COMMENT '用户类型(00系统用户)',
+ `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户邮箱',
+ `phonenumber` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '手机号码',
+ `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
+ `avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '头像地址',
+ `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '密码',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
+ `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
+ `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最后登录IP',
+ `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
+ `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`user_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 104 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES (1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2024-03-06 10:29:56', 'admin', '2022-01-11 19:11:40', '', '2024-03-06 10:29:56', '管理员');
+INSERT INTO `sys_user` VALUES (2, 105, 'ry', '若依-Tenant-1', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2022-01-11 19:11:40', 'admin', '2022-01-11 19:11:40', 'admin', '2022-01-11 19:14:51', '测试员');
+INSERT INTO `sys_user` VALUES (100, NULL, '234234', '34234234', '00', '', '', '0', '', '$2a$10$yBLvNuj5ifOmi07klqlZWenVv3eF.aYo1wzatgAtsFEzot1RGK/kq', '0', '2', '', NULL, 'admin', '2022-01-12 11:03:06', '', NULL, NULL);
+INSERT INTO `sys_user` VALUES (101, NULL, 'TenantUser01', 'TenantUser01', '00', '', '', '0', '', '$2a$10$nBpTvNi//kRZbY.vT0057OKe71HlUZsKQIBcmg2rTLVaJVFM0A5uK', '0', '0', '127.0.0.1', '2022-01-14 10:01:20', 'admin', '2022-01-14 00:24:02', 'admin', '2022-01-14 10:01:20', NULL);
+INSERT INTO `sys_user` VALUES (103, 1, 'ret', 'ret', '00', '264985664@qq.com', '18750540617', '0', '', '$2a$10$xuWJlYFpb5O.kiFCMBULbeyTR1zfAE1UzeqjW1Bo.lF9PyxUAGWS6', '0', '0', '', NULL, 'admin', '2024-03-05 17:08:23', '', NULL, NULL);
+
+-- ----------------------------
+-- Table structure for sys_user_post
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_post`;
+CREATE TABLE `sys_user_post` (
+ `user_id` bigint(20) NOT NULL COMMENT '用户ID',
+ `post_id` bigint(20) NOT NULL COMMENT '岗位ID',
+ PRIMARY KEY (`user_id`, `post_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户与岗位关联表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_user_post
+-- ----------------------------
+INSERT INTO `sys_user_post` VALUES (1, 1);
+INSERT INTO `sys_user_post` VALUES (2, 2);
+
+-- ----------------------------
+-- Table structure for sys_user_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_role`;
+CREATE TABLE `sys_user_role` (
+ `user_id` bigint(20) NOT NULL COMMENT '用户ID',
+ `role_id` bigint(20) NOT NULL COMMENT '角色ID',
+ PRIMARY KEY (`user_id`, `role_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户和角色关联表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of sys_user_role
+-- ----------------------------
+INSERT INTO `sys_user_role` VALUES (1, 1);
+INSERT INTO `sys_user_role` VALUES (2, 2);
+INSERT INTO `sys_user_role` VALUES (101, 2);
+
+SET FOREIGN_KEY_CHECKS = 1;