Bladeren bron

飞书通讯录同步修改

Min 1 jaar geleden
bovenliggende
commit
f18539d3d9

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

@@ -51,7 +51,7 @@ public class ProductController {
     @Resource
     private OrderProductDetailService orderProductDetailService;
     @Resource
-    private OrderService orderService;
+    private SalesOrderService salesOrderService;
     @Resource
     private SysDictService sysDictService;
 
@@ -238,7 +238,7 @@ public class ProductController {
         List<Custom> customList = customService.list(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, companyId));
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
         orderIds.add(-1);
-        List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getId, orderIds));
+        List<SalesOrder> orderList = salesOrderService.list(new LambdaQueryWrapper<SalesOrder>().in(SalesOrder::getId, orderIds));
         List<SysDict> orderTypeList = sysDictService.list(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCode, "OrderType"));
         orderList.forEach(o->{
             Optional<Custom> custom = customList.stream().filter(ct -> ct.getId().equals(o.getCustomId())).findFirst();

+ 13 - 14
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/OrderController.java

@@ -11,7 +11,6 @@ import com.management.platform.util.HttpRespMsg;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -32,9 +31,9 @@ import java.util.stream.Collectors;
  */
 @RestController
 @RequestMapping("/order")
-public class OrderController {
+public class SalesOrderController {
     @Resource
-    private OrderService orderService;
+    private SalesOrderService salesOrderService;
     @Resource
     private UserMapper userMapper;
     @Resource
@@ -50,25 +49,25 @@ public class OrderController {
 
     @RequestMapping("/list")
     public HttpRespMsg list(String userId, String orderName,String orderCode, String productCode, Integer pageIndex, Integer pageSize,Integer isDelete){
-        return orderService.getList(userId,orderName,orderCode,productCode,pageIndex,pageSize,isDelete);
+        return salesOrderService.getList(userId,orderName,orderCode,productCode,pageIndex,pageSize,isDelete);
     }
 
     @RequestMapping("/addOrUpdate")
-    public HttpRespMsg addOrUpdate(Order order){
+    public HttpRespMsg addOrUpdate(SalesOrder order){
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         order.setCompanyId(companyId);
         int count;
         if(order.getId()==null){
-            count = orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getCompanyId, companyId).eq(Order::getOrderCode, order.getOrderCode()));
+            count = salesOrderService.count(new LambdaQueryWrapper<SalesOrder>().eq(SalesOrder::getCompanyId, companyId).eq(SalesOrder::getOrderCode, order.getOrderCode()));
         }else {
-            count = orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getCompanyId, companyId).ne(Order::getId,order.getId()).eq(Order::getOrderCode,order.getOrderCode()));
+            count = salesOrderService.count(new LambdaQueryWrapper<SalesOrder>().eq(SalesOrder::getCompanyId, companyId).ne(SalesOrder::getId,order.getId()).eq(SalesOrder::getOrderCode,order.getOrderCode()));
         }
         if(count>0){
             msg.setError("订单编号为["+order.getOrderCode()+"]的订单已存在");
             return msg;
         }
-        if(!orderService.saveOrUpdate(order)){
+        if(!salesOrderService.saveOrUpdate(order)){
             msg.setError("验证失败");
             return msg;
         }
@@ -93,11 +92,11 @@ public class OrderController {
             String[] idSplit = ids.split(",");
             List<String> splitList = Arrays.asList(idSplit);
             List<Integer> idList = splitList.stream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
-            List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getId, idList));
+            List<SalesOrder> orderList = salesOrderService.list(new LambdaQueryWrapper<SalesOrder>().in(SalesOrder::getId, idList));
             orderList.forEach(o->{
                 o.setIsDelete(1);
             });
-            if(!orderService.updateBatchById(orderList)){
+            if(!salesOrderService.updateBatchById(orderList)){
                 msg.setError("验证失败");
                 return msg;
             }
@@ -112,11 +111,11 @@ public class OrderController {
             String[] idSplit = ids.split(",");
             List<String> splitList = Arrays.asList(idSplit);
             List<Integer> idList = splitList.stream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());
-            List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getId, idList));
+            List<SalesOrder> orderList = salesOrderService.list(new LambdaQueryWrapper<SalesOrder>().in(SalesOrder::getId, idList));
             orderList.forEach(o->{
                 o.setIsDelete(0);
             });
-            if(!orderService.updateBatchById(orderList)){
+            if(!salesOrderService.updateBatchById(orderList)){
                 msg.setError("验证失败");
                 return msg;
             }
@@ -126,12 +125,12 @@ public class OrderController {
 
     @RequestMapping("/importData")
     public HttpRespMsg importData(MultipartFile multipartFile){
-        return orderService.importData(multipartFile);
+        return salesOrderService.importData(multipartFile);
     }
 
     @RequestMapping("/exportData")
     public HttpRespMsg exportData(String userId, String orderName,String orderCode, String productCode) throws Exception {
-        return orderService.exportData(userId,orderName,orderCode,productCode);
+        return salesOrderService.exportData(userId,orderName,orderCode,productCode);
     }
 
     @RequestMapping("/productWithOrder")

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/Custom.java

@@ -52,6 +52,8 @@ public class Custom extends Model<Custom> {
      */
     @TableField("incharger_id")
     private String inchargerId;
+
+    @TableField(exist = false)
     private String inchargerName;
 
     /**

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

@@ -27,7 +27,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-public class Order extends Model<Order> {
+public class SalesOrder extends Model<SalesOrder> {
 
     private static final long serialVersionUID=1L;
 

+ 3 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/OrderMapper.java

@@ -1,6 +1,6 @@
 package com.management.platform.mapper;
 
-import com.management.platform.entity.Order;
+import com.management.platform.entity.SalesOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.User;
 import org.apache.ibatis.annotations.Select;
@@ -15,8 +15,8 @@ import java.util.List;
  * @author Seyason
  * @since 2024-02-28
  */
-public interface OrderMapper extends BaseMapper<Order> {
+public interface SalesOrderMapper extends BaseMapper<SalesOrder> {
 
     @Select("select * from `order` WHERE company_id = #{companyId} AND is_delete = 0 ")
-    List<Order> getList(User user);
+    List<SalesOrder> getList(User user);
 }

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

@@ -1,6 +1,6 @@
 package com.management.platform.service;
 
-import com.management.platform.entity.Order;
+import com.management.platform.entity.SalesOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.multipart.MultipartFile;
@@ -13,7 +13,7 @@ import org.springframework.web.multipart.MultipartFile;
  * @author Seyason
  * @since 2024-02-28
  */
-public interface OrderService extends IService<Order> {
+public interface SalesOrderService extends IService<SalesOrder> {
 
     HttpRespMsg getList(String userId, String orderName,String orderCode, String productCode, Integer pageIndex, Integer pageSize,Integer isDelete);
 

+ 18 - 19
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/OrderServiceImpl.java

@@ -20,7 +20,6 @@ import org.apache.poi.ss.usermodel.CellType;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -40,10 +39,10 @@ import java.util.stream.Collectors;
  * @since 2024-02-28
  */
 @Service
-public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
+public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOrder> implements SalesOrderService {
 
     @Resource
-    private OrderMapper orderMapper;
+    private SalesOrderMapper salesOrderMapper;
     @Resource
     private HttpServletRequest request;
     @Resource
@@ -74,20 +73,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         boolean viewDept = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门订单");
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
         List<SysDict> sysDictOfOrderType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, user.getCompanyId()).eq(SysDict::getCode, "OrderType"));
-        LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        orderLambdaQueryWrapper.eq(Order::getCompanyId,user.getCompanyId());
+        LambdaQueryWrapper<SalesOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        orderLambdaQueryWrapper.eq(SalesOrder::getCompanyId,user.getCompanyId());
         if(isDelete!=null){
-            orderLambdaQueryWrapper.eq(Order::getIsDelete,isDelete);
+            orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,isDelete);
         }else {
-            orderLambdaQueryWrapper.eq(Order::getIsDelete,0);
+            orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,0);
         }
-        orderLambdaQueryWrapper.eq(Order::getStatus,1);
+        orderLambdaQueryWrapper.eq(SalesOrder::getStatus,1);
         //判断查看全部的权限
         if(!viewAll){
             //判断查看负责部门的权限
             if(!viewDept){
                 //都没有就只能看自己创建的
-                orderLambdaQueryWrapper.eq(Order::getCreatorId,user.getId());
+                orderLambdaQueryWrapper.eq(SalesOrder::getCreatorId,user.getId());
             }else {
                 List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getManagerId, user.getId()));
                 List<DepartmentOtherManager> otherManagerList = departmentOtherManagerMapper.selectList(new LambdaQueryWrapper<DepartmentOtherManager>().eq(DepartmentOtherManager::getOtherManagerId, user.getId()));
@@ -110,17 +109,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 deptIds=deptIds.stream().distinct().collect(Collectors.toList());
                 List<Integer> finalDeptIds2 = deptIds;
                 List<String> userIds = userList.stream().filter(u -> finalDeptIds2.contains(u.getDepartmentId())).map(User::getId).collect(Collectors.toList());
-                orderLambdaQueryWrapper.in(Order::getCreatorId,userIds);
+                orderLambdaQueryWrapper.in(SalesOrder::getCreatorId,userIds);
             }
         }
         if(!StringUtils.isEmpty(orderName)){
-            orderLambdaQueryWrapper.like(Order::getOrderName,orderName);
+            orderLambdaQueryWrapper.like(SalesOrder::getOrderName,orderName);
         }
         if(!StringUtils.isEmpty(orderCode)){
-            orderLambdaQueryWrapper.like(Order::getOrderCode,orderCode);
+            orderLambdaQueryWrapper.like(SalesOrder::getOrderCode,orderCode);
         }
         if(!StringUtils.isEmpty(productCode)){
-            orderLambdaQueryWrapper.inSql(Order::getId,
+            orderLambdaQueryWrapper.inSql(SalesOrder::getId,
                     "select o.order_id from order_product_detail o left join product p on o.product_id=p.id " +
                             "where p.company_id="+user.getCompanyId()+" and p.product_code like '%"+productCode+"%'");
         }
@@ -128,8 +127,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             pageIndex=-1;
             pageSize=-1;
         }
-        IPage<Order> orderIPage = orderMapper.selectPage(new Page<>(pageIndex, pageSize), orderLambdaQueryWrapper);
-        List<Order> records = orderIPage.getRecords();
+        IPage<SalesOrder> orderIPage = salesOrderMapper.selectPage(new Page<>(pageIndex, pageSize), orderLambdaQueryWrapper);
+        List<SalesOrder> records = orderIPage.getRecords();
         records.forEach(r->{
             Optional<User> item = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
             if(item.isPresent()){
@@ -155,7 +154,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         User user = userMapper.selectById(request.getHeader("token"));
         Integer companyId = user.getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
-        List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>().eq(Order::getCompanyId, companyId));
+        List<SalesOrder> orderList = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrder>().eq(SalesOrder::getCompanyId, companyId));
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
         List<SysDict> sysDictOfProductType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductType"));
         List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
@@ -186,7 +185,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             String config = sysForm.getConfig();
             JSONObject configOb = JSON.parseObject(config);
             JSONArray configObJSONArray = configOb.getJSONArray("list");
-            List<Order>  importOrderList=new ArrayList<>();
+            List<SalesOrder>  importOrderList=new ArrayList<>();
             List<String> userNameList=new ArrayList<>();
             HttpRespMsg respMsg=new HttpRespMsg();
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
@@ -239,7 +238,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
                 //获取到当前行的列数据
                 int cellNum = row.getLastCellNum();
-                Order order=new Order();
+                SalesOrder order=new SalesOrder();
                 order.setCompanyId(companyId);
                 order.setCreatorId(user.getId());
                 for (int i = 0; i < cellNum; i++) {
@@ -272,7 +271,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     if(modelName.equals("orderCode")){
                         if(!StringUtils.isEmpty(cell.getStringCellValue())){
                             //系统中同公司已存在的产品编码 更新
-                            Optional<Order> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
+                            Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
                             if(first.isPresent()){
                                 order.setId(first.get().getId());
                             }

+ 4 - 14
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -10,19 +10,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
 import com.management.platform.entity.dto.TaskDto;
 import com.management.platform.entity.vo.TasKVo;
-import com.management.platform.entity.vo.TasKVo;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.CellType;
-import org.apache.poi.xssf.usermodel.XSSFCell;
-import org.apache.poi.xssf.usermodel.XSSFRow;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -35,14 +29,10 @@ import java.io.*;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * <p>
@@ -93,7 +83,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
     private BusinessOpportunityMapper businessOpportunityMapper;
 
     @Resource
-    private OrderMapper orderMapper;
+    private SalesOrderMapper salesOrderMapper;
 
     @Resource
     private ClueMapper clueMapper;
@@ -328,7 +318,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
             List<Custom> customList=customMapper.selectList(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, user.getCompanyId()).eq(Custom::getIsDelete,0));
             List<BusinessOpportunity> opportunityList = businessOpportunityMapper.selectList(new LambdaQueryWrapper<BusinessOpportunity>()
                     .eq(BusinessOpportunity::getCompanyId, user.getCompanyId()).eq(BusinessOpportunity::getIsDelete, 0));
-            List<Order> orderList = orderMapper.getList(user);
+            List<SalesOrder> orderList = salesOrderMapper.getList(user);
              List<Clue> clueList = clueMapper.selectList(new LambdaQueryWrapper<Clue>().eq(Clue::getCompanyId, user.getCompanyId()).eq(Clue::getIsDelete, 0).orderByDesc(Clue::getCreateTime));
             for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
                 HSSFRow row = sheet.getRow(rowIndex);
@@ -578,11 +568,11 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                     if (modelName.equals("orderId")){
                         if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             String orderName = cell.getStringCellValue();
-                            List<Order> collect = orderList.stream().filter(order -> orderName.equals(order.getOrderName())).collect(Collectors.toList());
+                            List<SalesOrder> collect = orderList.stream().filter(order -> orderName.equals(order.getOrderName())).collect(Collectors.toList());
                             if (collect.size()>1){
                                 throw new Exception("["+orderName+"]对应的销售订单存在多个");
                             }else if (collect.size()==1) {
-                                Order order=collect.get(0);
+                                SalesOrder order=collect.get(0);
                                 if (task.getContactsId()!=null){
                                     if (!order.getContactsId().equals(task.getContactsId())){
                                         throw new Exception("["+orderName+"]对应的销售订单没有对应填写的联系人");

+ 2 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/OrderMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.management.platform.mapper.OrderMapper">
+<mapper namespace="com.management.platform.mapper.SalesOrderMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.management.platform.entity.Order">
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.SalesOrder">
         <id column="id" property="id" />
         <result column="company_id" property="companyId" />
         <result column="order_name" property="orderName" />

+ 136 - 110
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -11,10 +11,7 @@ import com.management.platform.constant.Constant;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.UserVO;
 import com.management.platform.mapper.*;
-import com.management.platform.service.DepartmentOtherManagerService;
-import com.management.platform.service.FeishuInfoService;
-import com.management.platform.service.SysRoleService;
-import com.management.platform.service.UserService;
+import com.management.platform.service.*;
 import com.management.platform.service.impl.FeishuInfoServiceImpl;
 import com.management.platform.util.*;
 import com.taobao.api.ApiException;
@@ -68,8 +65,12 @@ public class FeishuInfoController {
     @Resource
     private DepartmentFeishuMapper departmentFeishuMapper;
     @Resource
+    private DepartmentFeishuService departmentFeishuService;
+    @Resource
     private DepartmentMapper departmentMapper;
     @Resource
+    private DepartmentService departmentService;
+    @Resource
     private SysRoleMapper sysRoleMapper;
     @Resource
     private UserService userService;
@@ -645,6 +646,7 @@ public class FeishuInfoController {
         if(feishuInfoList.size()>0){
             FeishuInfo feishuInfo = feishuInfoList.get(0);
             List<User> allUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", feishuInfo.getCompanyId()));
+            List<Department> allDepartmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, feishuInfo.getCompanyId()));
             SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",feishuInfo.getCompanyId()).eq("rolename","普通员工"));
             //通讯录权限范围变更
             //todo:新增的
@@ -673,8 +675,7 @@ public class FeishuInfoController {
                     String openDepartmentId = String.valueOf(ob.getString("open_department_id"));
                     String departmentParentId =String.valueOf(ob.getString("parent_department_id"));
                     JSONArray leaders = ob.getJSONArray("leaders");
-                    Integer cut = departmentFeishuMapper.selectCount(new QueryWrapper<DepartmentFeishu>().eq("corpid",feishuInfo.getCorpid()).eq("feishu_deptid",departmentId));
-                    if(cut==0&&!departmentId.equals("0")){
+                    if(!departmentId.equals("0")){
                         System.out.println("join===========");
                         DepartmentFeishu departmentFeishu=new DepartmentFeishu();
                         departmentFeishu.setCorpid(feishuInfo.getCorpid())
@@ -686,7 +687,11 @@ public class FeishuInfoController {
                         department.setCompanyId(feishuInfo.getCompanyId());
                         department.setDepartmentName(departmentName);
                         department.setFeishuDeptid(openDepartmentId);
-                        departmentMapper.insert(department);
+                        Optional<Department> optional = allDepartmentList.stream().filter(a -> a.getFeishuDeptid().equals(openDepartmentId)).findFirst();
+                        if(optional.isPresent()){
+                            department.setDepartmentId(optional.get().getDepartmentId());
+                        }
+                        departmentService.saveOrUpdate(department);
                         List<DepartmentOtherManager> odList=new ArrayList<>();
                         if(leaders!=null&&leaders.size()>0){
                             //todo:处理主要负责人
@@ -744,65 +749,70 @@ public class FeishuInfoController {
                         JSONObject userJson = userInfoWithDepartment.getJSONObject(m);
                         String curUserid = userJson.getString("user_id");
                         String openUserid = userJson.getString("open_id");
-                        if(!userJson.getJSONObject("status").getBoolean("is_activated")){
-                            continue;
-                        }
                         List<String> departments = (List<String>) userJson.get("department_ids");
                         System.out.println("user info======:"+userJson.toString());
-                        boolean b = allUserList.stream().anyMatch(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(userJson.getString("open_id")));
-                        if(!b){
-                            //不存在的人员, 进行插入
-                            User user = new User();
-                            //在当前部门下的员工
-                            user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(role.getId())//默认普通员工
-                                    .setRoleName(role.getRolename())
-                                    .setCompanyId(feishuInfo.getCompanyId())
-                                    .setName(userJson.getString("name"))
-                                    .setFeishuUserid(openUserid)
-                                    .setColor(ColorUtil.randomColor())
-                                    .setJobNumber(curUserid)
-                                    .setPassword(MD5Util.getPassword("000000"))
-                                    .setFeishuDeptid(departmentFeishu.getFeishuDeptid());
-                            String max = departments.get(0);
-                            Optional<DepartmentFeishu> dpFs = departmentFeishuList.stream().filter(dl -> dl.getFeishuOpenDeptid().equals(max)).findFirst();
-                            if(dpFs.isPresent()){
-                                Optional<Department> dp = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(dpFs.get().getSysDeptid())).findFirst();
-                                if(dp.isPresent()){
-                                    user.setDepartmentName(dp.get().getDepartmentName());
-                                    user.setDepartmentId(dp.get().getDepartmentId());
-                                    user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
-                                }
-                            }
-                            boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
-                            if(!c){
-                                newUserList.add(user);
+                        Optional<User> optional = allUserList.stream().filter(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(userJson.getString("open_id"))).findFirst();
+                        //不存在的人员, 进行插入
+                        User user = new User();
+                        //在当前部门下的员工
+                        if(optional.isPresent()){
+                            user.setId(optional.get().getId());
+                        }else {
+                            user.setId(SnowFlake.nextId()+"");
+                        }
+                        user.setRoleId(role.getId())//默认普通员工
+                                .setRoleName(role.getRolename())
+                                .setCompanyId(feishuInfo.getCompanyId())
+                                .setName(userJson.getString("name"))
+                                .setFeishuUserid(openUserid)
+                                .setColor(ColorUtil.randomColor())
+                                .setJobNumber(curUserid)
+                                .setPassword(MD5Util.getPassword("000000"))
+                                .setFeishuDeptid(departmentFeishu.getFeishuDeptid())
+                                .setIsActive(userJson.getJSONObject("status").getBoolean("is_activated")?1:0);
+                        String max = departments.get(0);
+                        Optional<DepartmentFeishu> dpFs = departmentFeishuList.stream().filter(dl -> dl.getFeishuOpenDeptid().equals(max)).findFirst();
+                        if(dpFs.isPresent()){
+                            Optional<Department> dp = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(dpFs.get().getSysDeptid())).findFirst();
+                            if(dp.isPresent()){
+                                user.setDepartmentName(dp.get().getDepartmentName());
+                                user.setDepartmentId(dp.get().getDepartmentId());
+                                user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
                             }
                         }
+                        boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
+                        if(!c){
+                            newUserList.add(user);
+                        }
                     }
                 }
                 //todo:处理人员
                 JSONArray userArrays = addedOb.getJSONArray("users");
                 if(userArrays!=null&&userArrays.size()>0){
                     for (int i = 0; i < userArrays.size(); i++) {
-                        JSONObject userOb = userArrays.getJSONObject(i);
-                        boolean b = allUserList.stream().anyMatch(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(userOb.getString("open_id")));
-                        if(!b){
-                            //不存在的人员, 进行插入
-                            User user = new User();
-                            user.setId(SnowFlake.nextId()+"")
-                                    .setRoleId(role.getId())//默认普通员工
-                                    .setRoleName(role.getRolename())
-                                    .setCompanyId(feishuInfo.getCompanyId())
-                                    .setName(userOb.getString("name"))
-                                    .setFeishuUserid(userOb.getString("open_id"))
-                                    .setColor(ColorUtil.randomColor())
-                                    .setJobNumber(userOb.getString("user_id"))
-                                    .setPassword(MD5Util.getPassword("000000"));
-                            boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
-                            if(!c){
-                                newUserList.add(user);
-                            }
+                        String uid = userArrays.getString(i);
+                        Optional<User> optional = allUserList.stream().filter(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(uid)).findFirst();
+                        //不存在的人员, 进行插入
+                        User user = new User();
+                        //在当前部门下的员工
+                        if(optional.isPresent()){
+                            user.setId(optional.get().getId());
+                        }else {
+                            user.setId(SnowFlake.nextId()+"");
+                        }
+                        JSONObject userOb = feishuInfoService.getUserInfo(feishuInfo, uid);
+                        user.setRoleId(role.getId())
+                                .setRoleId(role.getId())//默认普通员工
+                                .setRoleName(role.getRolename())
+                                .setCompanyId(feishuInfo.getCompanyId())
+                                .setName(userOb.getString("name"))
+                                .setFeishuUserid(userOb.getString("open_id"))
+                                .setColor(ColorUtil.randomColor())
+                                .setJobNumber(userOb.getString("user_id"))
+                                .setPassword(MD5Util.getPassword("000000"));
+                        boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
+                        if(!c){
+                            newUserList.add(user);
                         }
                     }
                 }
@@ -823,6 +833,7 @@ public class FeishuInfoController {
         HttpRespMsg msg=new HttpRespMsg();
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
         FeishuInfo feishuInfo = feishuInfoMapper.selectOne(new LambdaQueryWrapper<FeishuInfo>().eq(FeishuInfo::getCompanyId, companyId));
+        List<Department> allDepartmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
         List<User> allUserList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
         String corpId = feishuInfo.getCorpid();
         if(feishuInfo==null){
@@ -869,8 +880,7 @@ public class FeishuInfoController {
             String openDepartmentId = String.valueOf(ob.getString("open_department_id"));
             String departmentParentId =String.valueOf(ob.getString("parent_department_id"));
             JSONArray leaders = ob.getJSONArray("leaders");
-            Integer cut = departmentFeishuMapper.selectCount(new QueryWrapper<DepartmentFeishu>().eq("corpid",feishuInfo.getCorpid()).eq("feishu_deptid",departmentId));
-            if(cut==0&&!departmentId.equals("0")){
+            if(!departmentId.equals("0")){
                 System.out.println("join===========");
                 DepartmentFeishu departmentFeishu=new DepartmentFeishu();
                 departmentFeishu.setCorpid(feishuInfo.getCorpid())
@@ -882,7 +892,11 @@ public class FeishuInfoController {
                 department.setCompanyId(feishuInfo.getCompanyId());
                 department.setDepartmentName(departmentName);
                 department.setFeishuDeptid(openDepartmentId);
-                departmentMapper.insert(department);
+                Optional<Department> optional = allDepartmentList.stream().filter(a -> a.getFeishuDeptid().equals(openDepartmentId)).findFirst();
+                if(optional.isPresent()){
+                    department.setDepartmentId(optional.get().getDepartmentId());
+                }
+                departmentService.saveOrUpdate(department);
                 List<DepartmentOtherManager> odList=new ArrayList<>();
                 if(leaders!=null&&leaders.size()>0){
                     //todo:处理主要负责人
@@ -915,12 +929,17 @@ public class FeishuInfoController {
                 departmentMapper.updateById(department);
                 departmentList.add(department);
                 departmentFeishu.setSysDeptid(department.getDepartmentId());
-                departmentFeishuMapper.insert(departmentFeishu);
+                DepartmentFeishu feishu = departmentFeishuMapper.selectOne(new LambdaQueryWrapper<DepartmentFeishu>().eq(DepartmentFeishu::getFeishuOpenDeptid, departmentFeishu.getFeishuOpenDeptid()));
+                if(feishu!=null){
+                    departmentFeishu.setId(feishu.getId());
+                }
+                departmentFeishuService.saveOrUpdate(departmentFeishu);
                 departmentFeishuList.add(departmentFeishu);
                 departmentOtherManagerService.saveBatch(odList);
             }
         }
         List<User> newUserList=new ArrayList<>();
+        System.out.println("departmentFeishuList========"+departmentFeishuList.toString());
         for (DepartmentFeishu departmentFeishu : departmentFeishuList) {
             Optional<Department> first = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(departmentFeishu.getSysDeptid())).findFirst();
             //获取到当前部门的上级部门
@@ -936,45 +955,48 @@ public class FeishuInfoController {
             }
             //处理部门下的人员
             JSONArray userInfoWithDepartment=feishuInfoService.getUserInfoWithDepartment(feishuInfo,departmentFeishu.getFeishuOpenDeptid(),null);
+            System.out.println("userInfoWithDepartment=========="+userInfoWithDepartment.toJSONString());
             for (int m=0;m<userInfoWithDepartment.size(); m++) {
                 JSONObject userJson = userInfoWithDepartment.getJSONObject(m);
                 String curUserid = userJson.getString("user_id");
                 String openUserid = userJson.getString("open_id");
-                if(!userJson.getJSONObject("status").getBoolean("is_activated")){
-                    continue;
-                }
                 List<String> departments = (List<String>) userJson.get("department_ids");
                 System.out.println("user info======:"+userJson.toString());
-                boolean b = allUserList.stream().anyMatch(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(userJson.getString("open_id")));
-                if(!b){
-                    //不存在的人员, 进行插入
-                    User user = new User();
-                    //在当前部门下的员工
-                    user.setId(SnowFlake.nextId()+"")
-                            .setRoleId(role.getId())//默认普通员工
-                            .setRoleName(role.getRolename())
-                            .setCompanyId(feishuInfo.getCompanyId())
-                            .setName(userJson.getString("name"))
-                            .setFeishuUserid(openUserid)
-                            .setColor(ColorUtil.randomColor())
-                            .setJobNumber(curUserid)
-                            .setPassword(MD5Util.getPassword("000000"))
-                            .setFeishuDeptid(departmentFeishu.getFeishuDeptid());
-                    String max = departments.get(0);
-                    Optional<DepartmentFeishu> dpFs = departmentFeishuList.stream().filter(dl -> dl.getFeishuOpenDeptid().equals(max)).findFirst();
-                    if(dpFs.isPresent()){
-                        Optional<Department> dp = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(dpFs.get().getSysDeptid())).findFirst();
-                        if(dp.isPresent()){
-                            user.setDepartmentName(dp.get().getDepartmentName());
-                            user.setDepartmentId(dp.get().getDepartmentId());
-                            user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
-                        }
-                    }
-                    boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
-                    if(!c){
-                        newUserList.add(user);
+                Optional<User> optional = allUserList.stream().filter(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(userJson.getString("open_id"))).findFirst();
+                //不存在的人员, 进行插入
+                User user = new User();
+                //在当前部门下的员工
+                if(optional.isPresent()){
+                    user.setId(optional.get().getId());
+                }else {
+                    user.setId(SnowFlake.nextId()+"");
+                }
+                user.setRoleId(role.getId())//默认普通员工
+                        .setRoleName(role.getRolename())
+                        .setCompanyId(feishuInfo.getCompanyId())
+                        .setName(userJson.getString("name"))
+                        .setFeishuUserid(openUserid)
+                        .setColor(ColorUtil.randomColor())
+                        .setJobNumber(curUserid)
+                        .setPassword(MD5Util.getPassword("000000"))
+                        .setFeishuDeptid(departmentFeishu.getFeishuDeptid())
+                        .setIsActive(userJson.getJSONObject("status").getBoolean("is_activated")?1:0);
+                String max = departments.get(0);
+                System.out.println("maxDept====="+max);
+                Optional<DepartmentFeishu> dpFs = departmentFeishuList.stream().filter(dl -> dl.getFeishuOpenDeptid().equals(max)).findFirst();
+                if(dpFs.isPresent()){
+                    Optional<Department> dp = departmentList.stream().filter(dl -> dl.getDepartmentId().equals(dpFs.get().getSysDeptid())).findFirst();
+                    if(dp.isPresent()){
+                        System.out.println("Set Dept");
+                        user.setDepartmentName(dp.get().getDepartmentName());
+                        user.setDepartmentId(dp.get().getDepartmentId());
+                        user.setDepartmentCascade(convertDepartmentIdToCascade(dp.get().getDepartmentId(),departmentList));
                     }
                 }
+                boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
+                if(!c){
+                    newUserList.add(user);
+                }
             }
         }
         //todo:处理人员
@@ -984,29 +1006,33 @@ public class FeishuInfoController {
         if(userArrays!=null&&userArrays.size()>0){
             for (int i = 0; i < userArrays.size(); i++) {
                 String uid = userArrays.getString(i);
-                boolean b = allUserList.stream().anyMatch(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(uid));
-                if(!b){
-                    //不存在的人员, 进行插入
-                    User user = new User();
-                    JSONObject userOb = feishuInfoService.getUserInfo(feishuInfo, uid);
-                    user.setId(SnowFlake.nextId()+"")
-                            .setRoleId(role.getId())//默认普通员工
-                            .setRoleName(role.getRolename())
-                            .setCompanyId(feishuInfo.getCompanyId())
-                            .setName(userOb.getString("name"))
-                            .setFeishuUserid(userOb.getString("open_id"))
-                            .setColor(ColorUtil.randomColor())
-                            .setJobNumber(userOb.getString("user_id"))
-                            .setPassword(MD5Util.getPassword("000000"));
-                    boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
-                    if(!c){
-                        newUserList.add(user);
-                    }
+                Optional<User> optional = allUserList.stream().filter(al -> al.getFeishuUserid() != null && al.getFeishuUserid().equals(uid)).findFirst();
+                //不存在的人员, 进行插入
+                User user = new User();
+                //在当前部门下的员工
+                if(optional.isPresent()){
+                    user.setId(optional.get().getId());
+                }else {
+                    user.setId(SnowFlake.nextId()+"");
+                }
+                JSONObject userOb = feishuInfoService.getUserInfo(feishuInfo, uid);
+                user.setRoleId(role.getId())
+                        .setRoleId(role.getId())//默认普通员工
+                        .setRoleName(role.getRolename())
+                        .setCompanyId(feishuInfo.getCompanyId())
+                        .setName(userOb.getString("name"))
+                        .setFeishuUserid(userOb.getString("open_id"))
+                        .setColor(ColorUtil.randomColor())
+                        .setJobNumber(userOb.getString("user_id"))
+                        .setPassword(MD5Util.getPassword("000000"));
+                boolean c = newUserList.stream().anyMatch(ul ->ul.getFeishuUserid()!=null&&ul.getFeishuUserid().equals(user.getFeishuUserid()));
+                if(!c){
+                    newUserList.add(user);
                 }
             }
         }
         if(newUserList.size()>0){
-            userService.saveBatch(newUserList);
+            userService.saveOrUpdateBatch(newUserList);
         }
         return msg;
     }