Explorar o código

Merge remote-tracking branch 'origin/master'

yusm hai 1 ano
pai
achega
ff4e654d64

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/App.vue

@@ -60,7 +60,7 @@ body,
   width: 100%;
   height: 100%;
   /* overflow: hidden; */
-  min-width: 650px;
+  min-width: 800px;
 }
 * {
   font-family: '微软雅黑';

+ 5 - 0
fhKeeper/formulahousekeeper/customerBuler-crm/src/type.d.ts

@@ -3,4 +3,9 @@ interface GlobalPopup extends Notify {
   showError: (message?: string) => void;
   showWarning: (message: string) => void;
   showInfo: (message: string) => void;
+}
+
+interface Tree {
+  label: string
+  children?: Tree[]
 }

+ 4 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/utils/request.ts

@@ -2,6 +2,7 @@ import axios from "axios";
 import { showMessage } from "./errorStatusCode"; // 引入状态码文件
 import type { AxiosRequestConfig, AxiosResponse, AxiosError } from "axios";
 import { ElNotification } from "element-plus";
+import { useStore } from "../store/index";
 const baseURL = "/api";
 // 创建axios实例
 const instance = axios.create({
@@ -12,8 +13,10 @@ const instance = axios.create({
 instance.interceptors.request.use(
   (config: AxiosRequestConfig): any => {
     // 可在请求发送前对config进行修改,如添加请求头等
+    const { getToken } = useStore()
+    const token = getToken
     const headers = config.headers || {};
-    headers["Authorization"] = "Bxxx";
+    headers["Token"] = token;
     config.headers = headers;
     return config;
   },

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 5924 - 0
fhKeeper/formulahousekeeper/management-crm/crm.log


+ 32 - 28
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/ClueController.java

@@ -27,7 +27,7 @@ import java.util.Map;
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author Seyason
@@ -47,73 +47,76 @@ public class ClueController {
     private SysDictMapper sysDictMapper;
 
 
-//    @RequestMapping("getClueSources")
+    //    @RequestMapping("getClueSources")
 //    public Object getClueSources(){
 //        QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
 //        queryWrapper.eq("code", "ClueSources");
 //        return sysDictMapper.selectList(queryWrapper);
 //    }
     @RequestMapping("getDetail")
-    public Object getDetail(@RequestBody Clue clue){
+    public Object getDetail(@RequestBody Clue clue) {
         HttpRespMsg msg = new HttpRespMsg();
         msg.setData(clueService.getInfo(clue));
         return msg;
     }
+
     @RequestMapping("listClue")
-    public Object list(@RequestBody Clue clue, HttpServletRequest request){
+    public Object list(@RequestBody Clue clue, HttpServletRequest request) {
         //TODO token待定
         User user = userMapper.selectById(request.getHeader("Token"));
         clue.setCompanyId(user.getCompanyId());
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部线索");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门线索");
         List<Clue> list = new ArrayList<>();
-        if (!isAll){
+        if (!isAll) {
             //查看全部线索
             list = clueService.getList(clue);
-        }else if (!isNotAll){
+        } else if (!isNotAll) {
             //查看负责部门线索 找出所处部门下所有的负责人
-            list = clueService.getList1(clue,user);
-        }else {
+            list = clueService.getList1(clue, user);
+        } else {
             // 查看负责人为 自己 和 null的数据
-            list = clueService.getList2(clue,user);
+            list = clueService.getList2(clue, user);
         }
         HashMap<Object, Object> map = new HashMap<>();
-        map.put("data",list);
-        map.put("total",clueService.getTotal(clue));
+        map.put("data", list);
+        map.put("total", clueService.getTotal(clue));
         return map;
     }
+
     @RequestMapping("listDeleterClue")
-    public Object listDeleterClue(@RequestBody Clue clue, HttpServletRequest request){
+    public Object listDeleterClue(@RequestBody Clue clue, HttpServletRequest request) {
         //TODO token待定
         // User user = userMapper.selectById(request.getHeader(  "Token"));
         // clue.setCompanyId(user.getCompanyId());
-        List<Clue> list =  clueService.getDeleterList(clue);
+        List<Clue> list = clueService.getDeleterList(clue);
         HashMap<Object, Object> map = new HashMap<>();
-        map.put("data",list);
-        map.put("total",clueService.getDeleterTotal(clue));
+        map.put("data", list);
+        map.put("total", clueService.getDeleterTotal(clue));
         return map;
     }
+
     @RequestMapping("/insertAndUpdate")
-    public Object inserANdUpdate(@RequestBody Clue clue, HttpServletRequest request){
+    public Object inserANdUpdate(@RequestBody Clue clue, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         //操作前校验
         //TODO token待定
         // User user = userMapper.selectById(request.getHeader(  "Token"));
         // Integer companyId = user.getCompanyId();
-        if (null == clue.getClueName() || "".equals(clue.getClueName())){
+        if (null == clue.getClueName() || "".equals(clue.getClueName())) {
             msg.setError("线索名称不能为空");
             return msg;
         }
-        if (null == clue.getClueSourceId()){
+        if (null == clue.getClueSourceId()) {
             msg.setError("线索来源不能为空");
             return msg;
         }
         clue.setIsDelete(0);
-        if (null != clue.getId()){
+        if (null != clue.getId()) {
             //修改
             clueService.update(clue);
             msg.setMsg("操作成功");
-        }else {
+        } else {
             //新增
             //TODO token待定
             // clue.setCompanyId(companyId);
@@ -123,12 +126,12 @@ public class ClueController {
 
             msg.setMsg("操作成功");
         }
-        return  msg;
+        return msg;
     }
 
 
     @RequestMapping("delete")
-    public Object delete(@RequestBody List<Integer> ids){
+    public Object delete(@RequestBody List<Integer> ids) {
         HttpRespMsg msg = new HttpRespMsg();
         msg.setMsg("操作成功");
         clueService.isDelete(ids);
@@ -136,21 +139,24 @@ public class ClueController {
     }
 
     @RequestMapping("rollback")
-    public Object rollback(@RequestBody List<Integer> ids){
+    public Object rollback(@RequestBody List<Integer> ids) {
         HttpRespMsg msg = new HttpRespMsg();
         msg.setMsg("操作成功");
         clueService.isRollback(ids);
         return msg;
     }
+
     @RequestMapping("claim")
-    public Object claim(@RequestBody Clue clue, HttpServletRequest request){
+    public Object claim(@RequestBody Clue clue, HttpServletRequest request) {
+        User user = userMapper.selectById(request.getHeader("Token"));
         HttpRespMsg msg = new HttpRespMsg();
         msg.setMsg("操作成功");
-        clueService.getAndTransfer(clue);
+        clueService.getAndTransfer(clue,user);
         return msg;
     }
+
     @RequestMapping("deleterDelete")
-    public Object deleterDelete(@RequestBody List<Integer> ids){
+    public Object deleterDelete(@RequestBody List<Integer> ids) {
         HttpRespMsg msg = new HttpRespMsg();
         msg.setMsg("操作成功");
         clueService.deleterDelete(ids);
@@ -158,7 +164,5 @@ public class ClueController {
     }
 
 
-
-
 }
 

+ 75 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/ProductController.java

@@ -1,9 +1,20 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.management.platform.entity.Product;
+import com.management.platform.entity.Task;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.ProductService;
+import com.management.platform.service.TaskService;
+import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * <p>
@@ -16,6 +27,70 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/product")
 public class ProductController {
+    @Resource
+    private ProductService productService;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private HttpServletRequest request;
+    @Resource
+    private TaskService taskService;
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(String userId,String productName,String productCode,Integer pageIndex,Integer pageSize){
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        return productService.getList(companyId,userId,productName,productCode,pageIndex,pageSize);
+    }
+
+    @RequestMapping("/addOrUpdate")
+    public HttpRespMsg addOrUpdate(Product product){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        product.setCompanyId(companyId);
+        int count;
+        if(product.getId()==null){
+            count = productService.count(new LambdaQueryWrapper<Product>().eq(Product::getCompanyId, companyId).eq(Product::getProductCode, product.getProductCode()));
+        }else {
+            count = productService.count(new LambdaQueryWrapper<Product>().eq(Product::getCompanyId, companyId).ne(Product::getId,product.getId()).eq(Product::getProductCode, product.getProductCode()));
+        }
+        if(count>0){
+            msg.setError("产品编码为["+product.getProductCode()+"]的产品已存在");
+            return msg;
+        }
+        if(!productService.saveOrUpdate(product)){
+            msg.setError("验证失败");
+            return msg;
+        }
+        return msg;
+    }
+
+
+    @RequestMapping("/delete")
+    public HttpRespMsg delete(Integer id){
+        HttpRespMsg msg=new HttpRespMsg();
+        int count = taskService.count(new LambdaQueryWrapper<Task>().eq(Task::getProductId, id));
+        if(count>0){
+            msg.setError("当前产品已绑定到相关任务,删除失败");
+            return msg;
+        }
+        if(!productService.removeById(id)){
+            msg.setError("验证失败");
+            return msg;
+        }
+        return msg;
+    }
+
+    @RequestMapping("/getTemplate")
+    public HttpRespMsg getTemplate(Integer id){
+        HttpRespMsg msg=new HttpRespMsg();
+        return msg;
+    }
+
+    @RequestMapping("/importData")
+    public HttpRespMsg importData(MultipartFile file){
+        HttpRespMsg msg=new HttpRespMsg();
+        return msg;
+    }
 
 }
 

+ 4 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/Clue.java

@@ -87,7 +87,10 @@ public class Clue extends Model<Clue> {
      * 负责人id
      */
     @TableField("incharger_id")
-    private Integer inchargerId;
+    private String inchargerId;
+
+
+//    private String tempInchargerId;
 
     /**
      * 备注

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/ClueService.java

@@ -36,5 +36,5 @@ public interface ClueService extends IService<Clue> {
 
     void deleterDelete(List<Integer> ids);
 
-    void getAndTransfer(Clue clue);
+    void getAndTransfer(Clue clue,User user);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/ProductService.java

@@ -2,6 +2,7 @@ package com.management.platform.service;
 
 import com.management.platform.entity.Product;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
 
 /**
  * <p>
@@ -13,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ProductService extends IService<Product> {
 
+    HttpRespMsg getList(Integer companyId,String userId, String productName, String productCode, Integer pageIndex, Integer pageSize);
 }

+ 16 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ClueServiceImpl.java

@@ -154,11 +154,25 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
     }
 
     @Override
-    public void getAndTransfer(Clue clue) {
+    public void getAndTransfer(Clue clue,User user) {
         UpdateWrapper<Clue> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id",clue.getId());
+        String inchargerId = clue.getInchargerId();
+        ClueLog clueLog = new ClueLog();
+        clueLog.setUserId(user.getId());
+        clueLog.setClueId(clue.getId());
+        if (inchargerId == null ){
+            //认领
+            clueLog.setName("认领了线索");
+            clue.setInchargerId(user.getId());
+        }else {
+            //转移
+            clueLog.setName("转移了线索");
+            clue.setInchargerId(clue.getInchargerId());
 
-
+        }
         clueMapper.update(clue, updateWrapper);
+
     }
 
 

+ 33 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -1,10 +1,19 @@
 package com.management.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Product;
 import com.management.platform.mapper.ProductMapper;
 import com.management.platform.service.ProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * <p>
@@ -17,4 +26,28 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
 
+    @Resource
+    private ProductMapper productMapper;
+
+    @Override
+    public HttpRespMsg getList(Integer companyId,String userId, String productName, String productCode, Integer pageIndex, Integer pageSize) {
+        HttpRespMsg msg=new HttpRespMsg();
+        LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Product::getCompanyId,companyId);
+        if(!StringUtils.isEmpty(userId)){
+            queryWrapper.eq(Product::getCreatorId,userId);
+        }
+        if(!StringUtils.isEmpty(productName)){
+            queryWrapper.like(Product::getProductName,productName);
+        }
+        if(!StringUtils.isEmpty(productCode)){
+            queryWrapper.like(Product::getProductCode,productCode);
+        }
+        IPage<Product> productIPage = productMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
+        Map map=new HashMap();
+        map.put("record",productIPage.getRecords());
+        map.put("total",productIPage.getTotal());
+        msg.setData(map);
+        return msg;
+    }
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -842,6 +842,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     public HttpRespMsg getEmployeeList(Integer departmentId,Integer matchingType,String keyword, Integer status, Integer roleId, Integer onlyDirect, String cursor, Integer pageIndex, Integer pageSize, HttpServletRequest request) throws Exception {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         Boolean flag = false;
+        if(status.equals(3)){
+            status=null;
+        }
         if (status != null && status.equals(2)){
             status = 0;
             flag = true;