<p>public void getLeaderInfoNew(boolean isFid, ArrayList<Object> fidWhere) {
this.param.put(&quot;is_show_all&quot;, this.param.getOrDefault(&quot;is_show_all&quot;, false));
this.param.put(&quot;sub_level&quot;, this.param.getOrDefault(&quot;sub_level&quot;, true));
this.param.put(&quot;leader_level&quot;, this.param.getOrDefault(&quot;leader_level&quot;, 1));
// this.param['sub_level'] = $this-&gt;param['sub_level'] &amp;&amp; !$this-&gt;param['is_show_all'];
HashMap&lt;String, Object&gt; params = this.param;
Object apply_deptbasedoc_id = this.param.getOrDefault(&quot;apply_deptbasedoc_id&quot;, null); // 发起人的主部门  用来判断分管领导审单的
ArrayList&lt;HashMap&lt;String, Object&gt;&gt; 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();
HashMap&lt;String, Object&gt; charge_dept_arr = new HashMap&lt;&gt;();
for (HashMap&lt;String, Object&gt; dept : charge_dept) {
charge_dept_arr.put(dept.get(&quot;deptbasedoc_id&quot;), dept.get(&quot;base_user_id&quot;));
}
boolean error = false;
if (!isFid) {
Object baseUserId = this.param.get(&quot;psndoc_id&quot;);
if (baseUserId == null || baseUserId.equals(&quot;&quot;)) {
return this.error(&quot;人员信息不能为空&quot;);
}
if ((this.param.get(&quot;shop_code&quot;) == null || this.param.get(&quot;shop_code&quot;).equals(&quot;&quot;)) &amp;&amp; (this.param.get(&quot;company_code&quot;) == null || this.param.get(&quot;company_code&quot;).equals(&quot;&quot;))) {
return this.error(&quot;店铺号不能为空&quot;);
}
this.param.put(&quot;shop_code&quot;, this.param.getOrDefault(&quot;shop_code&quot;, this.param.get(&quot;company_code&quot;)));
HashMap&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;).equals(&quot;&quot;)) {
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;);
// $where[] = ['<strong>TABLE</strong>.id','=',$mainDept];
}
Object shop_code = new DeptBaseDoc().where(&quot;id&quot;, mainDept).value(&quot;shop_code&quot;);
this.param.put(&quot;shop_code&quot;, shop_code);
ArrayList&lt;HashMap&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();
ArrayList&lt;HashMap&lt;String, Object&gt;&gt; parent = all.parent(mainDept).toArray();
ArrayList<String> dept_ids = new ArrayList&lt;&gt;();
for (HashMap&lt;String, Object&gt; p : parent) {
dept_ids.add(p.get(&quot;id&quot;));
}
ArrayList&lt;HashMap&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(&quot;a.leader_psndoc_id,a.leader_psndoc_id_2,a.deptbasedoc_id,b.deptname,b.deptcode,b.deptlevel,b.fid&quot;).select().toArray();
ArrayList&lt;HashMap&lt;String, Object&gt;&gt; depts = new ChargeDept().whereIn(&quot;deptbasedoc_id&quot;, dept_ids).select().toArray();
HashMap&lt;String, ArrayList<Object>&gt; depts_arr = new HashMap&lt;&gt;();
if (depts.size() &gt; 0) {
for (HashMap&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.size() &gt; 0) {
for (int i = 0; i &lt; leader_all.size(); i++) {
HashMap&lt;String, Object&gt; o = leader_all.get(i);
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 &amp;&amp; !o.get(&quot;leader_psndoc_id_2&quot;).equals(&quot;&quot;)) {
leader_all.get(i).put(&quot;leader_psndoc_id&quot;, o.get(&quot;leader_psndoc_id_2&quot;));
leader_all.get(i).put(&quot;leader_psndoc_id_2&quot;, &quot;&quot;);
}
}
ArrayList<Object> base_user_ids = new ArrayList&lt;&gt;();
for (HashMap&lt;String, Object&gt; item : leader_all) {
base_user_ids.add(item.get(&quot;leader_psndoc_id&quot;));
}
if (this.param.get(&quot;sub_level&quot;)) {
ArrayList<Object> base_user_ids2 = new ArrayList&lt;&gt;();
for (HashMap&lt;String, Object&gt; item : leader_all) {
base_user_ids2.add(item.get(&quot;leader_psndoc_id_2&quot;));
}
base_user_ids.addAll(base_user_ids2);
}
ArrayList&lt;HashMap&lt;String, Object&gt;&gt; users = new DeptPsnInfo().whereIn(&quot;base_user_id&quot;, base_user_ids).field(&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();
HashMap&lt;String, HashMap&lt;String, Object&gt;&gt; user_arrs = new HashMap&lt;&gt;();
for (HashMap&lt;String, Object&gt; user : users) {
user_arrs.put(user.get(&quot;baseUserId&quot;), user);
}
leader_all = this.get_my_sort(leader_all, &quot;deptlevel&quot;, 99999, 1);
for (HashMap&lt;String, Object&gt; item : leader_all) {
item.put(&quot;is_sub&quot;, false);
}
int iii = 1;
for (int i = 0; i &lt; leader_all.size(); i++) {
HashMap&lt;String, Object&gt; item = leader_all.get(i);
if (this.param.get(&quot;sub_level&quot;)) {
HashMap&lt;String, Object&gt; newItem = item;
if ((item.get(&quot;leader_psndoc_id_2&quot;) != null &amp;&amp; !mainDept.equals(item.get(&quot;deptbasedoc_id&quot;))) || (item.get(&quot;leader_psndoc_id_2&quot;) != null &amp;&amp; mainDept.equals(item.get(&quot;deptbasedoc_id&quot;)) &amp;&amp; !item.get(&quot;leader_psndoc_id&quot;).equals(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(i + iii, newItem);
iii++;
}
}
}
for (int i = 0; i &lt; leader_all.size(); i++) {
HashMap&lt;String, Object&gt; item = leader_all.get(i);
if (item.get(&quot;leader_psndoc_id&quot;) == null || !user_arrs.containsKey(item.get(&quot;leader_psndoc_id&quot;))) {
leader_all.remove(i);
} else {
leader_all.get(i).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; Integer.parseInt(item.get(&quot;deptlevel&quot;).toString()) &gt; Integer.parseInt(this.param.get(&quot;team_leader_level&quot;).toString())) {
leader_all.remove(i);
} else {
if (mainDept.equals(item.get(&quot;deptbasedoc_id&quot;))) {
if (item.get(&quot;deptlevel&quot;).equals(1) &amp;&amp; !item.get(&quot;leader_psndoc_id&quot;).equals(item.get(&quot;leader_psndoc_id_2&quot;)) &amp;&amp; item.get(&quot;leader_psndoc_id&quot;).equals(baseUserId)) {
leader_all.get(i).put(&quot;deptlevel&quot;, 0);
leader_all.get(i).put(&quot;leader_info&quot;, new HashMap&lt;String, Object&gt;() {{
put(&quot;userName&quot;, &quot;暂无直属主管,自动通过&quot;);
put(&quot;userCode&quot;, &quot;&quot;);
}});
} else {
if (item.get(&quot;leader_psndoc_id&quot;).equals(baseUserId)) {
leader_all.remove(i);
}
}
}
}
}
if (params.get(&quot;no_up_find_leader&quot;) != null &amp;&amp; params.get(&quot;no_up_find_leader&quot;).equals(1)) {
if (this.param.get(&quot;team_leader_level&quot;) != null) {
i</p>
PHP to Java Code Conversion: Finding Leaders in a Hierarchy

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

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