fourcal/src/main/java/cn/palmte/work/service/DeptService.java

98 lines
3.8 KiB
Java
Raw Normal View History

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
}