<p>public void getLeaderInfoNew(boolean isFid, Map&lt;String, Object&gt; fidWhere) {
this.param.put(&quot;is_show_all&quot;, this.param.get(&quot;is_show_all&quot;) != null ? this.param.get(&quot;is_show_all&quot;) : false);
this.param.put(&quot;sub_level&quot;, this.param.get(&quot;sub_level&quot;) != null ? this.param.get(&quot;sub_level&quot;) : true);
this.param.put(&quot;leader_level&quot;, this.param.get(&quot;leader_level&quot;) != null ? this.param.get(&quot;leader_level&quot;) : 1);
Map&lt;String, Object&gt; params = this.param;
Object apply_deptbasedoc_id = this.param.get(&quot;apply_deptbasedoc_id&quot;) != null ? this.param.get(&quot;apply_deptbasedoc_id&quot;) : null;
List<ChargeDept> charge_dept = new ChargeDept().where(&quot;charge_dept_id&quot;, apply_deptbasedoc_id).cache(&quot;charge_dept_id&quot; + apply_deptbasedoc_id, 60).select().toArray();
Map&lt;String, Object&gt; charge_dept_arr = array_column(charge_dept, &quot;base_user_id&quot;, &quot;deptbasedoc_id&quot;);
boolean error = false;
if (!isFid) {
Object baseUserId = this.param.get(&quot;psndoc_id&quot;);
if (baseUserId == null || baseUserId.toString().isEmpty()) {
return this.error(&quot;人员信息不能为空&quot;);
}
if ((this.param.get(&quot;shop_code&quot;) == null || this.param.get(&quot;shop_code&quot;).toString().isEmpty()) &amp;&amp; (this.param.get(&quot;company_code&quot;) == null || this.param.get(&quot;company_code&quot;).toString().isEmpty())) {
return this.error(&quot;店铺号不能为空&quot;);
}
this.param.put(&quot;shop_code&quot;, this.param.get(&quot;shop_code&quot;) != null ? this.param.get(&quot;shop_code&quot;) : this.param.get(&quot;company_code&quot;));
Map&lt;String, Object&gt; where = new HashMap&lt;&gt;();
if (this.param.get(&quot;deptbasedoc_id&quot;) != null &amp;&amp; !this.param.get(&quot;deptbasedoc_id&quot;).toString().isEmpty()) {
Object mainDept = this.param.get(&quot;deptbasedoc_id&quot;);
} else {
Object mainDept = new DeptPsnInfo().where(&quot;base_user_id&quot;, baseUserId).value(&quot;deptbasedoc_id&quot;);
}
Object shop_code = new DeptBaseDoc().where(&quot;id&quot;, mainDept).value(&quot;shop_code&quot;);
this.param.put(&quot;shop_code&quot;, shop_code);
List&lt;Map&lt;String, Object&gt;&gt; all = new DeptBaseDoc().field(&quot;id, fid, deptcode, deptname, deptlevel&quot;).where(&quot;shop_code&quot;, this.param.get(&quot;shop_code&quot;)).select();
List&lt;Map&lt;String, Object&gt;&gt; parent = all.parent(mainDept).toArray();
List<Object> dept_ids = array_column(parent, &quot;id&quot;);
List&lt;Map&lt;String, Object&gt;&gt; leader_all = new DeptPsn().alias(&quot;a&quot;).leftJoin(&quot;bd_deptbasedoc b&quot;, &quot;b.id=a.deptbasedoc_id&quot;).whereIn(&quot;a.deptbasedoc_id&quot;, dept_ids).field(Arrays.asList(&quot;a.leader_psndoc_id&quot;, &quot;a.leader_psndoc_id_2&quot;, &quot;a.deptbasedoc_id&quot;, &quot;b.deptname&quot;, &quot;b.deptcode&quot;, &quot;b.deptlevel&quot;, &quot;b.fid&quot;)).select().toArray();
List&lt;Map&lt;String, Object&gt;&gt; depts = new ChargeDept().whereIn(&quot;deptbasedoc_id&quot;, dept_ids).select().toArray();
Map&lt;String, List<Object>&gt; depts_arr = new HashMap&lt;&gt;();
if (depts != null) {
for (Map&lt;String, Object&gt; dept : depts) {
if (!depts_arr.containsKey(dept.get(&quot;deptbasedoc_id&quot;))) {
depts_arr.put(dept.get(&quot;deptbasedoc_id&quot;), new ArrayList&lt;&gt;());
}
depts_arr.get(dept.get(&quot;deptbasedoc_id&quot;)).add(dept.get(&quot;charge_dept_id&quot;));
}
}
if (leader_all != null) {
for (Map&lt;String, Object&gt; o : leader_all) {
if (depts_arr.containsKey(o.get(&quot;deptbasedoc_id&quot;))) {
o.put(&quot;leader_psndoc_id_2&quot;, null);
}
if (charge_dept_arr.containsKey(o.get(&quot;deptbasedoc_id&quot;))) {
o.put(&quot;leader_psndoc_id_2&quot;, charge_dept_arr.get(o.get(&quot;deptbasedoc_id&quot;)));
}
if (o.get(&quot;leader_psndoc_id&quot;) == null &amp;&amp; o.get(&quot;leader_psndoc_id_2&quot;) != null) {
leader_all.get(ko).put(&quot;leader_psndoc_id&quot;, o.get(&quot;leader_psndoc_id_2&quot;));
leader_all.get(ko).put(&quot;leader_psndoc_id_2&quot;, &quot;&quot;);
}
}
List<Object> base_user_ids = array_column(leader_all, &quot;leader_psndoc_id&quot;);
if (this.param.get(&quot;sub_level&quot;)) {
List<Object> base_user_ids2 = array_column(leader_all, &quot;leader_psndoc_id_2&quot;);
base_user_ids.addAll(base_user_ids2);
}
List&lt;Map&lt;String, Object&gt;&gt; users = new DeptPsnInfo().whereIn(&quot;base_user_id&quot;, base_user_ids).field(Arrays.asList(&quot;emp_name as userName&quot;, &quot;user_code as userCode&quot;, &quot;base_user_id as userId&quot;, &quot;base_user_id as baseUserId&quot;)).select().toArray();
Map&lt;Object, Map&lt;String, Object&gt;&gt; user_arrs = array_column(users, null, &quot;baseUserId&quot;);
leader_all = get_my_sort(leader_all, &quot;deptlevel&quot;, 99999, 1);
for (Map&lt;String, Object&gt; item : leader_all) {
item.put(&quot;is_sub&quot;, false);
}
int iii = 1;
for (int index = 0; index &lt; leader_all.size(); index++) {
Map&lt;String, Object&gt; item = leader_all.get(index);
if (this.param.get(&quot;sub_level&quot;)) {
Map&lt;String, Object&gt; newItem = item;
if ((item.get(&quot;leader_psndoc_id_2&quot;) != null &amp;&amp; mainDept != item.get(&quot;deptbasedoc_id&quot;)) || (item.get(&quot;leader_psndoc_id_2&quot;) != null &amp;&amp; mainDept == item.get(&quot;deptbasedoc_id&quot;) &amp;&amp; item.get(&quot;leader_psndoc_id&quot;) != baseUserId)) {
newItem.put(&quot;is_sub&quot;, true);
newItem.put(&quot;leader_psndoc_id&quot;, item.get(&quot;leader_psndoc_id_2&quot;));
leader_all.add(index + iii, newItem);
iii++;
}
}
}
for (int index = 0; index &lt; leader_all.size(); index++) {
Map&lt;String, Object&gt; item = leader_all.get(index);
if (item.get(&quot;leader_psndoc_id&quot;) == null || !user_arrs.containsKey(item.get(&quot;leader_psndoc_id&quot;))) {
leader_all.remove(index);
} else {
item.put(&quot;leader_info&quot;, user_arrs.get(item.get(&quot;leader_psndoc_id&quot;)));
if (this.param.get(&quot;team_leader_level&quot;) != null &amp;&amp; item.get(&quot;deptlevel&quot;) &gt; this.param.get(&quot;team_leader_level&quot;)) {
leader_all.remove(index);
} else {
if (mainDept == item.get(&quot;deptbasedoc_id&quot;)) {
if (item.get(&quot;deptlevel&quot;) == 1 &amp;&amp; item.get(&quot;leader_psndoc_id&quot;) != item.get(&quot;leader_psndoc_id_2&quot;) &amp;&amp; item.get(&quot;leader_psndoc_id&quot;) == baseUserId) {
item.put(&quot;deptlevel&quot;, 0);
item.get(&quot;leader_info&quot;).put(&quot;userName&quot;, &quot;暂无直属主管,自动通过&quot;);
item.get(&quot;leader_info&quot;).put(&quot;userCode&quot;, &quot;&quot;);
} else {
if (item.get(&quot;leader_psndoc_id&quot;) == baseUserId) {
leader_all.remove(index);
}
}
}
}
}
if (this.param.get(&quot;no_up_find_leader&quot;) != null &amp;&amp; this.param.get(&quot;no_up_find_leader&quot;) == 1) {
if (this.param.get(&quot;team_leader_level&quot;) != null) {
if (item.get(&quot;deptlevel&quot;) != this.param.get(&quot;team_leader_level&quot;)) {
leader_all.remove(index);
}
} else {
if (mainDept != item.get(&quot;deptbasedoc_id&quot;)) {
leader_all.remove(index);
}
}
}
}
if (leader_all != null &amp;&amp; !leader_all.isEmpty()) {
Collections.reverse(leader_all);
if (this.param.get(&quot;is_show_all&quot;)) {
return this.success(leader_all);
}
return this.success(Arrays.asList(leader_all.get(0)));
}
error = true;
} else {
error = true;
}
if (error) {
Object mainDept = new DeptPsnInfo().field(Arrays.asList(&quot;emp_name&quot;, &quot;base_user_id&quot;, &quot;user_code&quot;)).where(&quot;base_user_id&quot;, this.param.get(&quot;psndoc_id&quot;)).find();
if (mainDept == null) {
return this.error(&quot;用户信息错误&quot; + json_encode(params, JSON_UNESCAPED_UNICODE));
}
List&lt;Map&lt;String, Object&gt;&gt; dat = new ArrayList&lt;&gt;();
Map&lt;String, Object&gt; leader = new HashMap&lt;&gt;();
leader.put(&quot;leader_psndoc_id&quot;, mainDept.get(&quot;base_user_id&quot;));
leader.put(&quot;deptbasedoc_id&quot;, params.get(&quot;deptbasedoc_id&quot;) != null ? params.get(&quot;deptbasedoc_id&quot;) : &quot;&quot;);
leader.put(&quot;deptname&quot;, &quot;&quot;);
leader.put(&quot;deptcode&quot;, &quot;&quot;);
leader.put(&quot;deptlevel&quot;, 0);
leader.put(&quot;fid&quot;, null);
Map&lt;String, Object&gt; leader_info = new HashMap&lt;&gt;();
leader_info.put(&quot;userName&quot;, &quot;暂无直属主管,自动通过&quot;);
leader_info.put(&quot;userCode&quot;, &quot;&quot;);
leader_info.put(&quot;userId&quot;, mainDept.get(&quot;base_user_id&quot;));
leader_info.put(&quot;baseUserId&quot;, mainDept.get(&quot;base_user_id&quot;));
leader.put(&quot;leader_info&quot;, leader_info);
dat.add(leader);
if (this.param.get(&quot;is_show_all&quot;)) {
return this.success(dat);
}
return this.success(dat.get(0));
}
}
}</p>
PHP to Java Code Conversion: Retrieving Leader Information

原文地址: https://www.cveoy.top/t/topic/pdkx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录