Browse Source

订单部门归属逻辑优化处理

anderx 2 years ago
parent
commit
f6ae5ff39d

+ 18 - 1
src/main/java/com/goafanti/admin/service/impl/DepartmentServiceImpl.java

@@ -86,11 +86,28 @@ public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> im
 		List<String> alldep = new ArrayList<>();
 		List<String> superData = departmentMapper.selectCurrentDeps(managerId);
 		if (!superData.isEmpty()){
-			iterationDep(alldep,superData);
+			List<Department> departments = departmentMapper.selectAllDeps();
+			iterationAllDep(alldep,departments,superData);
+//			iterationDep(alldep,superData);
 		}
 		return alldep;
 	}
 
+	private void iterationAllDep(List<String> alldep, List<Department> departments,List<String> superData) {
+		List<String> deps2 =new ArrayList<>();
+		for (String dep : superData) {
+			if (!alldep.contains(dep)){
+				alldep.add(dep);
+				departments.forEach(e ->{
+					if (e.getSuperId()!=null&&e.getSuperId().equals(dep)){
+						deps2.add(e.getId());
+					}
+				});
+			}
+		}
+		if (!deps2.isEmpty())iterationAllDep(alldep,departments,deps2);
+	}
+
 	private void iterationDep(List<String> alldep, List<String> superData) {
 		for (String dep : superData) {
 			if (!alldep.contains(dep)){

+ 2 - 1
src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml

@@ -534,7 +534,8 @@
 
     <!-- 查询所有 -->
     <select id="selectAllDeps" resultType="com.goafanti.common.model.Department">
-        select id from department
+        select id ,super_id superId
+        from department
     </select>
     <select id="getMaxAbbreviation"  parameterType="java.lang.String" resultType="java.lang.String">
         select max(contract_no) as maxNo from t_order_new