Browse Source

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

# Conflicts:
#	fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
seyason 1 year ago
parent
commit
358f4d858f
22 changed files with 338 additions and 80 deletions
  1. 4 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 13 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java
  3. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java
  4. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserReportDeptController.java
  5. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  6. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java
  7. 42 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserReportDept.java
  8. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/UserReportDeptMapper.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserReportDeptService.java
  10. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java
  11. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java
  12. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  13. 28 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java
  14. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java
  15. 42 42
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  16. 51 8
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  17. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  18. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserReportDeptServiceImpl.java
  19. 39 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  20. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
  21. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml
  22. 17 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserReportDeptMapper.xml

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -368,7 +368,8 @@ public class ReportController {
                                   Integer[] extraField3,
                                   Integer[] extraField3,
                                   Integer[] sapServiceId,//依斯贝的服务Id
                                   Integer[] sapServiceId,//依斯贝的服务Id
                                   String summary,         //针对工作总结的字段
                                   String summary,         //针对工作总结的字段
-                                  String[] multiDegrId
+                                  String[] multiDegrId,
+                                  Integer reportTargetDeptId
                                     ) {
                                     ) {
         List<Report> reportList = new ArrayList<>();
         List<Report> reportList = new ArrayList<>();
         String token = request.getHeader("Token");
         String token = request.getHeader("Token");
@@ -889,7 +890,7 @@ public class ReportController {
                             report.setStage(stage[i]);
                             report.setStage(stage[i]);
                             report.setCreateDate(localStartDate);
                             report.setCreateDate(localStartDate);
                             report.setCreatorId(token);
                             report.setCreatorId(token);
-                            report.setDeptId(user.getDepartmentId());
+                            report.setDeptId(reportTargetDeptId==null?user.getDepartmentId():reportTargetDeptId);
                             report.setProjectAuditState(0);
                             report.setProjectAuditState(0);
                             report.setProjectAuditorId(projectAuditorId[i]);
                             report.setProjectAuditorId(projectAuditorId[i]);
                             report.setTaskFinish(taskFinish[i]);
                             report.setTaskFinish(taskFinish[i]);
@@ -1002,7 +1003,7 @@ public class ReportController {
                         report.setPicStr(picStr!=null?picStr[i]:null);
                         report.setPicStr(picStr!=null?picStr[i]:null);
                         report.setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                         report.setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                         report.setCreatorId(token);
                         report.setCreatorId(token);
-                        report.setDeptId(user.getDepartmentId());
+                        report.setDeptId(reportTargetDeptId==null?user.getDepartmentId():reportTargetDeptId);
                         report.setProjectAuditState(0);
                         report.setProjectAuditState(0);
                         report.setProjectAuditorId(projectAuditorId[i]);
                         report.setProjectAuditorId(projectAuditorId[i]);
                         report.setTaskFinish(taskFinish[i]);
                         report.setTaskFinish(taskFinish[i]);

+ 13 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -235,9 +235,9 @@ public class UserController {
                                   @RequestParam Integer roleId, Double monthCost, Double cost,
                                   @RequestParam Integer roleId, Double monthCost, Double cost,
                                   Integer departmentId, Integer salaryType, String costApplyDate,
                                   Integer departmentId, Integer salaryType, String costApplyDate,
                                     String position, String certJson,String inductionDate,String superiorId,
                                     String position, String certJson,String inductionDate,String superiorId,
-                                    String plate1,String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate) {
+                                    String plate1,String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate,String reportDeptIds) {
         return userService.insertUser(id, name, phone, onlyAuditOnce, roleId, monthCost, cost, departmentId, salaryType, costApplyDate,
         return userService.insertUser(id, name, phone, onlyAuditOnce, roleId, monthCost, cost, departmentId, salaryType, costApplyDate,
-                    position, certJson, request,inductionDate,superiorId,plate1, plate2, plate3,plate4,plate5, jobNumber, inactiveDate);
+                    position, certJson, request,inductionDate,superiorId,plate1, plate2, plate3,plate4,plate5, jobNumber, inactiveDate,reportDeptIds);
     }
     }
 
 
     /**
     /**
@@ -971,5 +971,16 @@ public class UserController {
         return msg;
         return msg;
     }
     }
 
 
+    @RequestMapping("/userRename")
+    public HttpRespMsg userRename(String newName){
+        HttpRespMsg msg=new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        user.setName(newName);
+        if(userMapper.updateById(user)<=0){
+            msg.setError("更新失败");
+        };
+        return msg;
+    }
+
 }
 }
 
 

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java

@@ -554,7 +554,7 @@ public class UserCorpwxTimeController {
                 for (String name : userNameList) {
                 for (String name : userNameList) {
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                    if(searchUserResponse.body.totalCount>0){
+                    if(searchUserResponse.body.totalCount>1){
                         msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         return msg;
                         return msg;
                     }
                     }
@@ -605,9 +605,9 @@ public class UserCorpwxTimeController {
                     String username =row.getCell(2).getStringCellValue().trim();
                     String username =row.getCell(2).getStringCellValue().trim();
                     //检查人员是否存在
                     //检查人员是否存在
                     Optional<User> any;
                     Optional<User> any;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
-                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findAny();
+                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&(u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid())))).findAny();
                     }else {
                     }else {
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                     }
                     }

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserReportDeptController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-29
+ */
+@RestController
+@RequestMapping("/user-report-dept")
+public class UserReportDeptController {
+
+}
+

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -560,6 +560,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("hide_subproject")
     @TableField("hide_subproject")
     private Integer hideSubproject;
     private Integer hideSubproject;
 
 
+    /**
+     * 是否开启设置可填报部门 0-否 1-是
+     */
+    @TableField("user_with_multi_dept")
+    private Integer userWithMultiDept;
+
     /**
     /**
      * 开启日报审批流的本部门负责人由上级部门负责人审核
      * 开启日报审批流的本部门负责人由上级部门负责人审核
      */
      */

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/User.java

@@ -296,6 +296,9 @@ public class User extends Model<User> {
     @TableField("only_audit_once")
     @TableField("only_audit_once")
     private Integer onlyAuditOnce;
     private Integer onlyAuditOnce;
 
 
+    @TableField(exist = false)
+    private List<Department> userReportDeptList;
+
 
 
     @Override
     @Override
     protected Serializable pkVal() {
     protected Serializable pkVal() {

+ 42 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/UserReportDept.java

@@ -0,0 +1,42 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class UserReportDept extends Model<UserReportDept> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("user_id")
+    private String userId;
+
+    @TableField("dept_id")
+    private Integer deptId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/UserReportDeptMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.UserReportDept;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-29
+ */
+public interface UserReportDeptMapper extends BaseMapper<UserReportDept> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserReportDeptService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.UserReportDept;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-29
+ */
+public interface UserReportDeptService extends IService<UserReportDept> {
+
+}

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

@@ -38,7 +38,7 @@ public interface UserService extends IService<User> {
     HttpRespMsg insertUser(String id, String name, String phone,Integer onlyAuditOnce, Integer roleId, Double monthCost, Double cost, Integer departmentId,
     HttpRespMsg insertUser(String id, String name, String phone,Integer onlyAuditOnce, Integer roleId, Double monthCost, Double cost, Integer departmentId,
                            Integer salaryType, String costApplyDate, String position, String certJson,
                            Integer salaryType, String costApplyDate, String position, String certJson,
                            HttpServletRequest request,String inductionDate, String superiorId,String plate1,
                            HttpServletRequest request,String inductionDate, String superiorId,String plate1,
-                           String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate);
+                           String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate,String reportDeptIds);
 
 
     HttpRespMsg importUser(MultipartFile multipartFile, HttpServletRequest request);
     HttpRespMsg importUser(MultipartFile multipartFile, HttpServletRequest request);
 
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java

@@ -615,7 +615,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
                 .setFullMatchField(searchType);
                 .setFullMatchField(searchType);
         try {
         try {
             SearchUserResponse searchUserResponse = client.searchUserWithOptions(searchUserRequest, searchUserHeaders, new RuntimeOptions());
             SearchUserResponse searchUserResponse = client.searchUserWithOptions(searchUserRequest, searchUserHeaders, new RuntimeOptions());
-            System.out.println("获取到的搜索人员结果:==============>"+searchUserResponse);
+            System.out.println("获取到的搜索人员结果:==============>"+searchUserResponse.body);
             msg.data=searchUserResponse;
             msg.data=searchUserResponse;
             return msg;
             return msg;
         } catch (TeaException err) {
         } catch (TeaException err) {

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -879,7 +879,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     for (String name : userNameList) {
                     for (String name : userNameList) {
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                        if(searchUserResponse.body.totalCount>0){
+                        if(searchUserResponse.body.totalCount>1){
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             return msg;
                             return msg;
                         }
                         }
@@ -919,9 +919,9 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                         .atZone(ZoneId.systemDefault()).toLocalDate();
                         .atZone(ZoneId.systemDefault()).toLocalDate();
                 expenseSheet.setCreateDate(localDate);
                 expenseSheet.setCreateDate(localDate);
                 Optional<User> first;
                 Optional<User> first;
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(reimburserName)).findFirst();
                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(reimburserName)).findFirst();
-                    first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))||(optional.isPresent()&&us.getCorpwxUserid()!=null&&us.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                    first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))||(optional.isPresent()&&(us.getCorpwxUserid()!=null&&us.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(us.getDingdingUserid()!=null&&us.getDingdingUserid().equals(optional.get().getCorpwxUserid())))).findFirst();
                 }else {
                 }else {
                     first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))).findFirst();
                     first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))).findFirst();
                 }
                 }

