2021-11-18 08:39:59 +00:00
package cn.palmte.work.service ;
import cn.palmte.work.model.Admin ;
import cn.palmte.work.model.Dept ;
import cn.palmte.work.model.DeptRepository ;
2022-09-09 08:02:55 +00:00
import cn.palmte.work.model.ProcurementType ;
import cn.palmte.work.utils.InterfaceUtil ;
2021-11-18 08:39:59 +00:00
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
2022-09-09 08:02:55 +00:00
import top.jfunc.common.db.QueryHelper ;
import top.jfunc.common.db.bean.Page ;
import top.jfunc.common.db.utils.Pagination ;
import top.jfunc.common.utils.CollectionUtil ;
2021-11-18 08:39:59 +00:00
2022-09-09 08:02:55 +00:00
import java.util.Date ;
2021-11-18 08:39:59 +00:00
import java.util.List ;
2022-09-09 08:02:55 +00:00
import java.util.Map ;
2021-11-18 08:39:59 +00:00
/ * *
* @author xiongshiyan at 2021 / 10 / 29 , contact me with email yanshixiong @ 126. com or phone 15208384257
* /
@Service
public class DeptService {
@Autowired
private DeptRepository deptRepository ;
2022-09-09 08:02:55 +00:00
@Autowired
private Pagination pagination ;
2021-11-18 08:39:59 +00:00
public List < Dept > findAll ( ) {
return deptRepository . findAll ( ) ;
}
public Dept findUserDept ( Admin admin ) {
return deptRepository . findOne ( admin . getDeptId ( ) ) ;
}
2022-09-09 08:02:55 +00:00
public Page < Dept > list ( Map < String , String > searchInfo , int pageNumber , int pageSize ) {
2022-12-21 03:29:24 +00:00
QueryHelper queryHelper = new QueryHelper ( "SELECT d.*, (CASE d.enabled WHEN 0 THEN '已禁用' WHEN 1 THEN '已启用' END) as status, su.real_name as realName, (CASE WHEN d.level = 1 THEN '' ELSE p.name END) as parentName" , "dept d" ) ;
queryHelper . leftJoin ( "dept p" , "d.parent_id = p.id" ) ;
queryHelper . leftJoin ( "sys_user su" , "d.manager_id = su.id" ) ;
queryHelper . addCondition ( searchInfo . containsKey ( "name" ) , "d.name like ?" , "%" +
2022-09-09 08:02:55 +00:00
searchInfo . get ( "name" ) + "%" ) ;
queryHelper . addCondition ( searchInfo . containsKey ( "enabled" ) & & ! "-1" . equals ( searchInfo . get ( "enabled" ) ) ,
2022-12-21 03:29:24 +00:00
"d.enabled=" + searchInfo . get ( "enabled" ) ) ;
2022-12-21 04:31:42 +00:00
queryHelper . addCondition ( searchInfo . containsKey ( "parentId" ) & & ! "-1" . equals ( searchInfo . get ( "parentId" ) ) ,
"d.parent_id=" + searchInfo . get ( "parentId" ) ) ;
2022-12-21 03:29:24 +00:00
queryHelper . addCondition ( searchInfo . containsKey ( "startTime" ) , "d.created_time >= ?" , searchInfo . get ( "startTime" ) + " 00:00:00" ) ;
queryHelper . addCondition ( searchInfo . containsKey ( "endTime" ) , "d.created_time <= ?" , searchInfo . get ( "endTime" ) + " 23:59:59" ) ;
queryHelper . addOrderProperty ( "d.id" , false ) ;
2022-09-09 08:02:55 +00:00
Page < Dept > paginate = pagination . paginate ( queryHelper . getSql ( ) , Dept . class , pageNumber , pageSize ) ;
return paginate ;
}
public Dept findOne ( int id ) {
return deptRepository . findOne ( id ) ;
}
public void saveOtUpdate ( int deptId , Dept dept ) {
Dept obj = deptRepository . findOne ( deptId ) ;
if ( null = = obj ) {
obj = new Dept ( ) ;
obj . setName ( dept . getName ( ) ) ;
2022-12-21 04:31:42 +00:00
obj . setManagerId ( dept . getManagerId ( ) ) ;
obj . setParentId ( dept . getParentId ( ) ) ;
if ( obj . getParentId ( ) = = 0 ) {
obj . setLevel ( 0 ) ;
} else {
Dept one = deptRepository . findOne ( obj . getParentId ( ) ) ;
obj . setLevel ( one . getLevel ( ) + 1 ) ;
}
2022-09-09 08:02:55 +00:00
obj . setEnabled ( dept . getEnabled ( ) ) ;
obj . setCreatedBy ( InterfaceUtil . getAdmin ( ) . getRealName ( ) ) ;
obj . setCreatedTime ( new Date ( ) ) ;
} else {
obj . setName ( dept . getName ( ) ) ;
2022-12-21 04:31:42 +00:00
obj . setManagerId ( dept . getManagerId ( ) ) ;
obj . setParentId ( dept . getParentId ( ) ) ;
if ( obj . getParentId ( ) = = 0 ) {
obj . setLevel ( 0 ) ;
} else {
Dept one = deptRepository . findOne ( obj . getParentId ( ) ) ;
obj . setLevel ( one . getLevel ( ) + 1 ) ;
}
2022-09-09 08:02:55 +00:00
obj . setEnabled ( dept . getEnabled ( ) ) ;
}
deptRepository . saveAndFlush ( obj ) ;
}
public boolean enableOrDisable ( int status , int id ) {
Dept one = deptRepository . findOne ( id ) ;
one . setEnabled ( status ) ;
Dept dept = deptRepository . saveAndFlush ( one ) ;
return null ! = dept ;
}
2021-11-18 08:39:59 +00:00
}