Commit eb8fd19985147d5ccbdfee95c77e0bb0c6278a6d

Authored by liquanyu
1 parent 0a41155d4e

登陆优化

Showing 1 changed file with 68 additions and 6 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java View file @ eb8fd19
... ... @@ -4,14 +4,22 @@
4 4 import java.util.Iterator;
5 5 import java.util.List;
6 6 import java.util.Set;
  7 +import java.util.concurrent.Callable;
  8 +import java.util.concurrent.Future;
7 9  
8 10 import com.lyms.platform.common.enums.OptActionEnums;
9 11 import com.lyms.platform.common.enums.YnEnums;
  12 +import com.lyms.platform.common.utils.ExceptionUtils;
  13 +import com.lyms.platform.operate.web.result.BabyManageListResult;
  14 +import com.lyms.platform.operate.web.utils.BabyListTask;
10 15 import com.lyms.platform.permission.model.OrganizationQuery;
  16 +import com.lyms.platform.pojo.BabyModel;
11 17 import org.apache.commons.collections.CollectionUtils;
12 18 import org.apache.commons.lang.StringUtils;
13 19 import org.apache.commons.lang.math.NumberUtils;
14 20 import org.springframework.beans.factory.annotation.Autowired;
  21 +import org.springframework.beans.factory.annotation.Qualifier;
  22 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
15 23 import org.springframework.stereotype.Component;
16 24  
17 25 import com.lyms.platform.biz.service.DataPermissionService;
... ... @@ -48,6 +56,10 @@
48 56 private DataPermissionService dataPermissionService;
49 57  
50 58 @Autowired
  59 + @Qualifier("commonThreadPool")
  60 + private ThreadPoolTaskExecutor commonThreadPool;
  61 +
  62 + @Autowired
51 63 private OrganizationService organizationService;
52 64  
53 65  
54 66  
55 67  
56 68  
... ... @@ -104,18 +116,68 @@
104 116 public List<Organization> getOrganization(List<DataPermissionsModel> data) {
105 117 List<Organization> dataList = new ArrayList<>();
106 118 if (CollectionUtils.isNotEmpty(data)) {
  119 +
  120 + List<String> list = new ArrayList<>();
  121 +
107 122 Set<String> set = data.get(0).getData().keySet();
108 123 Iterator<String> it = set.iterator();
109 124 while (it.hasNext()) {
110   - String id = it.next();
111   - try {
112   - Organization organization = organizationService.getOrganization(Integer.valueOf(id));
113   - if (null != organization) {
114   - dataList.add(organization);
  125 + list.add(it.next());
  126 + }
  127 +
  128 + int batchSize = 20;
  129 + int end = 0;
  130 + List<Future> futures = new ArrayList<>();
  131 + for (int i = 0; i < list.size(); i += batchSize) {
  132 + end = (end + batchSize);
  133 + if (end > list.size()) {
  134 + end = list.size();
  135 + }
  136 + final List<String> ms = list.subList(i, end);
  137 + Callable c = new Callable() {
  138 + @Override
  139 + public List<Organization> call() throws Exception {
  140 + List<Organization> tempdataList = new ArrayList<>();
  141 + if (CollectionUtils.isNotEmpty(ms))
  142 + {
  143 + for (String id : ms)
  144 + {
  145 + Organization organization = organizationService.getOrganization(Integer.valueOf(id));
  146 + if (null != organization) {
  147 + tempdataList.add(organization);
  148 + }
  149 + }
  150 + }
  151 + return tempdataList;
115 152 }
116   - } catch (Exception e) {
  153 + };
  154 + Future f = commonThreadPool.submit(c);
  155 + futures.add(f);
  156 + }
  157 + if (CollectionUtils.isNotEmpty(futures))
  158 + {
  159 + for (Future f : futures)
  160 + {
  161 + try {
  162 + dataList.addAll((List<Organization>) f.get());
  163 + } catch (Exception e) {
  164 + ExceptionUtils.catchException(e, "get organization error.");
  165 + }
117 166 }
118 167 }
  168 +
  169 +// Set<String> set = data.get(0).getData().keySet();
  170 +// Iterator<String> it = set.iterator();
  171 +// while (it.hasNext()) {
  172 +// String id = it.next();
  173 +// try {
  174 +// Organization organization = organizationService.getOrganization(Integer.valueOf(id));
  175 +// if (null != organization) {
  176 +// dataList.add(organization);
  177 +// }
  178 +// } catch (Exception e) {
  179 +// }
  180 +// }
119 181 }
120 182 return dataList;
121 183 }