+ 28 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java

@@ -2,6 +2,7 @@ package com.management.platform.service.impl;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.dingtalkcontact_1_0.models.SearchUserResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -55,6 +56,8 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
     @Resource
     @Resource
     private SysFunctionService sysFunctionService;
     private SysFunctionService sysFunctionService;
     @Resource
     @Resource
+    private CompanyDingdingService companyDingdingService;
+    @Resource
     private ProjectApprovalCheckService projectApprovalCheckService;
     private ProjectApprovalCheckService projectApprovalCheckService;
     @Resource
     @Resource
     private WxCorpInfoService wxCorpInfoService;
     private WxCorpInfoService wxCorpInfoService;
@@ -173,6 +176,7 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
         User user = userMapper.selectById(request.getHeader("token"));
         User user = userMapper.selectById(request.getHeader("token"));
         String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
         String[] arr=new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, user.getCompanyId()));
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         String fileName = multipartFile.getOriginalFilename();
         String fileName = multipartFile.getOriginalFilename();
         File file = new File(fileName == null ? "file" : fileName);
         File file = new File(fileName == null ? "file" : fileName);
@@ -245,6 +249,7 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                     userNameList.add(inchargerName);
                     userNameList.add(inchargerName);
                 }
                 }
             }
             }
+            List<User> targetUserList=new ArrayList<>();
             HttpRespMsg respMsg=new HttpRespMsg();
             HttpRespMsg respMsg=new HttpRespMsg();
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
                 System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
                 System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
