qa-prevention-gwj/src/main/java/com/zcloud/service/system/impl/DepartmentServiceImpl.java

464 lines
13 KiB
Java
Raw Normal View History

2024-02-06 11:05:20 +08:00
package com.zcloud.service.system.impl;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import com.zcloud.entity.system.Menu;
import com.zcloud.mapper.datasource.system.SupervisionDepartmentMapper;
import com.zcloud.mapper.dsno2.system.Department2Mapper;
import com.zcloud.util.DateUtil;
import com.zcloud.util.Jurisdiction;
import com.zcloud.util.UuidUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.entity.system.Department;
import com.zcloud.mapper.datasource.system.DepartmentMapper;
import com.zcloud.service.system.DepartmentService;
import com.zcloud.util.Tools;
import javax.annotation.Resource;
/**
*
* FH Q313596790
*
*/
@Service(value="departmentService")
@Transactional //开启事物
public class DepartmentServiceImpl implements DepartmentService{
@Resource
private DepartmentMapper departmentMapper;
@Resource
private Department2Mapper department2Mapper;
/**
* @param pd
* @throws Exception
*/
public void save(PageData pd)throws Exception{
departmentMapper.save(pd);
}
/**
* @param pd
* @throws Exception
*/
public void delete(PageData pd)throws Exception{
departmentMapper.delete(pd);
}
public List<PageData> listTreeManageAndCorp2(PageData pd) throws Exception {
return departmentMapper.listTreeManageAndCorp2(pd);
}
/**
* @param pd
* @throws Exception
*/
public void edit(PageData pd)throws Exception{
departmentMapper.edit(pd);
}
/**
* @param page
* @throws Exception
*/
public List<PageData> list(Page page)throws Exception{
return (List<PageData>)departmentMapper.datalistPage(page);
}
/**id
* @param pd
* @throws Exception
*/
public PageData findById(PageData pd)throws Exception{
return (PageData)departmentMapper.findById(pd);
}
/**
* @param pd
* @throws Exception
*/
public PageData findByName(PageData pd)throws Exception{
List<PageData> dept = departmentMapper.findByName(pd);
if(dept != null && dept.size() > 0) {
return dept.get(0);
} else {
return null;
}
}
/**
* @param pd
* @throws Exception
*/
public PageData findByBianma(PageData pd)throws Exception{
return (PageData)departmentMapper.findByBianma(pd);
}
/**
* ID
* @param parentId
* @return
* @throws Exception
*/
public List<Department> listSubDepartmentByParentId(String parentId) throws Exception {
return (List<Department>)departmentMapper.listSubDepartmentByParentId(parentId);
}
/**
* ()
* @param MENU_ID
* @return
* @throws Exception
*/
public List<Department> listAllDepartment(String parentId) throws Exception {
List<Department> departmentList = this.listSubDepartmentByParentId(parentId);
for(Department depar : departmentList){
depar.setTreeurl("department_list.html?DEPARTMENT_ID="+depar.getDEPARTMENT_ID());
depar.setSubDepartment(this.listAllDepartment(depar.getDEPARTMENT_ID()));
depar.setTarget("treeFrame");
depar.setIcon("../../../assets/images/user.gif");
}
return departmentList;
}
/**
* ()
* @param MENU_ID
* @return
* @throws Exception
*/
public List<Department> listAllDepartment(String parentId,String url) throws Exception {
List<Department> departmentList = this.listSubDepartmentByParentId(parentId);
for(Department depar : departmentList){
depar.setTreeurl(url+depar.getDEPARTMENT_ID());
depar.setSubDepartment(this.listAllDepartment(depar.getDEPARTMENT_ID(),url));
depar.setTarget("treeFrame");
depar.setIcon("../../../assets/images/user.gif");
}
return departmentList;
}
/**
* ()ztree
* @param MENU_ID
* @return
* @throws Exception
*/
public List<PageData> listAllDepartmentToSelect(String parentId,List<PageData> zdepartmentPdList) throws Exception {
List<PageData>[] arrayDep = this.listAllbyPd(parentId,zdepartmentPdList);
List<PageData> departmentPdList = arrayDep[1];
for(PageData pd : departmentPdList){
this.listAllDepartmentToSelect(pd.getString("id"),arrayDep[0]);
}
return arrayDep[0];
}
/**ztree
* @param parentId
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<PageData>[] listAllbyPd(String parentId,List<PageData> zdepartmentPdList) throws Exception {
List<Department> departmentList = this.listSubDepartmentByParentId(parentId);
List<PageData> departmentPdList = new ArrayList<PageData>();
for(Department depar : departmentList){
PageData pd = new PageData();
pd.put("id", depar.getDEPARTMENT_ID());
pd.put("parentId", depar.getPARENT_ID());
pd.put("name", depar.getNAME());
pd.put("icon", "../../../assets/images/user.gif");
departmentPdList.add(pd);
zdepartmentPdList.add(pd);
}
List<PageData>[] arrayDep = new List[2];
arrayDep[0] = zdepartmentPdList;
arrayDep[1] = departmentPdList;
return arrayDep;
}
/**ID( in ('a','b','c'))
* @param DEPARTMENT_ID
* @return
* @throws Exception
*/
public String getDEPARTMENT_IDS(String DEPARTMENT_ID) throws Exception {
DEPARTMENT_ID = Tools.notEmpty(DEPARTMENT_ID)?DEPARTMENT_ID:"0";
List<PageData> zdepartmentPdList = new ArrayList<PageData>();
zdepartmentPdList = this.listAllDepartmentToSelect(DEPARTMENT_ID,zdepartmentPdList);
StringBuffer sb = new StringBuffer();
sb.append("");
for(PageData dpd : zdepartmentPdList){
sb.append(dpd.getString("id"));
sb.append(",");
}
sb.append("'fh'");
return sb.toString();
}
/**
* @param pd
* @throws Exception
*/
public List<PageData> listAll(PageData pd)throws Exception{
return (List<PageData>)departmentMapper.listAll(pd);
}
/**ID
* @param pd
* @throws Exception
*/
public List<PageData> isrepeat(PageData pd)throws Exception{
return (List<PageData>)departmentMapper.isrepeat(pd);
}
/**
* @param pd
* @throws Exception
*/
public PageData findByCorpId(PageData pd)throws Exception{
return departmentMapper.findByCorpId(pd);
}
/**
* @param page
* @throws Exception
*/
@Override
public List<PageData> listForLevelName(Page page) throws Exception {
// TODO Auto-generated method stub
return departmentMapper.forLevelNamedatalistPage(page);
}
/**
*
* @param pd
* @return
*/
public int getDepCount(PageData pd)throws Exception{
return departmentMapper.getDepCount(pd);
}
/**
*
* @param pd
* @return
*/
public int getWorkedDepCount(PageData pd)throws Exception{
return departmentMapper.getWorkedDepCount(pd);
}
@Override
public List<PageData> statisticsByCorp(PageData pd) throws Exception {
return departmentMapper.statisticsByCorp(pd);
}
/**
*
* @param pd
* @return
*/
@Override
public List<PageData> saftmanagelist(PageData pd) throws Exception {
return departmentMapper.saftmanagelist(pd);
}
@Override
public List<PageData> listTreeCorpDept(PageData pd) throws Exception {
return departmentMapper.listTreeCorpDept(pd);
}
@Override
public List<PageData> listDept(PageData pd) throws Exception {
return departmentMapper.listDept(pd);
}
@Override
public List<PageData> listDept(Page page) throws Exception {
return departmentMapper.Dept(page);
}
/**
* @param pd
* @throws Exception
*/
public void editByLeaderOrCharge(PageData pd)throws Exception{
departmentMapper.editByLeaderOrCharge(pd);
}
@Override
public List<PageData> saftpersonlist(PageData pd) throws Exception {
return departmentMapper.saftpersonlist(pd);
}
@Override
public List<PageData> listForDoor(PageData pd) throws Exception {
return departmentMapper.listForDoor(pd);
}
public List<PageData> getGenealogy(PageData pd) throws Exception{
PageData information = departmentMapper.findById(pd);
if (information == null || information.size() < 0){
return null;
}
information.put("level",0);
List<PageData> result = new ArrayList<>();
if (information.getString("PARENT_ID").equals("0")){
result.add(information);
return result;
}
if (information.getString("PARENT_ID").equals(information.getString("CORPINFO_ID"))){
result.add(information);
return result;
}
result.add(information);
getGenealogyUtil(information.getString("PARENT_ID"),result,1);
result = result.stream().sorted((o1,o2) -> new BigDecimal(o2.get("level").toString()).compareTo(new BigDecimal(o1.get("level").toString()))).collect(Collectors.toList());
return result;
}
@Override
public List<PageData> listTreeManageAndCorpNum(PageData pd) {
return departmentMapper.listTreeManageAndCorpNum(pd);
}
@Override
public List<PageData> islistAll(PageData pd) {
return departmentMapper.islistAll(pd);
}
private List<PageData> getGenealogyUtil(String id,List<PageData> list,int level) throws Exception{
PageData condition = new PageData();
condition.put("DEPARTMENT_ID",id);
PageData parent = departmentMapper.findById(condition);
parent.put("level",level);
list.add(parent);
if (parent.getString("PARENT_ID").equals(parent.getString("CORPINFO_ID"))){
return list;
}
return getGenealogyUtil(parent.getString("PARENT_ID"),list,++level);
}
/**
* ()
* @param MENU_ID
* @return
* @throws Exception
*/
public List<Department> listAllDepartmentV2(String parentId,String url) throws Exception {
String CORPINFO_ID = Jurisdiction.getCORPINFO_ID();
List<Department> listAll = departmentMapper.listDepartAllByCorpinfoId(CORPINFO_ID);
Map<String,List<Department>> listAllMap = new HashMap<>();
for (Department itemList: listAll){
String parentID = itemList.getPARENT_ID();
List<Department> item = new ArrayList<>();
if(listAllMap.containsKey(parentID)){
item = listAllMap.get(parentID);
}
item.add(itemList);
listAllMap.put(parentID,item);
}
List<Department> departmentList = this.listAllDigui("0",listAllMap,url); //获取所有菜单
return departmentList;
}
public List<Department> listAllDigui(String parentId, Map<String,List<Department>> allList,String url) throws Exception {
List<Department> itemList = this.listSubMenuByParentId(parentId,allList); //更具pid 获取数据
for(Department depar : itemList){
depar.setTreeurl(url+depar.getDEPARTMENT_ID());
depar.setSubDepartment(this.listAllDigui(depar.getDEPARTMENT_ID(),allList,url));
depar.setTarget("treeFrame");
depar.setIcon("../../../assets/images/user.gif");
}
return itemList;
}
public List<Department> listSubMenuByParentId (String parentId,Map<String,List<Department>> allList){ //更具pid 获取数据
List<Department> menuList = new ArrayList<>();
if(allList.containsKey(parentId)){
menuList = allList.get(parentId);
}
return menuList;
}
public List<PageData> getSonIdsByParid(PageData pd) throws Exception {
return departmentMapper.getSonIdsByParid(pd);
}
public Map<String,String> getDepartMapFroExcel (PageData pd) throws Exception{
Map<String,String> reMap = new HashMap<>();
List<PageData> departAllList = departmentMapper.listAll(pd);
for (PageData data :departAllList){
if (reMap.containsKey(data.getString("NAME"))) {
reMap.put(data.getString("NAME"),"-1");
}else {
reMap.put(data.getString("NAME"),data.getString("DEPARTMENT_ID"));
}
}
return reMap;
}
@Override
public List<PageData> listTreeManageAndCorp1(PageData pd) throws Exception {
return departmentMapper.listTreeManageAndCorp1(pd);
}
@Override
public List<PageData> listTreeManageAndCorpForPcPunishThePerson(PageData pd) throws Exception {
return departmentMapper.listTreeManageAndCorpForPcPunishThePerson(pd);
}
@Override
public PageData getDepartmentInfo(PageData pd) throws Exception {
return departmentMapper.getInfo(pd);
}
@Override
public List<PageData> listTreeManageAndCorpHasOrder(PageData pd) {
return departmentMapper.listTreeManageAndCorpHasOrder(pd);
}
@Override
public List<Department> listAllCorpDepartment(String parentId) throws Exception{
List<Department> departmentList = this.listSubCorpDepartmentByParentId(parentId);
for(Department depar : departmentList){
depar.setTreeurl("department_list.html?DEPARTMENT_ID="+depar.getDEPARTMENT_ID());
depar.setSubDepartment(this.listAllCorpDepartment(depar.getDEPARTMENT_ID()));
depar.setTarget("treeFrame");
depar.setIcon("../../../assets/images/user.gif");
}
return departmentList;
}
@Override
public PageData getCorpDepartment(PageData condition) throws Exception {
return departmentMapper.findByCorpDepartmentId(condition);
}
@Override
public int getDepartmentCount(PageData pageData) {
return departmentMapper.getDepartmentCount(pageData);
}
/**
* ID
* @param parentId
* @return
* @throws Exception
*/
public List<Department> listSubCorpDepartmentByParentId(String parentId) throws Exception {
return departmentMapper.listSubCorpDepartmentByParentId(parentId);
}
}