package cn.com.lzt.dialogDeal.service.impl; import java.io.Serializable; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.daju.common.constants.EleTypeEnum; import com.daju.mix.dao.entity.TBArchivesArea; import com.daju.mix.dao.entity.TBArchivesPlace; import com.daju.mix.dao.entity.TBArchivesRoadSection; import com.daju.mix.dao.entity.TBWorkRouteList; import com.daju.mix.dao.mapper.TBArchivesAreaMapper; import com.daju.mix.dao.service.impl.TBArchivesAreaServiceImpl; import com.daju.mix.dao.service.impl.TBArchivesPlaceServiceImpl; import com.daju.mix.dao.service.impl.TBArchivesRoadSectionServiceImpl; import com.daju.mix.dto.ElementDto; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.JeecgDataAutorUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.web.system.pojo.base.TSDepart; import org.jeecgframework.web.system.pojo.base.TSUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.lzt.arrangeduty.dao.ArrangeDutyMinidao; import cn.com.lzt.arrangeduty.dao.MealsSubsidyMiniDao; import cn.com.lzt.arrangeduty.dao.ProjectDepartMinidao; import cn.com.lzt.arrangeduty.dao.UserOrgMinidao; import cn.com.lzt.arrangeduty.dto.ProjectDepartDto; import cn.com.lzt.arrangeduty.dto.UserOrgDto; import cn.com.lzt.arrangeduty.entity.ArrangeDutyEntity; import cn.com.lzt.dialogDeal.dao.UserDepartOrgDealMiniDao; import cn.com.lzt.dialogDeal.service.DialogDealServiceI; import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI; import javax.annotation.Resource; @Service("dialogDealService") @Transactional public class DialogDealServiceImpl extends CommonServiceImpl implements DialogDealServiceI { @Autowired ArrangeDutyMinidao arrangeDutyMinidao; @Autowired MealsSubsidyMiniDao mealsSubsidyMiniDao; @Autowired ProjectDepartMinidao projectDepartMinidao; @Autowired UserOrgMinidao userOrgMinidao; // 用户和项目关系处理 @Autowired UserDepartOrgDealServiceI userDepartOrgDealServiceI; @Autowired UserDepartOrgDealMiniDao userDepartOrgDealMiniDao; @Resource TBArchivesPlaceServiceImpl tbArchivesPlaceService; @Resource TBArchivesRoadSectionServiceImpl tbArchivesRoadSectionService; @Resource TBArchivesAreaServiceImpl tbArchivesAreaService; @Resource TBArchivesAreaMapper tbArchivesAreaMapper; @Override public void delete(ArrangeDutyEntity entity) throws Exception { // TODO Auto-generated method stub } @Override public Serializable save(ArrangeDutyEntity entity) throws Exception { // TODO Auto-generated method stub return null; } @Override public void saveOrUpdate(ArrangeDutyEntity entity) throws Exception { // TODO Auto-generated method stub } @Override public List getProjectDepartByUserId(){ TSUser tSUser=ResourceUtil.getSessionUser(); UserOrgDto userOrgDto=new UserOrgDto(); userOrgDto.setUserId(tSUser.getId()); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // 根据当前登录用户id查询 用户与组织机构关系表数据 List userOrgDtoList = userDepartOrgDealServiceI.getUserOrgDtoByUserId(userOrgDto, authSql); ProjectDepartDto projectDepartDto =new ProjectDepartDto(); List> listMap=new ArrayList>(); List projectDepartIdList=new ArrayList(); for (int i = 0; i < userOrgDtoList.size(); i++) { List newProjectDepartIdList =userDepartOrgDealServiceI.getProjectDepartId(userOrgDtoList.get(i).getOrgId()); if(newProjectDepartIdList.size()>0){ for (int j = 0; j < newProjectDepartIdList.size(); j++) { Map myMap=new HashMap(); myMap.put("projectDepartId", newProjectDepartIdList.get(j)); myMap.put("ifpluralism", userOrgDtoList.get(i).getIfpluralism()); myMap.put("status", userOrgDtoList.get(i).getStatus()); if(!projectDepartIdList.contains(newProjectDepartIdList.get(j))){ projectDepartIdList.add(newProjectDepartIdList.get(j)); listMap.add(myMap); } } } } projectDepartDto.getDepartIdList().addAll(projectDepartIdList); authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List projectDepartDtoList = userDepartOrgDealServiceI.getProjectDepartByListId(projectDepartDto, authSql); for (int i = 0; i < projectDepartDtoList.size(); i++) { for (int j = 0; j < listMap.size(); j++) { if(projectDepartDtoList.get(i).getId().equals(listMap.get(j).get("projectDepartId"))){ projectDepartDtoList.get(i).setIfpluralism(listMap.get(j).get("ifpluralism").toString()); projectDepartDtoList.get(i).setStatus(listMap.get(j).get("status").toString()); break; } /*for(Entry entryParam : listMap.get(j).entrySet()){ //System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue()); if(projectDepartDtoList.get(i).getId().equals(entryParam.getValue())){} }*/ } } return projectDepartDtoList; } /* (non-Javadoc) * @see cn.com.lzt.dialogDeal.service.DialogDealServiceI#getProjectDepartChildByUserIdAndLikeDepartName(cn.com.lzt.arrangeduty.dto.ProjectDepartDto) */ @Override public List getProjectDepartChildByUserIdAndLikeDepartName(ProjectDepartDto projectDepartDto) { TSUser tSUser=ResourceUtil.getSessionUser(); UserOrgDto userOrgDto=new UserOrgDto(); userOrgDto.setUserId(tSUser.getId()); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // 根据当前登录用户id查询 用户与组织机构关系表数据 List userOrgDtoList = userDepartOrgDealServiceI.getUserOrgDtoByUserId(userOrgDto, authSql); Map depargMap = getTSDepartByIdMap(); List projectDepartDtoList = new ArrayList(); for (int i = 0; i < userOrgDtoList.size(); i++) { List newProjectDepartIdList =userDepartOrgDealServiceI.getAllChildrenList(userOrgDtoList.get(i).getOrgId(),null,null); if(newProjectDepartIdList.size()>0){ for (int j = 0; j < newProjectDepartIdList.size(); j++) { if(userOrgDtoList.get(i).getOrgId().equals(newProjectDepartIdList.get(j).getId())) { continue; } String departname = depargMap.get(newProjectDepartIdList.get(j).getId()); if(departname != null ) { newProjectDepartIdList.get(j).setDepartName(departname); } if(projectDepartDto.getDepartName() != null && departname.indexOf(projectDepartDto.getDepartName())<0) { continue; } projectDepartDtoList.add(newProjectDepartIdList.get(j)); } } } return projectDepartDtoList; } private Map getTSDepartByIdMap(){ //查出部门信息表所有数据,获取主键id和名称 StringBuffer hql = new StringBuffer(" from TSDepart "); List TSDepartByIdMapList = this.findHql(hql.toString()); Map TSDepartNameByIdMap=new HashMap(); for (int i = 0; i < TSDepartByIdMapList.size(); i++) { TSDepart depart = TSDepartByIdMapList.get(i); String showname = depart.getDepartname(); if(depart.getTSPDepart() != null && !Globals.SHENQIN_ID.equals(depart.getTSPDepart().getId())) { showname = depart.getTSPDepart().getDepartname() + "-" + showname; } TSDepartNameByIdMap.put(TSDepartByIdMapList.get(i).getId(),showname); } return TSDepartNameByIdMap; } @Override public List getProjectDepartByUserIdAndLikeDepartName(ProjectDepartDto projectDepartDto){ TSUser tSUser=ResourceUtil.getSessionUser(); UserOrgDto userOrgDto=new UserOrgDto(); userOrgDto.setUserId(tSUser.getId()); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // 根据当前登录用户id查询 用户与组织机构关系表数据 List userOrgDtoList = userDepartOrgDealServiceI.getUserOrgDtoByUserId(userOrgDto, authSql); // ProjectDepartDto projectDepartDto =new ProjectDepartDto(); List> listMap=new ArrayList>(); List projectDepartIdList=new ArrayList(); for (int i = 0; i < userOrgDtoList.size(); i++) { List newProjectDepartIdList =userDepartOrgDealServiceI.getProjectDepartId(userOrgDtoList.get(i).getOrgId()); if(newProjectDepartIdList.size()>0){ for (int j = 0; j < newProjectDepartIdList.size(); j++) { Map myMap=new HashMap(); myMap.put("projectDepartId", newProjectDepartIdList.get(j)); myMap.put("ifpluralism", userOrgDtoList.get(i).getIfpluralism()); myMap.put("status", userOrgDtoList.get(i).getStatus()); if(!projectDepartIdList.contains(newProjectDepartIdList.get(j))){ projectDepartIdList.add(newProjectDepartIdList.get(j)); listMap.add(myMap); } } } } projectDepartDto.getDepartIdList().addAll(projectDepartIdList); authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List projectDepartDtoList = userDepartOrgDealServiceI.getProjectDepartByListId(projectDepartDto, authSql); for (int i = 0; i < projectDepartDtoList.size(); i++) { for (int j = 0; j < listMap.size(); j++) { if(projectDepartDtoList.get(i).getId().equals(listMap.get(j).get("projectDepartId"))){ projectDepartDtoList.get(i).setIfpluralism(listMap.get(j).get("ifpluralism").toString()); projectDepartDtoList.get(i).setStatus(listMap.get(j).get("status").toString()); break; } /*for(Entry entryParam : listMap.get(j).entrySet()){ //System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue()); if(projectDepartDtoList.get(i).getId().equals(entryParam.getValue())){} }*/ } } return projectDepartDtoList; } @Override public List getProjectDepartAll( ProjectDepartDto projectDepartDto) { // StringBuffer hql = new StringBuffer(" FROM ArrangeDutyOperateEntity where yearmonth=? "); // List arrangeDutyOperateEntityList = commonService.findHql(hql.toString(),yearmonth); List orgTypeList=new ArrayList(); orgTypeList.add(Globals.org_type_3); orgTypeList.add(Globals.org_type_5); orgTypeList.add(Globals.org_type_2); projectDepartDto.getOrgTypeList().addAll(orgTypeList); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List projectDepartDtoList=userDepartOrgDealMiniDao.getProjectDepartAll(projectDepartDto, authSql); Collections.sort(projectDepartDtoList, new Comparator() { @Override public int compare(ProjectDepartDto o1, ProjectDepartDto o2) { String o1name = ""; String o2name = ""; if(o1.getDepartName() != null) { o1name = o1.getDepartName(); } if(o2.getDepartName() != null) { o2name = o2.getDepartName(); } return Collator.getInstance(Locale.CHINESE).compare(o1name,o2name); } }); return projectDepartDtoList; } /* (non-Javadoc) * @see cn.com.lzt.dialogDeal.service.DialogDealServiceI#getProjectDepartAllWithChild(cn.com.lzt.arrangeduty.dto.ProjectDepartDto) */ @Override public List getProjectDepartAllWithChildren(ProjectDepartDto projectDepartDto) { List orgTypeList=new ArrayList(); List projectDepartDtoList = new ArrayList(); orgTypeList.add(Globals.org_type_2); orgTypeList.add(Globals.org_type_3); orgTypeList.add(Globals.org_type_5); projectDepartDto.getOrgTypeList().addAll(orgTypeList); String likename = projectDepartDto.getDepartName(); projectDepartDto.setDepartName(null); Map depargMap = getTSDepartByIdMap(); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List userOrgDtoList=userDepartOrgDealMiniDao.getProjectDepartAllWithChildren(projectDepartDto, authSql); for (int i = 0; i < userOrgDtoList.size(); i++) { String departname = depargMap.get(userOrgDtoList.get(i).getId()); if(likename != null && likename.length() > 0 && departname.indexOf(likename)<0) { continue; } if(departname != null) { userOrgDtoList.get(i).setDepartName(departname); } projectDepartDtoList.add(userOrgDtoList.get(i)); } Collections.sort(projectDepartDtoList, new Comparator() { @Override public int compare(ProjectDepartDto o1, ProjectDepartDto o2) { String o1name = ""; String o2name = ""; if(o1.getDepartName() != null) { o1name = o1.getDepartName(); } if(o2.getDepartName() != null) { o2name = o2.getDepartName(); } return Collator.getInstance(Locale.CHINESE).compare(o1name,o2name); } }); return projectDepartDtoList; } /*@Override public List getElementAll(ElementDto elementDto) { List elementDtos = new ArrayList<>(); QueryWrapper sectionQueryWrapper = new QueryWrapper<>(); QueryWrapper tbArchivesPlaceQueryWrapper = new QueryWrapper<>(); if(elementDto.getCode()!= null){ sectionQueryWrapper.lambda().like(TBArchivesRoadSection::getCode, elementDto.getCode()); tbArchivesPlaceQueryWrapper.lambda().like(TBArchivesPlace::getCode, elementDto.getCode()); } if(elementDto.getName()!= null){ sectionQueryWrapper.lambda().like(TBArchivesRoadSection::getName, elementDto.getName()); tbArchivesPlaceQueryWrapper.lambda().like(TBArchivesPlace::getName, elementDto.getName()); } if("".equals(elementDto.getType()) || elementDto.getType() == null){ List archivesRoadSectionList = tbArchivesRoadSectionService.list(sectionQueryWrapper); archivesRoadSectionList.forEach((item)->{ ElementDto dto = new ElementDto(); dto.setCode(item.getCode()); dto.setName(item.getName()); dto.setType("路段"); elementDtos.add(dto); }); List archivesPlaceList = tbArchivesPlaceService.list(tbArchivesPlaceQueryWrapper); archivesPlaceList.forEach((item)->{ ElementDto dto = new ElementDto(); dto.setCode(item.getCode()); dto.setName(item.getName()); dto.setType(String.valueOf(item.getType())); elementDtos.add(dto); }); }else if("路段".equals(elementDto.getType())){ List archivesRoadSectionList = tbArchivesRoadSectionService.list(sectionQueryWrapper); archivesRoadSectionList.forEach((item)->{ ElementDto dto = new ElementDto(); dto.setCode(item.getCode()); dto.setName(item.getName()); dto.setType("路段"); elementDtos.add(dto); }); }else{ tbArchivesPlaceQueryWrapper.lambda().eq(TBArchivesPlace::getType,elementDto.getType()); List archivesPlaceList = tbArchivesPlaceService.list(tbArchivesPlaceQueryWrapper); archivesPlaceList.forEach((item)->{ ElementDto dto = new ElementDto(); dto.setCode(item.getCode()); dto.setName(item.getName()); dto.setType(String.valueOf(item.getType())); elementDtos.add(dto); }); } return elementDtos; }*/ /** * 1123 由场所,路段 -> 作业元素表数据 (区域,路段) 1130 -> +场所 * @param elementDto * @return */ @Override public List getElementAll(ElementDto elementDto) { List elementDtos = new ArrayList<>(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if(elementDto.getCode() != null){ wrapper.like(TBArchivesArea::getCode, elementDto.getCode()); } if(elementDto.getName() != null){ wrapper.like(TBArchivesArea::getName, elementDto.getName()); } if(elementDto.getType() != null){ wrapper.eq(TBArchivesArea::getAreaType, elementDto.getType()); } List list = tbArchivesAreaMapper.selectList(wrapper); // List list = tbArchivesAreaService.list(wrapper); for (TBArchivesArea li : list) { ElementDto dto = new ElementDto(); dto.setCode(li.getCode()); dto.setName(li.getName()); dto.setType(EleTypeEnum.nameForCode(li.getAreaType())); elementDtos.add(dto); } return elementDtos; } }