@@ -253,8 +258,26 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     return msg;
                     return msg;
                 }
                 }
+                targetUserList= (List<User>) respMsg.data;
+            }
+            if(dingding!=null&&dingding.getContactNeedTranslate()==1&&userNameList.size()>0){
+                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
+                for (String name : userNameList) {
+                    respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
+                    SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
+                    if(searchUserResponse.body.totalCount>1){
+                        msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
+                        return msg;
+                    }
+                    if(searchUserResponse.body.list.size()>0){
+                        User item=new User();
+                        //为了修改代码 此处用企业微信同一个字段 setCorpwxUserid
+                        item.setName(name);
+                        item.setCorpwxUserid(searchUserResponse.body.list.get(0));
+                        targetUserList.add(item);
+                    }
+                }
             }
             }
-            List<User> targetUserList= (List<User>) respMsg.data;
             int importCount = 0;
             int importCount = 0;
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
                 XSSFRow row = sheet.getRow(rowIndex);
                 XSSFRow row = sheet.getRow(rowIndex);
@@ -372,17 +395,17 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                         Optional<User> first;
                         Optional<User> first;
                         Integer exception=null;
                         Integer exception=null;
                         if(split.length==1){
                         if(split.length==1){
-                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&(u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid())))).findFirst();
                             }else {
                             }else {
                                 first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                 first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                             }
                             }
                             exception=0;
                             exception=0;
                         }else {
                         }else {
-                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&(u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid())))).findFirst();
                                 exception=1;
                                 exception=1;
                             }else {
                             }else {
                                 first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                 first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java

@@ -225,7 +225,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
                 for (String name : userNameList) {
                 for (String name : userNameList) {
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                    if(searchUserResponse.body.totalCount>0){
+                    if(searchUserResponse.body.totalCount>1){
                         msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         return msg;
                         return msg;
                     }
                     }
@@ -290,9 +290,9 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
                     String username = userNameCell.getStringCellValue().trim();
                     String username = userNameCell.getStringCellValue().trim();
                     //检查人员是否存在
                     //检查人员是否存在
                     Optional<User> userOp;
                     Optional<User> userOp;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
-                        userOp= allUserList.stream().filter(u ->((u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid())))).findFirst();
+                        userOp= allUserList.stream().filter(u ->((u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getCorpwxUserid()!=null&&u.getDingdingUserid().equals(optional.get().getDingdingUserid())))))).findFirst();
                     }else {
                     }else {
                         userOp= allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findFirst();
                         userOp= allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findFirst();
                     }
                     }

