Przeglądaj źródła

花名册添加部门tree筛选

lizhenhao 2 lat temu
rodzic
commit
a43dfc1f9b

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/mapper/xml/RosterBaseMapper.xml

@@ -326,6 +326,9 @@
     so.name office_name
     from roster_base rb
     left join sys_office so on rb.office_id = so.id and so.del_flag = '0'
+    LEFT JOIN sys_user su ON su.roster_id = rb.id and su.del_flag = 0
+    LEFT JOIN sys_office soc ON soc.id = su.company_id
+    LEFT JOIN sys_office soo ON soo.id = su.office_id
     ${ew.customSqlSegment}
     order by rb.create_date desc
   </select>

+ 4 - 6
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/RosterBaseService.java

@@ -105,13 +105,11 @@ public class RosterBaseService extends ServiceImpl<RosterBaseMapper, RosterBase>
         queryWrapper.eq("rb.del_flag","0");
         if(ObjectUtil.isNotEmpty(rosterBaseDTO)){
             if(StringUtils.isNotBlank(rosterBaseDTO.getCompanyId())){
-                List<Office> list = officeService.list(new QueryWrapper<Office>().lambda().like(Office::getParentIds, rosterBaseDTO.getCompanyId()).eq(Office::getDelFlag, '0'));
-                List<String> ids = list.stream().map(Office::getId).collect(Collectors.toList());
-                queryWrapper.in("so.id",ids);
+                // 根据公司层级筛选
+                queryWrapper.eq("soc.id",rosterBaseDTO.getCompanyId());
             }else if(StringUtils.isNotBlank(rosterBaseDTO.getOfficeId())){
-                List<Office> list = officeService.list(new QueryWrapper<Office>().lambda().eq(Office::getId, rosterBaseDTO.getOfficeId()).eq(Office::getDelFlag, '0'));
-                List<String> ids = list.stream().map(Office::getId).collect(Collectors.toList());
-                queryWrapper.in("so.id",ids);
+                // 根据部门层级筛选
+                queryWrapper.eq("soo.id",rosterBaseDTO.getOfficeId());
             }
             if (StringUtils.isNotBlank(rosterBaseDTO.getOfficeSelect())) {
                 //  根据部门筛选

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/roster/service/dto/RosterBaseDTO.java

@@ -368,5 +368,17 @@ public class RosterBaseDTO extends BaseDTO {
     @Excel(name="角色",width = 25,orderNum = "3")
     private String roleNames;
 
+    /**
+     * 归属公司
+     */
+    @Query(type = QueryType.EQ, tableColumn = "c.id", javaField = "companyDTO.id")
+    private OfficeDTO companyDTO;
+
+    /**
+     * 归属部门
+     */
+    @Query(type = QueryType.EQ, tableColumn = "o.id", javaField = "officeDTO.id")
+    private OfficeDTO officeDTO;
+
     private static final long serialVersionUID = 1L;
 }