指定售后人员
This commit is contained in:
parent
d26a8d9d30
commit
5830c6a0ff
@ -11,18 +11,13 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.crm.system.domain.DesigneeWrapperClass;
|
||||
import com.ruoyi.crm.system.domain.ServiceTicket;
|
||||
import com.ruoyi.crm.system.service.IServiceTicketService;
|
||||
import com.ruoyi.system.service.ISysDeptService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 服务工单Controller
|
||||
@ -36,10 +31,6 @@ public class ServiceTicketController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IServiceTicketService serviceTicketService;
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
@Autowired
|
||||
private ISysDeptService deptService;
|
||||
|
||||
/**
|
||||
* 查询服务工单列表
|
||||
@ -114,19 +105,7 @@ public class ServiceTicketController extends BaseController
|
||||
*/
|
||||
@GetMapping("/designatedPerson")
|
||||
public AjaxResult designatedPerson(SysUser user){
|
||||
ArrayList<DesigneeWrapperClass> designeeWrapperClassArrayList = new ArrayList<>();
|
||||
List<SysUser> sysUsers = userService.selectUserList(user);
|
||||
for (SysUser sysUser : sysUsers) {
|
||||
DesigneeWrapperClass designeeWrapperClass = new DesigneeWrapperClass();
|
||||
if (sysUser.getDept() != null){
|
||||
SysDept dept = sysUser.getDept();
|
||||
designeeWrapperClass.setLabel(dept.getDeptName());
|
||||
designeeWrapperClassArrayList.add(designeeWrapperClass);
|
||||
}
|
||||
}
|
||||
designeeWrapperClassArrayList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(HashSet::new), ArrayList::new));
|
||||
System.out.println(designeeWrapperClassArrayList.toString());
|
||||
return AjaxResult.success(designeeWrapperClassArrayList);
|
||||
return AjaxResult.success(serviceTicketService.designatedPersonService(user));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ public class ServiceTicket extends BaseEntity
|
||||
|
||||
/** 售后技术人员 */
|
||||
@Excel(name = "售后技术人员")
|
||||
private Integer afterSalesTechnician;
|
||||
private String afterSalesTechnician;
|
||||
|
||||
/** 服务地址(省/自治区/直辖市) */
|
||||
@Excel(name = "服务地址(省/自治区/直辖市)")
|
||||
@ -126,7 +126,7 @@ public class ServiceTicket extends BaseEntity
|
||||
private Integer customerSatisfaction;
|
||||
|
||||
/** 满意度数值 */
|
||||
@Excel(name = "满意度数值")
|
||||
// @Excel(name = "满意度数值")
|
||||
private Long satisfactionValue;
|
||||
|
||||
/** 客户意见与诉求 */
|
||||
@ -280,12 +280,12 @@ public class ServiceTicket extends BaseEntity
|
||||
{
|
||||
return demandServiceDay;
|
||||
}
|
||||
public void setAfterSalesTechnician(Integer afterSalesTechnician)
|
||||
public void setAfterSalesTechnician(String afterSalesTechnician)
|
||||
{
|
||||
this.afterSalesTechnician = afterSalesTechnician;
|
||||
}
|
||||
|
||||
public Integer getAfterSalesTechnician()
|
||||
public String getAfterSalesTechnician()
|
||||
{
|
||||
return afterSalesTechnician;
|
||||
}
|
||||
|
@ -1,8 +1,11 @@
|
||||
package com.ruoyi.crm.system.service;
|
||||
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.crm.system.domain.DesigneeWrapperClass;
|
||||
import com.ruoyi.crm.system.domain.ServiceTicket;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -60,4 +63,12 @@ public interface IServiceTicketService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteServiceTicketById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 指定员工树形数据
|
||||
* @param user
|
||||
* @return ArrayList<DesigneeWrapperClass>
|
||||
*/
|
||||
public ArrayList<DesigneeWrapperClass> designatedPersonService(SysUser user);
|
||||
}
|
||||
|
@ -1,12 +1,20 @@
|
||||
package com.ruoyi.crm.system.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysDept;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.crm.domain.CrmCustomer;
|
||||
import com.ruoyi.crm.service.ICrmCustomerService;
|
||||
import com.ruoyi.crm.system.domain.DesigneeWrapperClass;
|
||||
import com.ruoyi.crm.system.domain.ServiceTicket;
|
||||
import com.ruoyi.crm.system.mapper.ServiceTicketMapper;
|
||||
import com.ruoyi.crm.system.service.IServiceTicketService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -20,6 +28,10 @@ public class ServiceTicketServiceImpl implements IServiceTicketService
|
||||
{
|
||||
@Autowired
|
||||
private ServiceTicketMapper serviceTicketMapper;
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
@Autowired
|
||||
private ICrmCustomerService crmCustomerService;
|
||||
|
||||
/**
|
||||
* 查询服务工单
|
||||
@ -54,6 +66,8 @@ public class ServiceTicketServiceImpl implements IServiceTicketService
|
||||
@Override
|
||||
public int insertServiceTicket(ServiceTicket serviceTicket)
|
||||
{
|
||||
CrmCustomer crmCustomer = crmCustomerService.selectCrmCustomerById(serviceTicket.getSatisfactionValue());
|
||||
serviceTicket.setCustomerName(crmCustomer.getName());
|
||||
serviceTicket.setCreateTime(DateUtils.getNowDate());
|
||||
return serviceTicketMapper.insertServiceTicket(serviceTicket);
|
||||
}
|
||||
@ -67,6 +81,8 @@ public class ServiceTicketServiceImpl implements IServiceTicketService
|
||||
@Override
|
||||
public int updateServiceTicket(ServiceTicket serviceTicket)
|
||||
{
|
||||
CrmCustomer crmCustomer = crmCustomerService.selectCrmCustomerById(serviceTicket.getSatisfactionValue());
|
||||
serviceTicket.setCustomerName(crmCustomer.getName());
|
||||
serviceTicket.setUpdateTime(DateUtils.getNowDate());
|
||||
return serviceTicketMapper.updateServiceTicket(serviceTicket);
|
||||
}
|
||||
@ -94,4 +110,57 @@ public class ServiceTicketServiceImpl implements IServiceTicketService
|
||||
{
|
||||
return serviceTicketMapper.deleteServiceTicketById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定员工树形数据
|
||||
* @param user
|
||||
* @return ArrayList<DesigneeWrapperClass>
|
||||
*/
|
||||
@Override
|
||||
public ArrayList<DesigneeWrapperClass> designatedPersonService(SysUser user){
|
||||
//最终返回数据的集合
|
||||
ArrayList<DesigneeWrapperClass> designeeWrapperClassArrayList = new ArrayList<>();
|
||||
//保存部门名的集合
|
||||
ArrayList<String> stringArrayList = new ArrayList<>();
|
||||
List<SysUser> sysUsers = userService.selectUserList(user);
|
||||
//循环系统用户拿到所有部门
|
||||
for (SysUser sysUser : sysUsers) {
|
||||
if (sysUser.getDept() != null && sysUser.getDept().getDeptName() != null){
|
||||
SysDept dept = sysUser.getDept();
|
||||
stringArrayList.add(dept.getDeptName());
|
||||
}
|
||||
}
|
||||
//部门去重
|
||||
ArrayList<String> duplicateRemovalList = new ArrayList<>();
|
||||
for (String s : stringArrayList) {
|
||||
if (!duplicateRemovalList.contains(s))
|
||||
{
|
||||
duplicateRemovalList.add(s);
|
||||
}
|
||||
}
|
||||
for (String s : duplicateRemovalList) {
|
||||
DesigneeWrapperClass designeeWrapperClass = new DesigneeWrapperClass();
|
||||
designeeWrapperClass.setLabel(s);
|
||||
designeeWrapperClassArrayList.add(designeeWrapperClass);
|
||||
}
|
||||
//根据去重后的所有部门循环所有用户对象把对应的用户放入对应的部门中
|
||||
for (DesigneeWrapperClass designeeWrapperClass : designeeWrapperClassArrayList) {
|
||||
for (SysUser sysUser : sysUsers) {
|
||||
if (sysUser.getDept() != null){
|
||||
SysDept dept = sysUser.getDept();
|
||||
if (designeeWrapperClass.getLabel().equals(dept.getDeptName())){
|
||||
ArrayList<DesigneeWrapperClass> children = designeeWrapperClass.getChildren();
|
||||
if (children == null) {
|
||||
children = new ArrayList<>();
|
||||
designeeWrapperClass.setChildren(children);
|
||||
}
|
||||
DesigneeWrapperClass wrapperClass = new DesigneeWrapperClass();
|
||||
wrapperClass.setLabel(sysUser.getUserName());
|
||||
children.add(wrapperClass);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return designeeWrapperClassArrayList;
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="serviceStarTime != null "> and service_star_time = #{serviceStarTime}</if>
|
||||
<if test="serviceEndTime != null "> and service_end_time = #{serviceEndTime}</if>
|
||||
<if test="demandServiceDay != null "> and demand_service_day = #{demandServiceDay}</if>
|
||||
<if test="afterSalesTechnician != null "> and after_sales_technician = #{afterSalesTechnician}</if>
|
||||
<if test="afterSalesTechnician != null and afterSalesTechnician != '' "> and after_sales_technician = #{afterSalesTechnician}</if>
|
||||
<if test="serviceAddress != null and serviceAddress != ''"> and service_address = #{serviceAddress}</if>
|
||||
<if test="serviceAddressCity != null and serviceAddressCity != ''"> and service_address_city = #{serviceAddressCity}</if>
|
||||
<if test="serviceAddressArea != null and serviceAddressArea != ''"> and service_address_area = #{serviceAddressArea}</if>
|
||||
|
@ -1,108 +0,0 @@
|
||||
package com.ruoyi.mongodb.conreoller;
|
||||
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.mongodb.domain.DynamicData;
|
||||
import com.ruoyi.mongodb.domain.DynamicForm;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.http.HttpRequest;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 智能表单模块
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/intelligentForm")
|
||||
public class DynamicDataController extends BaseController {
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
//保存数据
|
||||
@PostMapping("/saveDynamicData")
|
||||
public AjaxResult saveDynamicData(@RequestBody Map<String, Object> requestData, HttpServletRequest httpServletRequest) {
|
||||
DynamicData dynamicData = new DynamicData();
|
||||
// System.out.println(requestData.toString());
|
||||
String title = (String)requestData.get("title");
|
||||
String pageView = (String)requestData.get("pageView");
|
||||
String collectionQuantity = (String)requestData.get("collectionQuantity");
|
||||
dynamicData.setTitle(title);
|
||||
requestData.remove("title");
|
||||
dynamicData.setPageView(pageView);
|
||||
requestData.remove("pageView");
|
||||
dynamicData.setCollectionQuantity(collectionQuantity);
|
||||
requestData.remove("collectionQuantity");
|
||||
ArrayList<String> inputarr = (ArrayList)requestData.get("inputarr");
|
||||
// System.out.println(inputarr.toString());
|
||||
for (String s : inputarr) {
|
||||
requestData.put(s,null);
|
||||
}
|
||||
requestData.remove("inputarr");
|
||||
// System.out.println(requestData.toString());
|
||||
dynamicData.setCreatePeople(getUsername());
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
dynamicData.setCreateTime(formattedDate);
|
||||
dynamicData.setData(requestData);
|
||||
dynamicData.setTenantName(httpServletRequest.getHeader("Tenant"));
|
||||
mongoTemplate.save(dynamicData);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
|
||||
//查询全部数据
|
||||
@GetMapping("/selectDynamicData")
|
||||
public AjaxResult selectDynamicData(HttpServletRequest httpServletRequest) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("tenantName").is(httpServletRequest.getHeader("Tenant")));
|
||||
List<DynamicData> dynamicData = mongoTemplate.find(query, DynamicData.class);
|
||||
for (DynamicData dynamicDatum : dynamicData) {
|
||||
Query queryByFor = new Query();
|
||||
queryByFor.addCriteria(Criteria.where("dynamicDataId").is(dynamicDatum.getId()));
|
||||
long count = mongoTemplate.count(queryByFor, DynamicForm.class);
|
||||
dynamicDatum.setCollectionQuantity(count+"");
|
||||
}
|
||||
System.out.println(dynamicData.toString());
|
||||
return AjaxResult.success(dynamicData);
|
||||
}
|
||||
//根据id查询数据
|
||||
@GetMapping("/selectDynamicDataById")
|
||||
public AjaxResult selectDynamicDataById(String id){
|
||||
DynamicData dynamicData = mongoTemplate.findById(id, DynamicData.class);
|
||||
dynamicData.setPageView(Long.parseLong(dynamicData.getPageView())+1+"");
|
||||
DynamicData save = mongoTemplate.save(dynamicData);
|
||||
// Map<String, Object> data = dynamicData.getData();
|
||||
// data.forEach((k,v) -> {
|
||||
// data.put(k,k);
|
||||
// });
|
||||
return AjaxResult.success(save);
|
||||
}
|
||||
|
||||
@PostMapping("/collectData")
|
||||
//采集数据
|
||||
public AjaxResult collectData(@RequestBody DynamicForm dynamicForm){
|
||||
mongoTemplate.save(dynamicForm);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
//根据卡片id查询对应采集数据的列表
|
||||
@GetMapping("/collectDataList")
|
||||
public AjaxResult collectDataList(String id){
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("dynamicDataId").is(id));
|
||||
List<DynamicForm> dynamicForms = mongoTemplate.find(query, DynamicForm.class);
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
for (DynamicForm dynamicForm : dynamicForms) {
|
||||
list.add(dynamicForm.getMap());
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.ruoyi.mongodb.controller;
|
||||
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.mongodb.domain.DynamicData;
|
||||
import com.ruoyi.mongodb.domain.DynamicForm;
|
||||
import com.ruoyi.mongodb.service.DynamicDataService;
|
||||
import com.ruoyi.mongodb.service.DynamicFormService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 智能表单模块
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/intelligentForm")
|
||||
public class DynamicDataController extends BaseController {
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
@Autowired
|
||||
private DynamicDataService dynamicDataService;
|
||||
@Autowired
|
||||
private DynamicFormService dynamicFormService;
|
||||
|
||||
//保存数据
|
||||
@PostMapping("/saveDynamicData")
|
||||
public AjaxResult saveDynamicData(@RequestBody Map<String, Object> requestData, HttpServletRequest httpServletRequest) {
|
||||
dynamicDataService.doSaveDynamicData(requestData,httpServletRequest);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
|
||||
//查询全部数据
|
||||
@GetMapping("/selectDynamicData")
|
||||
public AjaxResult selectDynamicData(HttpServletRequest httpServletRequest) {
|
||||
return AjaxResult.success(dynamicDataService.doSelectDynamicData(httpServletRequest));
|
||||
}
|
||||
//根据id查询数据
|
||||
@GetMapping("/selectDynamicDataById")
|
||||
public AjaxResult selectDynamicDataById(String id){
|
||||
return AjaxResult.success(dynamicDataService.doSelectDynamicDataById(id));
|
||||
}
|
||||
|
||||
//采集数据
|
||||
@PostMapping("/collectData")
|
||||
public AjaxResult collectData(@RequestBody DynamicForm dynamicForm){
|
||||
dynamicFormService.doCollectData(dynamicForm);
|
||||
return AjaxResult.success("保存成功");
|
||||
}
|
||||
//根据卡片id查询对应采集数据的列表
|
||||
@GetMapping("/collectDataList")
|
||||
public AjaxResult collectDataList(String id){
|
||||
return AjaxResult.success(dynamicFormService.doCollectDataList(id));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.ruoyi.mongodb.repository;
|
||||
|
||||
import com.ruoyi.mongodb.domain.DynamicData;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DynamicDataRepository extends MongoRepository<DynamicData,String> {
|
||||
List<DynamicData> findByTenantName(String tenantName);
|
||||
@Query("{'_id': {'$eq': ?0}}")
|
||||
DynamicData doFindById(ObjectId id);
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.ruoyi.mongodb.repository;
|
||||
|
||||
import com.ruoyi.mongodb.domain.DynamicForm;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DynamicFormRepository extends MongoRepository<DynamicForm,String> {
|
||||
Long countAllByDynamicDataId(String dynamicDataId);
|
||||
List<DynamicForm> findByDynamicDataId(String id);
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.ruoyi.mongodb.service;
|
||||
|
||||
import com.ruoyi.mongodb.domain.DynamicData;
|
||||
import com.ruoyi.mongodb.repository.DynamicDataRepository;
|
||||
import com.ruoyi.mongodb.repository.DynamicFormRepository;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.ruoyi.common.utils.SecurityUtils.getUsername;
|
||||
|
||||
@Service
|
||||
public class DynamicDataService {
|
||||
@Autowired
|
||||
private DynamicDataRepository dynamicDataRepository;
|
||||
@Autowired
|
||||
private DynamicFormRepository dynamicFormRepository;
|
||||
|
||||
//保存数据
|
||||
public DynamicData doSaveDynamicData(Map<String, Object> requestData, HttpServletRequest httpServletRequest){
|
||||
DynamicData dynamicData = new DynamicData();
|
||||
//构造数据结构
|
||||
String title = (String)requestData.get("title");
|
||||
String pageView = (String)requestData.get("pageView");
|
||||
String collectionQuantity = (String)requestData.get("collectionQuantity");
|
||||
dynamicData.setTitle(title);
|
||||
requestData.remove("title");
|
||||
dynamicData.setPageView(pageView);
|
||||
requestData.remove("pageView");
|
||||
dynamicData.setCollectionQuantity(collectionQuantity);
|
||||
requestData.remove("collectionQuantity");
|
||||
ArrayList<String> inputarr = (ArrayList)requestData.get("inputarr");
|
||||
for (String s : inputarr) {
|
||||
requestData.put(s,null);
|
||||
}
|
||||
requestData.remove("inputarr");
|
||||
dynamicData.setCreatePeople(getUsername());
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
String formattedDate = currentDate.format(formatter);
|
||||
dynamicData.setCreateTime(formattedDate);
|
||||
dynamicData.setData(requestData);
|
||||
dynamicData.setTenantName(httpServletRequest.getHeader("Tenant"));
|
||||
return dynamicDataRepository.save(dynamicData);//插入dynamicData数据
|
||||
}
|
||||
|
||||
//查询全部数据
|
||||
public List<DynamicData> doSelectDynamicData(HttpServletRequest httpServletRequest){
|
||||
//查询对应租户下的卡片列表数据
|
||||
List<DynamicData> dynamicData = dynamicDataRepository.findByTenantName(httpServletRequest.getHeader("Tenant"));
|
||||
for (DynamicData dynamicDatum : dynamicData) {
|
||||
//查询对应卡片链接采集到数据的数量
|
||||
Long count = dynamicFormRepository.countAllByDynamicDataId(dynamicDatum.getId());
|
||||
dynamicDatum.setCollectionQuantity(count+"");
|
||||
}
|
||||
return dynamicData;
|
||||
}
|
||||
|
||||
//根据id查询数据
|
||||
public DynamicData doSelectDynamicDataById(String id){
|
||||
ObjectId objectId = new ObjectId(id);
|
||||
DynamicData dynamicData = dynamicDataRepository.doFindById(objectId);
|
||||
dynamicData.setPageView(Long.parseLong(dynamicData.getPageView())+1+"");
|
||||
return dynamicDataRepository.save(dynamicData);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.ruoyi.mongodb.service;
|
||||
|
||||
import com.ruoyi.mongodb.domain.DynamicForm;
|
||||
import com.ruoyi.mongodb.repository.DynamicFormRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class DynamicFormService {
|
||||
@Autowired
|
||||
private DynamicFormRepository dynamicFormRepository;
|
||||
|
||||
//查询对应卡片采集数据的数量
|
||||
public Long findDynamicFormToCount(String id){
|
||||
return dynamicFormRepository.countAllByDynamicDataId(id);
|
||||
}
|
||||
|
||||
//采集数据
|
||||
public void doCollectData(DynamicForm dynamicForm){
|
||||
dynamicFormRepository.save(dynamicForm);
|
||||
}
|
||||
|
||||
//根据卡片id查询对应采集数据的列表
|
||||
public ArrayList<Object> doCollectDataList(String id){
|
||||
List<DynamicForm> dynamicForms = dynamicFormRepository.findByDynamicDataId(id);
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
for (DynamicForm dynamicForm : dynamicForms) {
|
||||
list.add(dynamicForm.getMap());
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
@ -107,14 +107,14 @@
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="售后技术人员" prop="afterSalesTechnician">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.afterSalesTechnician"-->
|
||||
<!-- placeholder="请输入售后技术人员"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="售后人员" prop="afterSalesTechnician">
|
||||
<el-input
|
||||
v-model="queryParams.afterSalesTechnician"
|
||||
placeholder="请输入售后技术人员"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="服务地址(省/自治区/直辖市)" prop="serviceAddress">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.serviceAddress"-->
|
||||
@ -179,7 +179,7 @@
|
||||
<!-- placeholder="请选择签退时间">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="是否已解决" prop="isSolveTheProblem">
|
||||
<el-form-item label="是否解决" prop="isSolveTheProblem">
|
||||
<el-select v-model="queryParams.isSolveTheProblem" placeholder="请选择是否解决问题" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.is_solve_the_problem"
|
||||
@ -251,7 +251,7 @@
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="当前负责人" prop="currentPersonInCharge">
|
||||
<el-form-item label="负责人" prop="currentPersonInCharge">
|
||||
<el-input
|
||||
v-model="queryParams.currentPersonInCharge"
|
||||
placeholder="请输入当前负责人"
|
||||
@ -311,22 +311,22 @@
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table border v-loading="loading" :data="ticketList" @selection-change="handleSelectionChange">
|
||||
<el-table border v-loading="loading" :data="ticketList" @selection-change="handleSelectionChange" row-style="{height:100px}">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="标题" align="center" prop="title" />
|
||||
<!-- <el-table-column label="客户姓名" align="center" prop="customerName" />-->
|
||||
<!-- <el-table-column label="编号" align="center" prop="id" />-->
|
||||
<el-table-column :show-overflow-tooltip="true" label="标题" align="center" prop="title" />
|
||||
<el-table-column label="客户姓名" align="center" prop="customerName" />
|
||||
<!-- <el-table-column label="客户编号" align="center" prop="customerNumber" />-->
|
||||
<!-- <el-table-column label="合同标题" align="center" prop="contractTitle" />-->
|
||||
<el-table-column label="订单编号" align="center" prop="contractOrderNumber" />
|
||||
<el-table-column :show-overflow-tooltip="true" label="订单编号" align="center" prop="contractOrderNumber" />
|
||||
<!-- <el-table-column label="客户联系人" align="center" prop="customerContact" />-->
|
||||
<!-- <el-table-column label="手机号" align="center" prop="phoneNumber" />-->
|
||||
<!-- <el-table-column label="服务类型" align="center" prop="serviceType">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="服务单号" align="center" prop="serviceOrderNumber" />
|
||||
<el-table-column label="服务类型" align="center" prop="serviceType">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.service_type" :value="scope.row.serviceType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :show-overflow-tooltip="true" label="服务单号" align="center" prop="serviceOrderNumber" />
|
||||
<!-- <el-table-column label="第几个服务单" align="center" prop="howManyServiceOrder" />-->
|
||||
<el-table-column label="服务开始时间" align="center" prop="serviceStarTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
@ -392,35 +392,48 @@
|
||||
<el-table-column label="当前负责人" align="center" prop="currentPersonInCharge" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleComment(scope.row)" v-hasPermi="['crm:customer:followup']">写跟进</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
@click="handleComment(scope.row)"
|
||||
v-hasPermi="['crm:customer:followup']"
|
||||
>写跟进</el-button>
|
||||
<el-dropdown
|
||||
size="mini"
|
||||
@command="(command) => handleCommandCase(command, scope.row)"
|
||||
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
|
||||
>
|
||||
<span class="el-dropdown-link">
|
||||
<i class="el-icon-d-arrow-right el-icon--right"></i>更多
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item
|
||||
command="handleChangeCase"
|
||||
icon="el-icon-s-check"
|
||||
@click="handleChange(scope.row)"
|
||||
v-hasPermi="['system:business:edit']"
|
||||
>解决</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
>解决</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item
|
||||
command="handleCloseOrderCase"
|
||||
icon="el-icon-circle-close"
|
||||
@click="handleCloseOrder(scope.row)"
|
||||
v-hasPermi="['system:business:edit']"
|
||||
>关闭</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
>关闭</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item
|
||||
command="handleUpdateCase"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:ticket:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
v-hasPermi="['system:business:edit']"
|
||||
>修改</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item
|
||||
command="handleDeleteCase"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:ticket:remove']"
|
||||
>删除</el-button>
|
||||
>删除</el-dropdown-item
|
||||
>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -478,16 +491,16 @@
|
||||
<!-- <el-form-item label="手机号" prop="phoneNumber">-->
|
||||
<!-- <el-input v-model="form.phoneNumber" placeholder="请输入手机号" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="服务类型" prop="serviceType">-->
|
||||
<!-- <el-select v-model="form.serviceType" placeholder="请选择服务类型">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="dict in dict.type.service_type"-->
|
||||
<!-- :key="dict.value"-->
|
||||
<!-- :label="dict.label"-->
|
||||
<!--:value="parseInt(dict.value)"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="服务类型" prop="serviceType">
|
||||
<el-select v-model="form.serviceType" placeholder="请选择服务类型">
|
||||
<el-option
|
||||
v-for="dict in dict.type.service_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="服务单号" prop="serviceOrderNumber">
|
||||
<el-input v-model="form.serviceOrderNumber" placeholder="请输入服务单号" />
|
||||
</el-form-item>
|
||||
@ -518,13 +531,14 @@
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<el-form-item label="指定售后人员" prop="afterSalesTechnician">
|
||||
<treeselect
|
||||
v-model="form.afterSalesTechnician"
|
||||
:options="deptOptions"
|
||||
:show-count="true"
|
||||
placeholder="请输入售后技术人员"
|
||||
/>
|
||||
<!-- <treeselect-->
|
||||
<!-- v-model="form.afterSalesTechnician"-->
|
||||
<!-- :options="deptOptions"-->
|
||||
<!-- :show-count="true"-->
|
||||
<!-- placeholder="请输入售后技术人员"-->
|
||||
<!-- />-->
|
||||
<!-- <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>-->
|
||||
<el-tree :data="deptOptions" v-model="form.afterSalesTechnician" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="服务地址(省/自治区/直辖市)" prop="serviceAddress">-->
|
||||
<!-- <el-input v-model="form.serviceAddress" placeholder="请输入服务地址(省/自治区/直辖市)" />-->
|
||||
@ -673,7 +687,10 @@ export default {
|
||||
//下拉框客户列表
|
||||
customerCustomerList: [],
|
||||
// 部门树选项
|
||||
deptOptions: undefined,
|
||||
deptOptions: [{
|
||||
label: '',
|
||||
children: []
|
||||
}],
|
||||
data: [{
|
||||
label: '一级 1',
|
||||
children: [{
|
||||
@ -795,7 +812,7 @@ export default {
|
||||
getTreeselect() {
|
||||
designatedPerson().then((response) => {
|
||||
console.log(response,'res')
|
||||
this.deptOptions.label = response.data.deptName
|
||||
this.deptOptions = response.data
|
||||
})
|
||||
},
|
||||
//回显客户编号
|
||||
@ -812,6 +829,12 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
//指定人员下拉树
|
||||
handleNodeClick(data) {
|
||||
if(data.children == null){
|
||||
this.form.afterSalesTechnician = data.label;
|
||||
}
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
@ -903,7 +926,7 @@ export default {
|
||||
this.verifyParams.id = row.id
|
||||
this.verifyParams.isSolveTheProblem = 1
|
||||
let that=this
|
||||
this.$modal.confirm('是否确认已解决编号为"' + this.verifyParams.id + '"的数据项?').then(function() {
|
||||
this.$modal.confirm('是否确认已解决编号为"' + this.verifyParams.id + '"的工单?').then(function() {
|
||||
return updateTicket(that.verifyParams);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
@ -965,6 +988,25 @@ export default {
|
||||
this.$refs.commentCustomer.open(id)
|
||||
})
|
||||
},
|
||||
// 更多操作触发
|
||||
handleCommandCase(command, row) {
|
||||
switch (command) {
|
||||
case 'handleChangeCase':
|
||||
this.handleChange(row)
|
||||
break
|
||||
case 'handleCloseOrderCase':
|
||||
this.handleCloseOrder(row)
|
||||
break
|
||||
case 'handleUpdateCase':
|
||||
this.handleUpdate(row)
|
||||
break
|
||||
case 'handleDeleteCase':
|
||||
this.handleDelete(row)
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/ticket/export', {
|
||||
@ -974,3 +1016,8 @@ export default {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.el-table__cell {
|
||||
height: 40px; /* 设置行高为40px */
|
||||
line-height: 40px; /* 设置文字垂直居中 */ }
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user