+ 42 - 42
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -4528,7 +4528,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     for (String name : userNameList) {
                     for (String name : userNameList) {
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                        if(searchUserResponse.body.totalCount>0){
+                        if(searchUserResponse.body.totalCount>1){
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             return msg;
                             return msg;
                         }
                         }
@@ -4684,17 +4684,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             Optional<User> first;
                             Optional<User> first;
                             Integer exception=null;
                             Integer exception=null;
                             if(split.length==1){
                             if(split.length==1){
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                 }
                                 }
                                 exception=0;
                                 exception=0;
                             }else {
                             }else {
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     exception=1;
                                     exception=1;
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -4834,17 +4834,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             Optional<User> first;
                             Optional<User> first;
                             Integer exception=null;
                             Integer exception=null;
                             if(split.length==1){
                             if(split.length==1){
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                 }
                                 }
                                 exception=0;
                                 exception=0;
                             }else {
                             }else {
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     exception=1;
                                     exception=1;
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -4881,17 +4881,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -4948,17 +4948,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -5015,17 +5015,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -5181,7 +5181,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     for (String name : userNameList) {
                     for (String name : userNameList) {
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                         SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                        if(searchUserResponse.body.totalCount>0){
+                        if(searchUserResponse.body.totalCount>1){
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                             return msg;
                             return msg;
                         }
                         }
@@ -5489,17 +5489,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             Optional<User> first;
                             Optional<User> first;
                             Integer exception=null;
                             Integer exception=null;
                             if(split.length==1){
                             if(split.length==1){
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                 }
                                 }
                                 exception=0;
                                 exception=0;
                             }else {
                             }else {
-                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                     Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                    first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     exception=1;
                                     exception=1;
                                 }else {
                                 }else {
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                     first= userList.stream().filter(u -> u.getName().equals(split[0])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -6091,17 +6091,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         Optional<User> first;
                         Optional<User> first;
                         Integer exception=null;
                         Integer exception=null;
                         if(split.length==1){
                         if(split.length==1){
-                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                             }else {
                             }else {
                                 first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                 first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                             }
                             }
                             exception=0;
                             exception=0;
                         }else {
                         }else {
-                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                 Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                 exception=1;
                                 exception=1;
                             }else {
                             }else {
                                 first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                 first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -6136,17 +6136,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -6203,17 +6203,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
@@ -6271,17 +6271,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                 Optional<User> first;
                                 Optional<User> first;
                                 Integer exception=null;
                                 Integer exception=null;
                                 if(split.length==1){
                                 if(split.length==1){
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
                                     }
                                     }
                                     exception=0;
                                     exception=0;
                                 }else {
                                 }else {
-                                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
                                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
-                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                                        first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                                         exception=1;
                                         exception=1;
                                     }else {
                                     }else {
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
                                         first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();

+ 51 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -3,6 +3,7 @@ package com.management.platform.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.dingtalkcontact_1_0.models.SearchUserResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -101,6 +102,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     @Resource
     private ReportLogDetailMapper reportLogDetailMapper;
     private ReportLogDetailMapper reportLogDetailMapper;
     @Resource
     @Resource
+    private CompanyDingdingService companyDingdingService;
+    @Resource
     private ReportBatchMapper reportBatchMapper;
     private ReportBatchMapper reportBatchMapper;
     @Resource
     @Resource
     private ReportLogDetailService reportLogDetailService;
     private ReportLogDetailService reportLogDetailService;
@@ -159,8 +162,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     @Resource
     private SapProjectServiceMapper sapProjectServiceMapper;
     private SapProjectServiceMapper sapProjectServiceMapper;
     @Resource
     @Resource
-    private CompanyDingdingService companyDingdingService;
-    @Resource
     private InformationMapper informationMapper;
     private InformationMapper informationMapper;
     @Resource
     @Resource
     private TimeTypeMapper timeTypeMapper;
     private TimeTypeMapper timeTypeMapper;
@@ -4585,6 +4586,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         String token = request.getHeader("TOKEN");
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         User user = userMapper.selectById(token);
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, companyId));
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         //对于存在预算成本的公司,暂不支持导入工时
         //对于存在预算成本的公司,暂不支持导入工时
         Company company = companyMapper.selectById(companyId);
         Company company = companyMapper.selectById(companyId);
@@ -4662,15 +4664,35 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             int deptColumnExtra = (hasDept?1:0);
             int deptColumnExtra = (hasDept?1:0);
             //下标从0开始
             //下标从0开始
             int projectNameStartIndex = (withCheckIn==null?2:(6 + deptColumnExtra));
             int projectNameStartIndex = (withCheckIn==null?2:(6 + deptColumnExtra));
+            List<User> targetUserList=new ArrayList<>();
             HttpRespMsg respMsg=new HttpRespMsg();
             HttpRespMsg respMsg=new HttpRespMsg();
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
+                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
                 respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
                 respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
                 if(respMsg.code.equals("0")){
                 if(respMsg.code.equals("0")){
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     return msg;
                     return msg;
                 }
                 }
+                targetUserList= (List<User>) respMsg.data;
+            }
+            if(dingding!=null&&dingding.getContactNeedTranslate()==1&&userNameList.size()>0){
+                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
+                for (String name : userNameList) {
+                    respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
+                    SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
+                    if(searchUserResponse.body.totalCount>1){
+                        msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
+                        return msg;
+                    }
+                    if(searchUserResponse.body.list.size()>0){
+                        User item=new User();
+                        //为了修改代码 此处用企业微信同一个字段 setCorpwxUserid
+                        item.setName(name);
+                        item.setCorpwxUserid(searchUserResponse.body.list.get(0));
+                        targetUserList.add(item);
+                    }
+                }
             }
             }
-            List<User> targetUserList= (List<User>) respMsg.data;
             int dataCount = 0;
             int dataCount = 0;
 
 
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
@@ -4745,9 +4767,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     String username = withCheckIn==null?row.getCell(1).getStringCellValue().trim():row.getCell(2).getStringCellValue().trim();
                     String username = withCheckIn==null?row.getCell(1).getStringCellValue().trim():row.getCell(2).getStringCellValue().trim();
                     //检查人员是否存在
                     //检查人员是否存在
                     Optional<User> any;
                     Optional<User> any;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
-                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findAny();
+                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findAny();
                     }else {
                     }else {
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                     }
                     }
