|  | @ -20,19 +20,28 @@ package com.elink.esua.epdc.service.impl; | 
			
		
	
		
		
			
				
					|  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
			
		
	
		
		
			
				
					|  |  | import com.baomidou.mybatisplus.core.metadata.IPage; |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |  |  | import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.commons.tools.constant.Constant; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.commons.tools.page.PageData; |  |  | import com.elink.esua.epdc.commons.tools.page.PageData; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.commons.tools.security.user.UserDetail; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |  |  | import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |  |  | import com.elink.esua.epdc.commons.tools.constant.FieldConstant; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.dao.UserAnalysisNoteDao; |  |  | import com.elink.esua.epdc.dao.UserAnalysisNoteDao; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.dto.SysUserDTO; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.dto.UserAnalysisNoteDTO; |  |  | import com.elink.esua.epdc.dto.UserAnalysisNoteDTO; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.entity.SysUserEntity; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.entity.UserAnalysisNoteEntity; |  |  | import com.elink.esua.epdc.entity.UserAnalysisNoteEntity; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.redis.UserAnalysisNoteRedis; |  |  | import com.elink.esua.epdc.redis.UserAnalysisNoteRedis; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.elink.esua.epdc.service.SysDeptService; | 
			
		
	
		
		
			
				
					|  |  | import com.elink.esua.epdc.service.UserAnalysisNoteService; |  |  | import com.elink.esua.epdc.service.UserAnalysisNoteService; | 
			
		
	
		
		
			
				
					|  |  | import org.apache.commons.lang3.StringUtils; |  |  | import org.apache.commons.lang3.StringUtils; | 
			
		
	
		
		
			
				
					|  |  | import org.springframework.beans.factory.annotation.Autowired; |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
			
		
	
		
		
			
				
					|  |  | import org.springframework.stereotype.Service; |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
		
			
				
					|  |  | import org.springframework.transaction.annotation.Transactional; |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
		
			
				
					|  |  | import java.util.Arrays; |  |  | import java.util.Arrays; | 
			
		
	
		
		
			
				
					|  |  | import java.util.List; |  |  | import java.util.List; | 
			
		
	
		
		
			
				
					|  |  | import java.util.Map; |  |  | import java.util.Map; | 
			
		
	
	
		
		
			
				
					|  | @ -41,21 +50,30 @@ import java.util.Map; | 
			
		
	
		
		
			
				
					|  |  |  * 用户可以查看指标表 |  |  |  * 用户可以查看指标表 | 
			
		
	
		
		
			
				
					|  |  |  * |  |  |  * | 
			
		
	
		
		
			
				
					|  |  |  * @author qu qu@elink-cn.com |  |  |  * @author qu qu@elink-cn.com | 
			
		
	
		
		
			
				
					
					|  |  |  * @since v1.0.0 2020-11-23 |  |  |  * @since v1.0.0 2020-11-24 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |  */ |  |  |  */ | 
			
		
	
		
		
			
				
					|  |  | @Service |  |  | @Service | 
			
		
	
		
		
			
				
					|  |  | public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNoteDao, UserAnalysisNoteEntity> implements UserAnalysisNoteService { |  |  | public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNoteDao, UserAnalysisNoteEntity> implements UserAnalysisNoteService { | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     @Autowired |  |  |     @Autowired | 
			
		
	
		
		
			
				
					
					|  |  |     private UserAnalysisNoteRedis userAnalysisNoteRedis; |  |  |     private SysDeptService sysDeptService; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     @Override |  |  |     @Override | 
			
		
	
		
		
			
				
					|  |  |     public PageData<UserAnalysisNoteDTO> page(Map<String, Object> params) { |  |  |     public PageData<UserAnalysisNoteDTO> page(Map<String, Object> params) { | 
			
		
	
		
		
			
				
					
					|  |  |         IPage<UserAnalysisNoteEntity> page = baseDao.selectPage( |  |  |         //转换成like
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                 getPage(params, FieldConstant.CREATED_TIME, false), |  |  |         paramsToLike(params, "username"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                 getWrapper(params) |  |  |         paramsToLike(params, "mobile"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         ); |  |  |         //分页
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         return getPageData(page, UserAnalysisNoteDTO.class); |  |  |         IPage<UserAnalysisNoteEntity> page = getPage(params); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |         //普通管理员,只能查询所属部门及子部门的数据
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         UserDetail user = SecurityUser.getUser(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if (user.getSuperAdmin() == SuperAdminEnum.NO.value()) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId())); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //查询
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<UserAnalysisNoteDTO> list = baseDao.getList(params); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         return getPageData(list, page.getTotal(), UserAnalysisNoteDTO.class); | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     @Override |  |  |     @Override | 
			
		
	
	
		
		
			
				
					|  | @ -83,6 +101,10 @@ public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNot | 
			
		
	
		
		
			
				
					|  |  |     @Override |  |  |     @Override | 
			
		
	
		
		
			
				
					|  |  |     @Transactional(rollbackFor = Exception.class) |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
		
			
				
					|  |  |     public void save(UserAnalysisNoteDTO dto) { |  |  |     public void save(UserAnalysisNoteDTO dto) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //查询冗余字段
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         ParentAndAllDeptDTO allDeptDTO = sysDeptService.getParentAndAllDept(dto.getDeptId()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         dto.setAllDeptIds(allDeptDTO.getAllDeptIds()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         dto.setAllDeptNames(allDeptDTO.getAllDeptNames()); | 
			
		
	
		
		
			
				
					|  |  |         UserAnalysisNoteEntity entity = ConvertUtils.sourceToTarget(dto, UserAnalysisNoteEntity.class); |  |  |         UserAnalysisNoteEntity entity = ConvertUtils.sourceToTarget(dto, UserAnalysisNoteEntity.class); | 
			
		
	
		
		
			
				
					|  |  |         insert(entity); |  |  |         insert(entity); | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
	
		
		
			
				
					|  | @ -101,4 +123,70 @@ public class UserAnalysisNoteServiceImpl extends BaseServiceImpl<UserAnalysisNot | 
			
		
	
		
		
			
				
					|  |  |         baseDao.deleteBatchIds(Arrays.asList(ids)); |  |  |         baseDao.deleteBatchIds(Arrays.asList(ids)); | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     public PageData<SysUserDTO> userpage(Map<String, Object> params) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //转换成like
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         paramsToLike(params, "username"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         paramsToLike(params, "realname"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         paramsToLike(params, "mobile"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         paramsToLike(params, "email"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //分页
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         IPage<UserAnalysisNoteEntity> page = getPage(params); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //普通管理员,只能查询所属部门及子部门的数据
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         UserDetail user = SecurityUser.getUser(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if (user.getSuperAdmin() == SuperAdminEnum.NO.value()) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             params.put("deptIdList", sysDeptService.getSubDeptIdList(user.getDeptId())); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         //查询
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<SysUserEntity> list = baseDao.getUserList(params); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         return getPageData(list, page.getTotal(), SysUserDTO.class); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     public void saveList(Map<String, Object> params) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<UserAnalysisNoteEntity> entityList = new ArrayList<>(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if(params.size() > 0){ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             list = (List<Map<String, Object>>)params.get("aformDataParams"); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // 用于校验重复数据
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<String> userIdList = new ArrayList<String>(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         for(int i = 0 ; i < list.size() ; i++){ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             // 过滤重复数据
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             if(userIdList.contains(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString())){ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 continue; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             userIdList.add(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             UserAnalysisNoteEntity a = new UserAnalysisNoteEntity(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setDeptId(list.get(i).get("deptId") == null ? "" : list.get(i).get("deptId").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setDeptName(list.get(i).get("deptName") == null ? "" : list.get(i).get("deptName").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setUserId(list.get(i).get("id") == null ? "" : list.get(i).get("id").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setUserName(list.get(i).get("username") == null ? "" : list.get(i).get("username").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setDeptType(list.get(i).get("remark") == null ? "" : list.get(i).get("remark").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setMobile(list.get(i).get("mobile") == null ? "" : list.get(i).get("mobile").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             ParentAndAllDeptDTO allDeptDTO = sysDeptService.getParentAndAllDept(list.get(i).get("deptId").toString()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setAllDeptIds(allDeptDTO.getAllDeptIds()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             a.setAllDeptNames(allDeptDTO.getAllDeptNames()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             // 校验用户是否已存在
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             if (getCodeCount(a.getUserId()) > 0) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 continue; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             entityList.add(a); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | //        insert(entity);
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         insertBatch(entityList); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * 检测用户是否已经存在 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * @param userId | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      * @return | 
			
		
	
		
		
			
				
					|  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     public Integer getCodeCount(String userId) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         return baseDao.selectCountByuserId(userId); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | } |  |  | } |