Explorar o código

部门managers翻译

yucheng %!s(int64=4) %!d(string=hai) anos
pai
achega
b95a22e246

+ 6 - 0
fm-person/pom.xml

@@ -77,6 +77,12 @@
             <artifactId>gson</artifactId>
             <version>2.8.6</version>
         </dependency>
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>fm-translate</artifactId>
+            <version>3.0.0</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
 

+ 3 - 0
fm-person/src/main/java/com/persagy/fm/department/service/impl/DepartmentServiceImpl.java

@@ -23,6 +23,8 @@ import com.persagy.fm.department.model.dto.UpdateDepartmentDTO;
 import com.persagy.fm.department.service.IDepartmentService;
 import com.persagy.fm.depproject.model.dto.AddDepProjectDTO;
 import com.persagy.fm.depproject.service.IDepProjectService;
+import com.persagy.fm.translate.model.Trans;
+import com.persagy.fm.translate.model.TransType;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -165,6 +167,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     }
 
     @Override
+    @Trans(type = TransType.SERVICE, batch = true, source = "personNameTranslator", parameter = "managers", target = "managerShowName")
     public Department queryDepartmentDetail(Long id) {
         Department department = getById(id);
         if (department == null) {

+ 7 - 0
fm-person/src/main/java/com/persagy/fm/person/service/IPersonService.java

@@ -36,6 +36,13 @@ public interface IPersonService {
     Person queryPersonDetail(Long id);
 
     /**
+     * 通过主键数组查询人员
+     * @param ids 主键List
+     * @return
+     */
+    List<Person> queryByIds(List<Long> ids);
+
+    /**
      * 更新人员
      *
      * @param updatePersonDTO updateDTO

+ 61 - 0
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonNameTranslator.java

@@ -0,0 +1,61 @@
+package com.persagy.fm.person.service.impl;
+
+import com.persagy.fm.person.model.Person;
+import com.persagy.fm.person.service.IPersonService;
+import com.persagy.fm.translate.service.ITranslator;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+@Slf4j
+@Service
+public class PersonNameTranslator implements ITranslator {
+
+    @Autowired
+    private IPersonService personService;
+
+    @Override
+    public String trans(String parameter) {
+        if(StringUtils.isBlank(parameter)) {
+            return "";
+        }
+        Person person = personService.queryPersonDetail(Long.valueOf(parameter));
+        return person.getName();
+    }
+
+    @Override
+    public Map<String, Object> transBatch(List<String> parameter) {
+        if(CollectionUtils.isEmpty(parameter)) {
+            return null;
+        }
+        Set<Long> idSet = new HashSet<>();
+        for(String para:parameter) {
+            String[] ids = StringUtils.split(para, ",");
+            for(String id:ids) {
+                idSet.add(Long.valueOf(id));
+            }
+        }
+        List<Long> idList = new ArrayList<>();
+        idList.addAll(idSet);
+        Map<String, Object> idMap = new HashMap<>(16);
+        List<Person> personList = personService.queryByIds(idList);
+        personList.forEach(person -> idMap.put(String.valueOf(person.getId()), person.getName()));
+        Map<String, Object> resultMap = new HashMap<>(16);
+        for(String para:parameter) {
+            String[] ids = StringUtils.split(para, ",");
+            StringBuilder sb = new StringBuilder();
+            for(String id:ids) {
+                sb.append(idMap.get(id)).append(",");
+            }
+            sb.deleteCharAt(sb.length() - 1);
+            Map<String, String> showNameMap = new HashMap<>(1);
+            showNameMap.put("name", sb.toString());
+            resultMap.put(para, showNameMap);
+        }
+        return resultMap;
+    }
+}

+ 5 - 9
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -1,14 +1,11 @@
 package com.persagy.fm.person.service.impl;
 
 import cn.hutool.extra.pinyin.PinyinUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.base.CaseFormat;
 import com.persagy.fm.common.constant.enums.ValidEnum;
 import com.persagy.fm.common.model.RequiredParamsStorage;
-import com.persagy.fm.common.model.dto.Sort;
 import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.person.dao.PersonMapper;
 import com.persagy.fm.person.model.ConvertPersonTool;
@@ -22,20 +19,14 @@ import com.persagy.fm.saas.account.constant.enums.AccountTypeEnum;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
 import com.persagy.fm.saas.account.model.dto.QuerySaasAccountDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
-import com.persagy.fm.workresume.model.WorkResume;
 import com.persagy.fm.workresume.model.dto.AddWorkResumeDTO;
-import com.persagy.fm.workresume.model.dto.PageQueryWorkResumeDTO;
 import com.persagy.fm.workresume.service.IWorkResumeService;
-import org.apache.commons.lang.StringUtils;
-import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * 人员(Person) service层
@@ -197,6 +188,11 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
         return person;
     }
 
+    @Override
+    public List<Person> queryByIds(List<Long> ids) {
+        return listByIds(ids);
+    }
+
     /**
      * 更新人员
      *