@@ -4916,6 +4938,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         String token = request.getHeader("TOKEN");
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         User user = userMapper.selectById(token);
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, companyId));
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         //对于存在预算成本的公司,暂不支持导入工时
         //对于存在预算成本的公司,暂不支持导入工时
         Company company = companyMapper.selectById(companyId);
         Company company = companyMapper.selectById(companyId);
@@ -4989,14 +5012,34 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             }
             }
             //下标从0开始
             //下标从0开始
             HttpRespMsg respMsg=new HttpRespMsg();
             HttpRespMsg respMsg=new HttpRespMsg();
+            List<User> targetUserList=new ArrayList<>();
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
+                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
                 respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
                 respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
                 if(respMsg.code.equals("0")){
                 if(respMsg.code.equals("0")){
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
                     return msg;
                     return msg;
                 }
                 }
+                targetUserList= (List<User>) respMsg.data;
+            }
+            if(dingding!=null&&dingding.getContactNeedTranslate()==1&&userNameList.size()>0){
+                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
+                for (String name : userNameList) {
+                    respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
+                    SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
+                    if(searchUserResponse.body.totalCount>1){
+                        msg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
+                        return msg;
+                    }
+                    if(searchUserResponse.body.list.size()>0){
+                        User item=new User();
+                        //为了修改代码 此处用企业微信同一个字段 setCorpwxUserid
+                        item.setName(name);
+                        item.setCorpwxUserid(searchUserResponse.body.list.get(0));
+                        targetUserList.add(item);
+                    }
+                }
             }
             }
