Merge pull request '补充' (#19) from zzw into main
Reviewed-on: http://120.46.37.243:3000/scrm/alikeSCRM/pulls/19
This commit is contained in:
commit
55d2cebc6b
8
pom.xml
8
pom.xml
@ -227,6 +227,13 @@
|
||||
<version>${ruoyi.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- MongoDB服务模块 -->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-mongodb</artifactId>
|
||||
<version>${ruoyi.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
@ -237,6 +244,7 @@
|
||||
<module>ruoyi-common</module>
|
||||
<module>ruoyi-tenant</module>
|
||||
<module>ruoyi-crm</module>
|
||||
<module>ruoyi-mongodb</module>
|
||||
</modules>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
|
@ -67,6 +67,13 @@
|
||||
<artifactId>ruoyi-crm</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- MongoDB服务模块 -->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-mongodb</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.web.controller.system;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
@ -88,6 +89,20 @@ public class SysDeptController extends BaseController
|
||||
return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务工单指定销售人员
|
||||
* @param dept
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/designatedPerson")
|
||||
public AjaxResult designatedPerson(SysDept dept)
|
||||
{
|
||||
List<SysDept> depts = deptService.selectDeptList(dept);
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
|
||||
return AjaxResult.success(depts);
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载对应角色部门列表树
|
||||
*/
|
||||
|
@ -9,6 +9,8 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.crm.domain.CrmCustomer;
|
||||
import com.ruoyi.crm.domain.enums.CustomerFolder;
|
||||
import com.ruoyi.crm.service.ICrmCustomerService;
|
||||
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.*;
|
||||
@ -17,6 +19,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 客户Controller
|
||||
@ -30,6 +33,8 @@ public class CrmCustomerController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ICrmCustomerService crmCustomerService;
|
||||
@Autowired
|
||||
private IContactPersonService contactPersonService;
|
||||
|
||||
/**
|
||||
* 查询成交客户列表
|
||||
@ -136,7 +141,7 @@ public class CrmCustomerController extends BaseController
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
//根据当前时间生成客户编号
|
||||
crmCustomer.setCode("zy_"+formattedDate+crmCustomer.getId());
|
||||
crmCustomer.setCode("zy_"+formattedDate+crmCustomer.getId()+ UUID.randomUUID().toString().replace("-","").substring(0,6));
|
||||
return toAjax(crmCustomerService.insertCrmCustomer(crmCustomer));
|
||||
}
|
||||
|
||||
@ -148,7 +153,27 @@ public class CrmCustomerController extends BaseController
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody CrmCustomer crmCustomer)
|
||||
{
|
||||
//修改客户联系人时同步联系人信息(临时逻辑)
|
||||
//找到这个客户原先联系人信息
|
||||
CrmCustomer customerById = crmCustomerService.selectCrmCustomerById(crmCustomer.getId());
|
||||
ContactPerson contactPerson = new ContactPerson();
|
||||
//设置更新者
|
||||
crmCustomer.setUpdateBy(getUsername());
|
||||
//封装联系人信息
|
||||
contactPerson.setName(customerById.getLinkman());
|
||||
contactPerson.setPhoneNumber(customerById.getPhone());
|
||||
//查出联系人
|
||||
List<ContactPerson> list = contactPersonService.selectContactPersonList(contactPerson);
|
||||
for (ContactPerson person : list) {
|
||||
//找出对应联系人信息
|
||||
if (customerById.getLinkman().equals(person.getName()) && customerById.getPhone().equals(person.getPhoneNumber())){
|
||||
contactPerson.setPhoneNumber(crmCustomer.getPhone());
|
||||
contactPerson.setName(crmCustomer.getLinkman());
|
||||
contactPerson.setId(person.getId());
|
||||
//修改联系人
|
||||
contactPersonService.updateContactPerson(contactPerson);
|
||||
}
|
||||
}
|
||||
return toAjax(crmCustomerService.updateCrmCustomer(crmCustomer));
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,8 @@ 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.domain.CrmCustomer;
|
||||
import com.ruoyi.crm.service.ICrmCustomerService;
|
||||
import com.ruoyi.crm.system.domain.ContactPerson;
|
||||
import com.ruoyi.crm.system.service.IContactPersonService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -27,6 +29,8 @@ public class ContactPersonController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IContactPersonService contactPersonService;
|
||||
@Autowired
|
||||
private ICrmCustomerService crmCustomerService;
|
||||
|
||||
/**
|
||||
* 查询联系人列表
|
||||
@ -82,6 +86,14 @@ public class ContactPersonController extends BaseController
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ContactPerson contactPerson)
|
||||
{
|
||||
//临时逻辑
|
||||
//未变动前的联系人
|
||||
ContactPerson contactPersonById = contactPersonService.selectContactPersonById(contactPerson.getId());
|
||||
//该联系人关联的客户
|
||||
CrmCustomer crmCustomer = crmCustomerService.selectCrmCustomerById(contactPersonById.getCustomerId());
|
||||
crmCustomer.setLinkman(contactPerson.getName());
|
||||
crmCustomer.setPhone(contactPerson.getPhoneNumber());
|
||||
crmCustomerService.updateCrmCustomer(crmCustomer);
|
||||
return toAjax(contactPersonService.updateContactPerson(contactPerson));
|
||||
}
|
||||
|
||||
|
42
ruoyi-mongodb/pom.xml
Normal file
42
ruoyi-mongodb/pom.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<version>3.8.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ruoyi-mongodb</artifactId>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- 通用工具-->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- System模块-->
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<!--MongoDB依赖-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-mongodb</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
@ -0,0 +1,35 @@
|
||||
package com.ruoyi.mongodb.conreoller;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.mongodb.domain.DynamicData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
public class DynamicDataController {
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
//保存数据
|
||||
@PostMapping("/saveDynamicData")
|
||||
public AjaxResult saveDynamicData(@RequestBody Map<String, Object> requestData) {
|
||||
DynamicData dynamicData = new DynamicData();
|
||||
dynamicData.setData(requestData);
|
||||
mongoTemplate.save(dynamicData);
|
||||
return AjaxResult.success(dynamicData);
|
||||
}
|
||||
|
||||
//查询数据
|
||||
@GetMapping("/selectDynamicData")
|
||||
public AjaxResult selectDynamicData(String id) {
|
||||
DynamicData data = mongoTemplate.findById(id, DynamicData.class);
|
||||
return AjaxResult.success(data);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.ruoyi.mongodb.domain;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Document(collection = "dynamicData")
|
||||
public class DynamicData {
|
||||
@Id
|
||||
private String id;
|
||||
private Map<String, Object> data;
|
||||
|
||||
public DynamicData() {
|
||||
}
|
||||
|
||||
public DynamicData(String id, Map<String, Object> data) {
|
||||
this.id = id;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Map<String, Object> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Map<String, Object> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "DynamicData{" +
|
||||
"id='" + id + '\'' +
|
||||
", data=" + data +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -33,6 +33,14 @@ export function treeselect() {
|
||||
})
|
||||
}
|
||||
|
||||
// 查询服务工单下拉树结构
|
||||
export function designatedPerson() {
|
||||
return request({
|
||||
url: '/system/dept/designatedPerson',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据角色ID查询部门树结构
|
||||
export function roleDeptTreeselect(roleId) {
|
||||
return request({
|
||||
@ -65,4 +73,4 @@ export function delDept(deptId) {
|
||||
url: '/system/dept/' + deptId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 606 KiB |
BIN
ruoyi-ui/src/assets/images/men.png
Normal file
BIN
ruoyi-ui/src/assets/images/men.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
BIN
ruoyi-ui/src/assets/left-img.png
Normal file
BIN
ruoyi-ui/src/assets/left-img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 300 KiB |
BIN
ruoyi-ui/src/assets/login-bg.png
Normal file
BIN
ruoyi-ui/src/assets/login-bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 MiB |
@ -524,6 +524,7 @@
|
||||
:show-count="true"
|
||||
placeholder="请输入售后技术人员"
|
||||
/>
|
||||
<!-- <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>-->
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="服务地址(省/自治区/直辖市)" prop="serviceAddress">-->
|
||||
<!-- <el-input v-model="form.serviceAddress" placeholder="请输入服务地址(省/自治区/直辖市)" />-->
|
||||
@ -635,7 +636,7 @@
|
||||
import { listTicket, getTicket, delTicket, addTicket, updateTicket } from "@/api/crm/ticket";
|
||||
import CommentComponent from '../customer/Comment';
|
||||
import { listOrder } from "@/api/crm/order";
|
||||
import { treeselect } from '@/api/system/dept'
|
||||
import { designatedPerson } from '@/api/system/dept'
|
||||
import { dropDownList, getCustomer } from "@/api/crm/customer";
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
@ -673,6 +674,45 @@ export default {
|
||||
customerCustomerList: [],
|
||||
// 部门树选项
|
||||
deptOptions: undefined,
|
||||
data: [{
|
||||
label: '一级 1',
|
||||
children: [{
|
||||
label: '二级 1-1',
|
||||
// children: [{
|
||||
// label: '三级 1-1-1'
|
||||
// }]
|
||||
}]
|
||||
}, {
|
||||
label: '一级 2',
|
||||
children: [{
|
||||
label: '二级 2-1',
|
||||
// children: [{
|
||||
// label: '三级 2-1-1'
|
||||
// }]
|
||||
}, {
|
||||
label: '二级 2-2',
|
||||
// children: [{
|
||||
// label: '三级 2-2-1'
|
||||
// }]
|
||||
}]
|
||||
}, {
|
||||
label: '一级 3',
|
||||
children: [{
|
||||
label: '二级 3-1',
|
||||
// children: [{
|
||||
// label: '三级 3-1-1'
|
||||
// }]
|
||||
}, {
|
||||
label: '二级 3-2',
|
||||
// children: [{
|
||||
// label: '三级 3-2-1'
|
||||
// }]
|
||||
}]
|
||||
}],
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -753,9 +793,9 @@ export default {
|
||||
},
|
||||
/** 查询部门下拉树结构 */
|
||||
getTreeselect() {
|
||||
treeselect().then((response) => {
|
||||
designatedPerson().then((response) => {
|
||||
console.log(response,'res')
|
||||
this.deptOptions = response.data
|
||||
this.deptOptions.label = response.data.deptName
|
||||
})
|
||||
},
|
||||
//回显客户编号
|
||||
|
@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div class="login">
|
||||
<img src="@/assets/left-img.png">
|
||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||
<h3 class="title">众悦智能CRM系统</h3>
|
||||
<h3 class="title"></h3>
|
||||
<el-form-item prop="tenant">
|
||||
<el-input v-model="loginForm.tenant" type="text" auto-complete="off" placeholder="租户编号">
|
||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||
@ -164,7 +165,7 @@ export default {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
background-image: url('../assets/images/login-background.jpg');
|
||||
background-image: url('../assets/login-bg.png');
|
||||
background-size: cover;
|
||||
}
|
||||
.title {
|
||||
@ -174,9 +175,10 @@ export default {
|
||||
}
|
||||
|
||||
.login-form {
|
||||
border-radius: 6px;
|
||||
border-radius:0 6px 6px 0;
|
||||
background: #ffffff;
|
||||
width: 400px;
|
||||
height: 478px;
|
||||
padding: 25px 25px 5px 25px;
|
||||
.el-input {
|
||||
height: 38px;
|
||||
|
Loading…
Reference in New Issue
Block a user