Selaa lähdekoodia

部门负责人参数修改为list

lixing 4 vuotta sitten
vanhempi
commit
1e7fd4214c

+ 19 - 0
fm-person/src/main/java/com/persagy/fm/department/model/ConvertDepartmentTool.java

@@ -8,6 +8,7 @@ import com.persagy.fm.department.model.vo.ResponseDepartmentListItemVO;
 import com.persagy.fm.department.model.vo.ResponseDepartmentTreeItemVO;
 import org.mapstruct.*;
 import org.mapstruct.factory.Mappers;
+import org.springframework.util.CollectionUtils;
 
 import java.util.List;
 
@@ -62,6 +63,7 @@ public interface ConvertDepartmentTool {
      * @author lixing
      * @version V1.0 2021-03-11 15:09:19
      */
+    @Mapping(source = "managers", target = "managers", qualifiedByName="managerList2Str")
     Department convertAddDto2Entity(AddDepartmentDTO addDepartmentDTO);
 
     /**
@@ -73,6 +75,7 @@ public interface ConvertDepartmentTool {
      * @author lixing
      * @version V1.0 2021-03-11 15:09:19
      */
+    @Mapping(source = "managers", target = "managers", qualifiedByName="managerList2Str")
     Department convertUpdateDto2Entity(@MappingTarget Department department, UpdateDepartmentDTO updateDepartmentDTO);
 
     /**
@@ -104,5 +107,21 @@ public interface ConvertDepartmentTool {
      * @version V1.0 2021/3/18 6:38 下午
      */
     AddDepartmentDTO convert2AddDto(GroupCreateMsg groupCreateMsg);
+
+    /**
+     * 将负责人列表转为字符串
+     *
+     * @param managers 负责人列表
+     * @return 字符串:负责人id1,负责人id2
+     * @author lixing
+     * @version V1.0 2021/3/30 7:47 下午
+     */
+    @Named("managerList2Str")
+    default String managerList2Str(List<String> managers){
+        if (CollectionUtils.isEmpty(managers)) {
+            return "";
+        }
+        return String.join(",", managers);
+    }
 }
 

+ 1 - 1
fm-person/src/main/java/com/persagy/fm/department/model/dto/AddDepartmentDTO.java

@@ -38,7 +38,7 @@ public class AddDepartmentDTO {
     private String resourceFrom;
 
     @ApiModelProperty(value = "负责人")
-    private String managers;
+    private List<String> managers;
 
     @ApiModelProperty(value = "部门全路径")
     private String fullPath;

+ 1 - 1
fm-person/src/main/java/com/persagy/fm/department/model/dto/UpdateDepartmentDTO.java

@@ -39,7 +39,7 @@ public class UpdateDepartmentDTO {
     private String resourceFrom;
 
     @ApiModelProperty(value = "负责人")
-    private String managers;
+    private List<String> managers;
 
     @ApiModelProperty(value = "部门全路径")
     private String fullPath;

+ 2 - 2
fm-person/src/main/java/com/persagy/fm/department/service/impl/DepTranslatorImpl.java

@@ -38,9 +38,9 @@ public class DepTranslatorImpl implements IDepTranslator {
             return null;
         }
         String[] managersArr = managers.split(separator);
-        List<Long> managerIdList = Lists.newArrayList();
+        List<String> managerIdList = Lists.newArrayList();
         for (String managerIdStr : managersArr) {
-            managerIdList.add(Long.valueOf(managerIdStr));
+            managerIdList.add(managerIdStr);
         }
         List<Person> people = personService.queryByIds(managerIdList);
         return people.stream().map(person -> {

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

@@ -183,6 +183,9 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     @Transactional
     public void updateDepartment(UpdateDepartmentDTO updateDepartmentDTO) {
         Department department = getById(updateDepartmentDTO.getId());
+        if (department == null) {
+            throw new IllegalArgumentException("无法找到要更新的部门, id:" + updateDepartmentDTO.getId());
+        }
         String nameBeforeChange = department.getName();
         department = ConvertDepartmentTool.INSTANCE.convertUpdateDto2Entity(department, updateDepartmentDTO);
         // 如果部门名称发生变化,级联更新自己和子部门的全路径

+ 1 - 0
fm-person/src/main/java/com/persagy/fm/person/model/ConvertPersonTool.java

@@ -95,6 +95,7 @@ public interface ConvertPersonTool {
      * @version V1.0 2021/3/22 7:59 下午
      */
     @Mappings({
+            @Mapping(source = "id", target = "id", ignore = true),
             @Mapping(source = "id", target = "accountId"),
             @Mapping(source = "username", target = "name"),
             @Mapping(source = "username", target = "username"),

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

@@ -50,7 +50,7 @@ public interface IPersonService {
      * @param ids 主键List
      * @return
      */
-    List<Person> queryByIds(List<Long> ids);
+    List<Person> queryByIds(List<String> ids);
 
     /**
      * 更新人员

+ 3 - 5
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonNameTranslator.java

@@ -56,14 +56,12 @@ public class PersonNameTranslator implements ITranslator {
         if (CollectionUtils.isEmpty(parameter)) {
             return null;
         }
-        Set<Long> idSet = new HashSet<>();
+        Set<String> idSet = new HashSet<>();
         for (String para : parameter) {
             String[] ids = StringUtils.split(para, ",");
-            for (String id : ids) {
-                idSet.add(Long.valueOf(id));
-            }
+            idSet.addAll(Arrays.asList(ids));
         }
-        List<Long> idList = new ArrayList<>(idSet);
+        List<String> idList = new ArrayList<>(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()));

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

@@ -276,7 +276,7 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
     }
 
     @Override
-    public List<Person> queryByIds(List<Long> ids) {
+    public List<Person> queryByIds(List<String> ids) {
         return listByIds(ids);
     }