-            List<User> targetUserList= (List<User>) respMsg.data;
             int dataCount = 0;
             int dataCount = 0;
 
 
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
@@ -5034,9 +5077,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                     }
                     //检查人员是否存在
                     //检查人员是否存在
                     Optional<User> any;
                     Optional<User> any;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
                         Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
-                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findAny();
+                        any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findAny();
                     }else {
                     }else {
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                         any = allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findAny();
                     }
                     }

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -325,7 +325,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                 for (String name : userNameList) {
                 for (String name : userNameList) {
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     respMsg= companyDingdingService.getSearchUserInfo(dingding,name,1);
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
                     SearchUserResponse searchUserResponse = (SearchUserResponse) respMsg.data;
-                    if(searchUserResponse.body.totalCount>0){
+                    if(searchUserResponse.body.totalCount>1){
                         httpRespMsg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         httpRespMsg.setError("姓名为["+name+"]的人员存在重复,请使用工号!");
                         return httpRespMsg;
                         return httpRespMsg;
                     }
                     }
@@ -445,9 +445,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                     for (int i=0;i<executorNameList.size();i++) {
                     for (int i=0;i<executorNameList.size();i++) {
                         String executorName = executorNameList.get(i);
                         String executorName = executorNameList.get(i);
                         Optional<User> first = null;
                         Optional<User> first = null;
-                        if (isCorpWxUser) {
+                        if ((isCorpWxUser)||(dingding!=null&&dingding.getContactNeedTranslate()==1)) {
                             Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(executorName)).findFirst();
                             Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(executorName)).findFirst();
-                            first = allUserList.stream().filter(u->(optional.isPresent()&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
+                            first = allUserList.stream().filter(u->(optional.isPresent()&&((u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
                         } else {
                         } else {
                             first = allUserList.stream().filter(u ->u.getName().equals(executorName)).findFirst();
                             first = allUserList.stream().filter(u ->u.getName().equals(executorName)).findFirst();
                         }
                         }

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserReportDeptServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.UserReportDept;
+import com.management.platform.mapper.UserReportDeptMapper;
+import com.management.platform.service.UserReportDeptService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-29
+ */
+@Service
+public class UserReportDeptServiceImpl extends ServiceImpl<UserReportDeptMapper, UserReportDept> implements UserReportDeptService {
+
+}

+ 39 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -216,6 +216,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private TaskGroupService taskGroupService;
     private TaskGroupService taskGroupService;
     @Resource
     @Resource
     private ParticipationService participationService;
     private ParticipationService participationService;
+    @Resource
+    private UserReportDeptService userReportDeptService;
 
 
     @Resource
     @Resource
     private LdapTemplate ldapTemplate;
     private LdapTemplate ldapTemplate;
@@ -751,6 +753,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             if (reportCount>0 || taskExecutorCount>0 || projectInchargerList>0){
             if (reportCount>0 || taskExecutorCount>0 || projectInchargerList>0){
                 reportCount = 1;
                 reportCount = 1;
             }
             }
+            List<UserReportDept> userReportDepts = userReportDeptService.list(new LambdaQueryWrapper<UserReportDept>().eq(UserReportDept::getUserId, id));
+            if(userReportDepts.size()>0){
+                List<Integer> deptIds = userReportDepts.stream().map(UserReportDept::getDeptId).distinct().collect(Collectors.toList());
+                List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getDepartmentId, deptIds));
+                user.setUserReportDeptList(departmentList);
+            }else {
+                user.setUserReportDeptList(new ArrayList<>());
+            }
             user.setIsExistsReport(reportCount);
             user.setIsExistsReport(reportCount);
             httpRespMsg.data = user;
             httpRespMsg.data = user;
         }
         }
@@ -1313,7 +1323,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Override
     @Override
     public HttpRespMsg insertUser(String targetId, String name, String phone, Integer onlyAuditOnce, Integer roleId, Double monthCost, Double cost,
     public HttpRespMsg insertUser(String targetId, String name, String phone, Integer onlyAuditOnce, Integer roleId, Double monthCost, Double cost,
                                   Integer departmentId, Integer salaryType, String costApplyDate, String position, String certJson, HttpServletRequest request,String inductionDate,
                                   Integer departmentId, Integer salaryType, String costApplyDate, String position, String certJson, HttpServletRequest request,String inductionDate,
-                                  String superiorId,   String plate1,String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate) {
+                                  String superiorId,   String plate1,String plate2,String plate3,String plate4,String plate5, String jobNumber, String inactiveDate,String reportDeptIds) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         try {
         try {
@@ -1390,6 +1400,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                                 userCertService.saveBatch(certList);
                                 userCertService.saveBatch(certList);
                             }
                             }
                         }
                         }
+                        if(!StringUtils.isEmpty(reportDeptIds)){
+                            List<UserReportDept> userReportDeptList=new ArrayList<>();
+                            String[] split = reportDeptIds.split(",");
+                            List<Integer> deptIds = Arrays.asList(split).stream().map(i -> Integer.valueOf(i)).collect(Collectors.toList());
+                            deptIds.forEach(d->{
+                                UserReportDept userReportDept=new UserReportDept();
+                                userReportDept.setUserId(user.getId());
+                                userReportDept.setDeptId(d);
+                                userReportDeptList.add(userReportDept);
+                            });
+                            userReportDeptService.saveBatch(userReportDeptList);
+                        }
                     }
                     }
                 }
                 }
             } else {
             } else {
@@ -1457,6 +1479,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     userMapper.setSuperiorNull(oldUser.getId());
                     userMapper.setSuperiorNull(oldUser.getId());
                 }
                 }
 
 
