Bläddra i källkod

给余水明等写的代码bug擦屁股

zhouyy 4 månader sedan
förälder
incheckning
c38065943f

+ 0 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/SalesOrderController.java

@@ -606,7 +606,6 @@ public class SalesOrderController {
     * @Date: 2024/5/31
     */
     @RequestMapping("/deletePayment")
-    @Transactional
     public HttpRespMsg deletePayment(Integer paymentId){
         HttpRespMsg msg=new HttpRespMsg();
         SalesOrderPayment payment = salesOrderPaymentService.getById(paymentId);

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

@@ -39,7 +39,7 @@ public class BusinessOpportunity extends Model<BusinessOpportunity> {
 
     @TableField(exist = false)
     private String productName;
-    @TableField(exist = false)
+    @TableField("clue_id")
     private Integer clueId;
 
     /**

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

@@ -92,6 +92,12 @@ public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> i
     @Value(value = "${upload.path}")
     private String path;
 
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -887,10 +893,39 @@ public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> i
         }
 
         Page<ContactsVo> pageContacts = contactsMapper.pageContactsByPin(new Page( pageIndex, pageSize), map);
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+        Map<String, User> companyUserMap = new HashMap<>();
+        if(CollectionUtils.isNotEmpty(userList)){
+            companyUserMap  = userList.stream().collect(Collectors.toMap(User::getId, t -> t));
+        }
 
         List<ContactsVo> records = pageContacts.getRecords();
         long total = pageContacts.getTotal();
 
+        for (ContactsVo record : records) {
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                User ownUser = companyUserMap.getOrDefault(record.getOwnerId(), null);
+                if(null != ownUser){
+                    record.setOwnerName("$username="+ownUser.getCorpwxUserid()+"$");
+                }
+                User createUser = companyUserMap.getOrDefault(record.getCreatorId(), null);
+                if(null != createUser){
+                    record.setCreatorName("$username="+createUser.getCorpwxUserid()+"$");
+                }
+            }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                User ownUser = companyUserMap.getOrDefault(record.getOwnerId(), null);
+                if(null != ownUser){
+                    record.setOwnerName("$username="+ownUser.getDingdingUserid()+"$");
+                }
+                User createUser = companyUserMap.getOrDefault(record.getCreatorId(), null);
+                if(null != createUser){
+                    record.setCreatorName("$username="+createUser.getDingdingUserid()+"$");
+                }
+            }
+        }
+
         HashMap<String, Object> hashMap = new HashMap<>();
         hashMap.put("records", records);
         hashMap.put("total", total);

+ 21 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ContractServiceImpl.java

@@ -15,6 +15,7 @@ import com.management.platform.service.ExcelExportService;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.EncryptedDocumentException;
@@ -84,6 +85,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
     @Autowired
     private ContractPayCustomizedMapper contractPayCustomizedMapper;
 
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
 
 
     /**
@@ -1526,6 +1530,13 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
             User user = userMapper.selectById(token);
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
             List<SysRichFunction> functionContractList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部合同");
+            CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+            List<User> companyUserList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
+            Map<String, User> companyUserMap = new HashMap<>();
+            if(CollectionUtils.isNotEmpty(companyUserList)){
+                companyUserMap  = companyUserList.stream().collect(Collectors.toMap(User::getId, t -> t));
+            }
+
             if(functionContractList.size() <= 0){
                 httpRespMsg.setError(MessageUtils.message("access.viewError"));
                 return httpRespMsg;
@@ -1587,7 +1598,16 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 contractPageVO.setId(contract.getId());
                 contractPageVO.setCompanyId(contract.getCompanyId());
                 contractPageVO.setCreatorId(contract.getCreatorId());
-                contractPageVO.setCreatorName(contract.getCreatorName());
+                User tmpUser = companyUserMap.getOrDefault(contract.getCreatorId(),null);
+                if(null != tmpUser){
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        contractPageVO.setCreatorName("$username="+tmpUser.getCorpwxUserid()+"$");
+                    }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                        contractPageVO.setCreatorName("$username="+tmpUser.getDingdingUserid()+"$");
+                    }else{
+                        contractPageVO.setCreatorName(contract.getCreatorName());
+                    }
+                }
                 contractPageVO.setCreatorWxCorpId(contract.getCreatorWxCorpId());
                 contractPageVO.setStartDate(contract.getStartDate());
                 contractPageVO.setEndDate(contract.getEndDate());

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

@@ -94,6 +94,12 @@ public class CustomServiceImpl extends ServiceImpl<CustomMapper, Custom> impleme
     @Autowired
     private TaskMapper taskMapper;
 
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
     @Override
     public HttpRespMsg insertAndUpdate(Custom custom, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -74,6 +75,12 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     @Resource
     private AttachmentCenterMapper attachmentCenterMapper;
 
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
     @Override
     public HttpRespMsg getList(Integer companyId,String userId, String productName, String productCode,Integer productType,Integer status,String startDate,String endDate, Integer pageIndex, Integer pageSize) {
         HttpRespMsg msg=new HttpRespMsg();
@@ -87,6 +94,10 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
         boolean hasPriviledgeAll = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看全部产品数据");
         boolean hasPriviledgeDept = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看负责部门产品数据");
+
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", targetUsr.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, targetUsr.getCompanyId()));
+
         //判断查看全部的权限
         if(!hasPriviledgeAll){
             //判断查看负责部门的权限
@@ -150,11 +161,23 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         records.forEach(r->{
             Optional<User> user = userList.stream().filter(u -> u.getId().equals(r.getInchargerId())).findFirst();
             if(user.isPresent()){
-                r.setInchargerName(user.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCreatorName("$username="+user.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCreatorName("$username="+user.get().getDingdingUserid()+"$");
+                }else{
+                    r.setInchargerName(user.get().getName());
+                }
             }
             Optional<User> creator = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
             if(creator.isPresent()){
-                r.setCreatorName(creator.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCreatorName("$username="+creator.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCreatorName("$username="+creator.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCreatorName(creator.get().getName());
+                }
             }
             Optional<SysDict> unit = sysDictOfProductUnit.stream().filter(u -> u.getId().equals(r.getUnit())).findFirst();
             if(unit.isPresent()){
@@ -636,6 +659,9 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
         boolean hasPriviledgeAll = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看全部产品数据");
         boolean hasPriviledgeDept = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看负责部门产品数据");
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", targetUsr.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, targetUsr.getCompanyId()));
+
         //判断查看全部的权限
         if(!hasPriviledgeAll){
             //判断查看负责部门的权限
@@ -699,11 +725,23 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         records.forEach(r->{
             Optional<User> user = userList.stream().filter(u -> u.getId().equals(r.getInchargerId())).findFirst();
             if(user.isPresent()){
-                r.setInchargerName(user.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setInchargerName("$username="+user.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setInchargerName("$username="+user.get().getDingdingUserid()+"$");
+                }else{
+                    r.setInchargerName(user.get().getName());
+                }
             }
             Optional<User> creator = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
             if(creator.isPresent()){
-                r.setCreatorName(creator.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCreatorName("$username="+creator.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCreatorName("$username="+creator.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCreatorName(creator.get().getName());
+                }
             }
             Optional<SysDict> unit = sysDictOfProductUnit.stream().filter(u -> u.getId().equals(r.getUnit())).findFirst();
             if(unit.isPresent()){

+ 72 - 8
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/SalesOrderServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -88,6 +89,12 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
     @Value(value = "${upload.path}")
     private String path;
 
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
     @Override
     public HttpRespMsg getList(String inchargerId,Integer orderType, String orderName,
                                String orderCode,Integer customId,String businessName,
@@ -102,6 +109,10 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         LambdaQueryWrapper<SalesOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
         List<Custom> customList = customService.list(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, user.getCompanyId()));
         List<BusinessOpportunity> businessOpportunityList = businessOpportunityService.list(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, user.getCompanyId()));
+
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+
         orderLambdaQueryWrapper.eq(SalesOrder::getCompanyId,user.getCompanyId());
         if(isDelete!=null){
             orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,isDelete);
@@ -198,19 +209,43 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         records.forEach(r->{
             Optional<User> item = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
             if(item.isPresent()){
-                r.setCreatorName(item.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCreatorName("$username="+item.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCreatorName("$username="+item.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCreatorName(item.get().getName());
+                }
             }
             Optional<User> incharger = userList.stream().filter(u -> u.getId().equals(r.getInchargerId())).findFirst();
             if(incharger.isPresent()){
-                r.setInchargerName(incharger.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setInchargerName("$username="+incharger.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setInchargerName("$username="+incharger.get().getDingdingUserid()+"$");
+                }else{
+                    r.setInchargerName(incharger.get().getName());
+                }
             }
             Optional<User> companySigner = userList.stream().filter(u -> u.getId().equals(r.getCompanySigner())).findFirst();
             if(companySigner.isPresent()){
-                r.setCompanySignerName(companySigner.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCompanySignerName("$username="+companySigner.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCompanySignerName("$username="+companySigner.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCompanySignerName(companySigner.get().getName());
+                }
             }
             Optional<User> customSigner = userList.stream().filter(u -> u.getId().equals(r.getCustomSigner())).findFirst();
             if(customSigner.isPresent()){
-                r.setCustomSignerName(customSigner.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCustomSignerName("$username="+customSigner.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCustomSignerName("$username="+customSigner.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCustomSignerName(customSigner.get().getName());
+                }
             }
             Optional<SysDict> type = sysDictOfOrderType.stream().filter(s -> s.getId().equals(r.getType())).findFirst();
             if(type.isPresent()){
@@ -295,6 +330,9 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         LambdaQueryWrapper<SalesOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
         List<Custom> customList = customService.list(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, user.getCompanyId()));
         List<BusinessOpportunity> businessOpportunityList = businessOpportunityService.list(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, user.getCompanyId()));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+
         orderLambdaQueryWrapper.eq(SalesOrder::getCompanyId,user.getCompanyId());
         if(isDelete!=null){
             orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,isDelete);
@@ -397,19 +435,45 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         records.forEach(r->{
             Optional<User> item = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
             if(item.isPresent()){
-                r.setCreatorName(item.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCreatorName("$username="+item.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCreatorName("$username="+item.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCreatorName(item.get().getName());
+                }
+
             }
             Optional<User> incharger = userList.stream().filter(u -> u.getId().equals(r.getInchargerId())).findFirst();
             if(incharger.isPresent()){
-                r.setInchargerName(incharger.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setInchargerName("$username="+incharger.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setInchargerName("$username="+incharger.get().getDingdingUserid()+"$");
+                }else{
+                    r.setInchargerName(incharger.get().getName());
+                }
+
             }
             Optional<User> companySigner = userList.stream().filter(u -> u.getId().equals(r.getCompanySigner())).findFirst();
             if(companySigner.isPresent()){
-                r.setCompanySignerName(companySigner.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCompanySignerName("$username="+companySigner.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCompanySignerName("$username="+companySigner.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCompanySignerName(companySigner.get().getName());
+                }
             }
             Optional<User> customSigner = userList.stream().filter(u -> u.getId().equals(r.getCustomSigner())).findFirst();
             if(customSigner.isPresent()){
-                r.setCustomSignerName(customSigner.get().getName());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    r.setCustomSignerName("$username="+customSigner.get().getCorpwxUserid()+"$");
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    r.setCustomSignerName("$username="+customSigner.get().getDingdingUserid()+"$");
+                }else{
+                    r.setCustomSignerName(customSigner.get().getName());
+                }
             }
             Optional<SysDict> type = sysDictOfOrderType.stream().filter(s -> s.getId().equals(r.getType())).findFirst();
             if(type.isPresent()){

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

@@ -14,6 +14,7 @@ import com.management.platform.mapper.*;
 import com.management.platform.service.*;
 import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.xssf.usermodel.XSSFCell;
@@ -112,6 +113,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
 
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -1228,6 +1232,14 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部任务");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门任务");
 
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+        Map<String, User> companyUserMap = new HashMap<>();
+        if(CollectionUtils.isNotEmpty(userList)){
+            companyUserMap  = userList.stream().collect(Collectors.toMap(User::getId, t -> t));
+        }
+
         if (isAll){
             System.out.println("do nothing");
         }else if (isNotAll){
@@ -1241,6 +1253,17 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
 
         List<TasKVo> taskVoList =taskMapper.getPageListTaskByPin(taskDto);
         for (TasKVo tasKVo : taskVoList) {
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                User tmpUser = companyUserMap.getOrDefault(tasKVo.getCreaterId(), null);
+                if(null != tmpUser){
+                    tasKVo.setCreaterName("$username="+tmpUser.getCorpwxUserid()+"$");
+                }
+            }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                User tmpUser = companyUserMap.getOrDefault(tasKVo.getCreaterId(), null);
+                if(null != tmpUser){
+                    tasKVo.setCreaterName("$username="+tmpUser.getDingdingUserid()+"$");
+                }
+            }
             if (!taskExecutorList.isEmpty()){
                 List<TaskExecutor> collect = taskExecutorList.stream().
                         filter(taskExecutor -> taskExecutor.getTaskId().equals(tasKVo.getId())).
@@ -1298,8 +1321,33 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         HttpRespMsg respMsg = new HttpRespMsg();
         TasKVo tasKVo = new TasKVo();
         Task task = taskMapper.selectById(id);
+        User user = userMapper.selectById(request.getHeader("Token"));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+
         if (task!=null){
             BeanUtils.copyProperties(task,tasKVo);
+            List<String> queryIds = new ArrayList<>();
+            queryIds.add(task.getOwnerId());
+            queryIds.add(task.getCreaterId());
+            Map<String, User> companyUserMap = new HashMap<>();
+            if(CollectionUtils.isNotEmpty(queryIds)){
+                List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getId, queryIds));
+                if(CollectionUtils.isNotEmpty(users)){
+                    companyUserMap  = users.stream().collect(Collectors.toMap(User::getId, t -> t));
+                }
+            }
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                User createUser = companyUserMap.getOrDefault(task.getCreaterId(), null);
+                if(null != createUser){
+                    task.setCreaterName("$username="+createUser.getCorpwxUserid()+"$");
+                }
+            }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                User createUser = companyUserMap.getOrDefault(task.getCreaterId(), null);
+                if(null != createUser){
+                    task.setCreaterName("$username="+createUser.getDingdingUserid()+"$");
+                }
+            }
             if (task.getContactsId()!=null){
                 Contacts contacts = contactsMapper.selectById(task.getContactsId());
                 if (contacts!=null){

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

@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.constant.Constant;
-import com.management.platform.controller.WeiXinCorpController;
 import com.management.platform.entity.*;
 import com.management.platform.entity.vo.SysRichFunction;
 import com.management.platform.entity.vo.UserVO;
@@ -22,8 +21,6 @@ import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
 import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
 import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
-import org.apache.commons.collections4.Put;
-import org.apache.commons.io.FileUtils;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.poi.hssf.usermodel.*;
@@ -36,12 +33,13 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.*;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.ldap.core.LdapTemplate;
 import org.springframework.ldap.filter.EqualsFilter;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
@@ -229,6 +227,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Resource
     private StageService stageService;
 
+    @Resource
+    private CompanyDingdingMapper companyDingdingMapper;
+
     @Resource
     private LdapTemplate ldapTemplate;
 
@@ -1935,6 +1936,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         //企业微信通讯录搜索功能
         Integer WXCompanyId = user.getCompanyId();
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
+
+        CompanyDingding dingding = companyDingdingMapper.selectOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+
+        List<User> companyUsers = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
+        Map<String, User> companyUserMap = companyUsers.stream().collect(Collectors.toMap(User::getId, t -> t));
         //当企业开启了微信通讯录的情况下
         if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
             HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,1,200);
@@ -1946,6 +1952,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             if (users.size()!=0){
 //                List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
                 List<Map<String,Object>> realUser = userMapper.selectListSimple(users);
+                for (Map<String, Object> map : realUser) {
+                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                        User tmpUser = companyUserMap.getOrDefault(map.get("value"),null);
+                        if(null != tmpUser){
+                            map.put("label","$username="+tmpUser.getCorpwxUserid()+"$");
+                        }
+                    }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                        User tmpUser = companyUserMap.getOrDefault(map.get("value"),null);
+                        if(null != tmpUser){
+                            map.put("label","$username="+tmpUser.getDingdingUserid()+"$");
+                        }
+                    }
+                }
                 msg.data = realUser;
                 return msg;
             }else {
@@ -1971,6 +1990,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
 //            List<User> userList = userMapper.selectList(wrapper);
             List<Map<String, Object>> userList=userMapper.getSimpleActiveUserList(hashMap);
+            for (Map<String, Object> map : userList) {
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    User tmpUser = companyUserMap.getOrDefault(map.get("value"),null);
+                    if(null != tmpUser){
+                        map.put("label","$username="+tmpUser.getCorpwxUserid()+"$");
+                    }
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    User tmpUser = companyUserMap.getOrDefault(map.get("value"),null);
+                    if(null != tmpUser){
+                        map.put("label","$username="+tmpUser.getDingdingUserid()+"$");
+                    }
+                }
+            }
             msg.data = userList;
             return msg;
         }