+                if(!StringUtils.isEmpty(reportDeptIds)){
+                    userReportDeptService.remove(new LambdaQueryWrapper<UserReportDept>().eq(UserReportDept::getUserId,targetId));
+                    List<UserReportDept> userReportDeptList=new ArrayList<>();
+                    String[] split = reportDeptIds.split(",");
+                    List<Integer> deptIds = Arrays.asList(split).stream().map(i -> Integer.valueOf(i)).collect(Collectors.toList());
+                    deptIds.forEach(d->{
+                        UserReportDept userReportDept=new UserReportDept();
+                        userReportDept.setUserId(targetId);
+                        userReportDept.setDeptId(d);
+                        userReportDeptList.add(userReportDept);
+                    });
+                    userReportDeptService.saveBatch(userReportDeptList);
+                }else {
+                    //清空数据
+                    userReportDeptService.remove(new LambdaQueryWrapper<UserReportDept>().eq(UserReportDept::getUserId,targetId));
+                }
                 if (salaryChange) {
                 if (salaryChange) {
                     UserSalary userSalary = UserSalary.copyFromUser(oldUser);
                     UserSalary userSalary = UserSalary.copyFromUser(oldUser);
                     userSalaryMapper.insert(userSalary);
                     userSalaryMapper.insert(userSalary);

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -284,7 +284,7 @@
         CONCAT(FORMAT(COUNT(CASE WHEN t.task_status=0 THEN 1 END)/COUNT(t.name)*100, 2), '%') AS noCompletedPercent,CONCAT(FORMAT(COUNT(CASE WHEN t.finish_date &lt;= t.end_date AND t.task_status=1  THEN 1 END)/COUNT(t.name)*100, 2), '%') AS onTimePercent
         CONCAT(FORMAT(COUNT(CASE WHEN t.task_status=0 THEN 1 END)/COUNT(t.name)*100, 2), '%') AS noCompletedPercent,CONCAT(FORMAT(COUNT(CASE WHEN t.finish_date &lt;= t.end_date AND t.task_status=1  THEN 1 END)/COUNT(t.name)*100, 2), '%') AS onTimePercent
         FROM
         FROM
         task_executor te
         task_executor te
-        LEFT JOIN user u ON te.executor_id=u.id
+        LEFT JOIN `user` u ON te.executor_id=u.id
         LEFT JOIN department d ON u.department_id=d.department_id
         LEFT JOIN department d ON u.department_id=d.department_id
         LEFT JOIN task t ON te.task_id=t.`id`
         LEFT JOIN task t ON te.task_id=t.`id`
         WHERE u.company_id=#{companyId}
         WHERE u.company_id=#{companyId}
@@ -314,7 +314,7 @@
         SELECT u.id as userId
         SELECT u.id as userId
         FROM
         FROM
         task_executor te
         task_executor te
-        LEFT JOIN user u ON te.executor_id=u.id
+        LEFT JOIN `user` u ON te.executor_id=u.id
         LEFT JOIN department d ON u.department_id=d.department_id
         LEFT JOIN department d ON u.department_id=d.department_id
         LEFT JOIN task t ON te.task_id=t.`id`
         LEFT JOIN task t ON te.task_id=t.`id`
         WHERE u.company_id=#{companyId}
         WHERE u.company_id=#{companyId}
@@ -343,7 +343,7 @@
         (CASE t.`task_status` WHEN 0 THEN '进行中' WHEN 1 THEN '已完成' ELSE '已撤销' END) AS stateValue
         (CASE t.`task_status` WHEN 0 THEN '进行中' WHEN 1 THEN '已完成' ELSE '已撤销' END) AS stateValue
         FROM
         FROM
         task_executor te
         task_executor te
-        LEFT JOIN user u ON te.executor_id=u.id
+        LEFT JOIN `user` u ON te.executor_id=u.id
         LEFT JOIN task t ON te.task_id=t.`id`
         LEFT JOIN task t ON te.task_id=t.`id`
         WHERE t.start_date &lt; #{endDate} AND t.end_date &gt; #{startDate} AND FIND_IN_SET(#{userId},t.`executor_id`) GROUP BY t.`id`
         WHERE t.start_date &lt; #{endDate} AND t.end_date &gt; #{startDate} AND FIND_IN_SET(#{userId},t.`executor_id`) GROUP BY t.`id`
         <if test="pageStart != null and pageSize != null">
         <if test="pageStart != null and pageSize != null">
@@ -355,7 +355,7 @@
         SELECT t.`name` AS taskName
         SELECT t.`name` AS taskName
         FROM
         FROM
         task_executor te
         task_executor te
-        LEFT JOIN user u ON te.executor_id=u.id
+        LEFT JOIN `user` u ON te.executor_id=u.id
         LEFT JOIN task t ON te.task_id=t.`id`
         LEFT JOIN task t ON te.task_id=t.`id`
         WHERE t.start_date &lt; #{endDate} AND t.end_date &gt; #{startDate} AND FIND_IN_SET(#{userId},t.`executor_id`) GROUP BY t.`id`
         WHERE t.start_date &lt; #{endDate} AND t.end_date &gt; #{startDate} AND FIND_IN_SET(#{userId},t.`executor_id`) GROUP BY t.`id`
         )as total
         )as total

File diff suppressed because it is too large
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 17 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserReportDeptMapper.xml

@@ -0,0 +1,17 @@
+<?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.UserReportDeptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.UserReportDept">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="dept_id" property="deptId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, dept_id
+    </sql>
+
+</mapper>