package com.cloud.user.service.impl;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.cloud.common.constants.GlobalDict;
|
import com.cloud.common.model.FileInfos;
|
import com.cloud.common.utils.*;
|
import com.cloud.model.common.Page;
|
import com.cloud.model.sys.*;
|
import com.cloud.model.sys.constants.CredentialType;
|
import com.cloud.user.constants.EmpTypeConstant;
|
import com.cloud.user.dao.*;
|
import com.cloud.user.model.BbFace;
|
import com.cloud.user.service.BbEmployeeService;
|
import com.cloud.user.service.TokenService;
|
import com.cloud.user.utils.EnumStr;
|
import com.cloud.user.utils.FaceUtil;
|
import com.cloud.user.vo.BbEmployeeRelationVO;
|
import com.cloud.user.vo.BbEmployeeVO;
|
import lombok.extern.log4j.Log4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.http.MediaType;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.util.*;
|
import java.util.List;
|
|
/**
|
* 人员
|
* 业务层
|
*/
|
@Log4j
|
@Service
|
public class BbEmployeeServiceImpl implements BbEmployeeService {
|
|
@Autowired
|
private BbEmployeeDao dao;
|
@Autowired
|
private SysOrganizationDao orgDao;
|
@Autowired
|
private BbFaceDao bbFaceDao;
|
// @Autowired
|
// private SysOrganizationService orgService;
|
@Autowired
|
private BbEmployeeRelationDao brDao;
|
@Autowired
|
private TokenService tokenService;
|
@Autowired
|
private RestTemplateUtil restTemplateUtil;
|
@Autowired
|
private UserRoleDao userRoleDao;
|
@Autowired
|
private EnumStr enumStr;
|
@Autowired
|
private AppUserDao userDao;
|
@Autowired
|
private UserCredentialsDao userCredentialsDao;
|
@Autowired
|
private FastDFSUtil fastDFSUtil;
|
|
/**
|
* 根据主键查询
|
* @param orgId
|
*/
|
@Override
|
public BbEmployee findById(String id, Long orgId) {
|
Map<String, Object> params = new HashMap<String, Object>();
|
params.put("id", id);
|
if (orgId != null && !"".equals(orgId)) {
|
params.put("orgId", orgId);
|
}
|
return dao.findById(params);
|
}
|
|
/**
|
* 根据主键删除
|
* @param params
|
*/
|
@Override
|
public Map<String,Object> deleteById(Map<String, Object> params) {
|
Map<String,Object> map = new HashMap<String,Object>();
|
Integer status = dao.deleteById(params);
|
if(status > 0){
|
//同时逻辑删除人脸ID
|
//bbFaceDao.deleteByUserId(params);
|
//delete 删除人脸ID
|
//bbFaceDao.deleteByUserId((String) params.get("id"));
|
dao.deleteMergePerson((String) params.get("id"));
|
map.put("code","0");
|
map.put("message","删除成功!!!");
|
}else{
|
map.put("code","1");
|
map.put("message","删除失败!!!");
|
}
|
return map;
|
}
|
|
@Override
|
public Map<String, Object> deleteByIdFromTemp(String id) {
|
Map<String,Object> map = new HashMap<String,Object>();
|
Integer status = dao.deleteByIdFromTemp(id);
|
if(status > 0){
|
|
bbFaceDao.deleteByUserId(id);
|
map.put("code","0");
|
map.put("message","删除成功!!!");
|
}else{
|
map.put("code","1");
|
map.put("message","删除失败!!!");
|
}
|
return map;
|
}
|
|
/**
|
* 添加, 没有业务
|
*/
|
@Override
|
public Integer add(BbEmployee bean) {
|
// bean.preInsert(tokenService.currentUser());
|
// if (bean.getOrgNamesJson() == null || "".equals(bean.getOrgNamesJson())) {
|
// bean.setOrgNamesJson("{}");
|
// }
|
// if (bean.getRevJson1() == null || "".equals(bean.getRevJson1())) {
|
// bean.setRevJson1("{}");
|
// }
|
return 0;
|
}
|
|
@Override
|
public Map isRepeatIdCard(Map<String,Object> param) {
|
Map<String,Object> map = new HashMap<String,Object>();
|
int count = dao.isRepeatIdCard(param);
|
if(count==0){
|
map.put("code","0");
|
map.put("message","底库无此身份证号,可以使用!");
|
}else{
|
map.put("code","1");
|
map.put("message","跟底库已有的身份证号重复!");
|
}
|
return map;
|
}
|
|
@Override
|
public JSONObject clusterLocaltion(String clusterIds) {
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("clusterIds",clusterIds);
|
String post = restTemplateUtil.post(enumStr.getClusterLocaltion(), paramMap , MediaType.APPLICATION_JSON_UTF8, true);
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
return jsonMap;
|
}
|
|
@Override
|
public JSONObject singleEdit(MultipartFile file,String exPersonId) {
|
FileInfos fileInfos = fastDFSUtil.upload(file);
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("fileInfos",fileInfos);
|
paramMap.put("exPersonId",exPersonId);
|
Long time = System.currentTimeMillis();
|
String post = restTemplateUtil.postImg(enumStr.getSingleEdit(), paramMap, MediaType.APPLICATION_JSON_UTF8,String.class, true );
|
System.out.println("往返时间是"+(System.currentTimeMillis()-time)+"毫秒");
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
System.out.println("返回的结果是"+JSONObject.parseObject(post) );
|
return jsonMap;
|
}
|
|
/**
|
* 编辑, 没有业务
|
*/
|
@Override
|
public BbEmployee update(BbEmployee bean) {
|
bean.preUpdate(tokenService.currentUser());
|
// 查找要编辑的数据库实体
|
BbEmployee dbBean = findById(bean.getId(), bean.getOrgId());
|
|
// 设置要修改的属性
|
dbBean.setOfficeId(bean.getOfficeId()); //部门Id
|
dbBean.setCardId(bean.getCardId()); //身份证号
|
dbBean.setName(bean.getName()); //姓名
|
dbBean.setGender(bean.getGender()); //性别
|
dbBean.setNation(bean.getNation()); //民族
|
dbBean.setPhone(bean.getPhone()); //电话
|
dbBean.setType(bean.getType()); //人员类型(学生、职工、校外)
|
dbBean.setOrgNamesJson(bean.getOrgNamesJson()); //组织结构名称冗余
|
dbBean.setPhotos(bean.getPhotos()); //人员照片(格式
|
dbBean.setFaceIds(bean.getFaceIds()); //人脸Id(格式
|
dbBean.setRemarks(bean.getRemarks()); //备注信息
|
dbBean.setRevJson1(bean.getRevJson1()); //预留json格式字段1
|
|
dao.update(dbBean);
|
return dbBean;
|
}
|
|
|
/**
|
* 添加,包含业务
|
*/
|
@Transactional
|
@Override
|
public JSONObject addBbEmployee(MultipartFile[] files,Integer orgId,Integer officeId) {
|
|
List<FileInfos> list = new ArrayList<>();
|
//JSONArray jsonArray = new JSONArray();
|
for (MultipartFile file : files) {
|
FileInfos fileInfos = fastDFSUtil.upload(file);
|
list.add(fileInfos);
|
// jsonArray.add(fileInfos);
|
}
|
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("list",list); /// wp 修改
|
if(orgId == null || officeId == null ){
|
LoginAppUser appUser = tokenService.currentUser();
|
orgId = Integer.valueOf(appUser.getOrgId().toString());
|
officeId = appUser.getOfficeId();
|
}
|
paramMap.put("orgId",orgId);
|
paramMap.put("officeId",officeId);
|
Long time = System.currentTimeMillis();
|
String post = restTemplateUtil.postImg(enumStr.getUploadImgUrl(), paramMap, MediaType.APPLICATION_JSON_UTF8,String.class, true );
|
System.out.println("往返时间是"+(System.currentTimeMillis()-time)+"毫秒");
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
System.out.println("返回的结果是"+JSONObject.parseObject(post));
|
return jsonMap;
|
}
|
|
/**
|
* 添加人员关系
|
* @return
|
*/
|
private Integer addEmpRelations(List<BbEmployeeRelationVO> list,BbEmployeeVO bbEmployeeVO){
|
Integer state = 0;
|
if(list.size() > 0){
|
for(BbEmployeeRelationVO bbEmployeeRelationVO:list){
|
bbEmployeeRelationVO.setOrgId(bbEmployeeVO.getOrgId());
|
bbEmployeeRelationVO.setEmployeeId(bbEmployeeVO.getId());
|
bbEmployeeRelationVO.preInsert(tokenService.currentUser());
|
state = brDao.add(bbEmployeeRelationVO);
|
}
|
}
|
return state;
|
}
|
|
/**
|
* 编辑,包含业务
|
*/
|
@Transactional
|
@Override
|
public void updateBbEmployee(BbEmployeeVO beanVO) {
|
// 查找要编辑的数据库实体
|
BbEmployee dbBean = findById(beanVO.getId(), beanVO.getOrgId());
|
if(dbBean.getPhotos()!=null&&!dbBean.getPhotos().equals(beanVO.getPhotos())){
|
Map<String,Object> params = new HashMap<>();
|
params.put("id",beanVO.getId());
|
params.put("orgId",beanVO.getOrgId());
|
bbFaceDao.deleteByUserId((String) params.get("id"));
|
//根据图片路径获得人脸ID
|
try {
|
byte[] bytesFaces = ReadUrlImg.getImgByte(imgHttpUrl+beanVO.getPhotos());
|
//获取人脸特征
|
String faces = FaceUtil.extractFeature(bytesFaces,null);
|
//人脸特征不为空时
|
if(faces!=null&&!faces.isEmpty()){
|
Integer bbFaciId = bbFaceDao.findIdByFaces(faces);
|
if(bbFaciId == null){
|
BbFace bbFace = new BbFace();
|
bbFace.setOrgId(beanVO.getOrgId());
|
bbFace.setFeature(faces);
|
bbFaceDao.save(bbFace);
|
beanVO.setFaceIds(bbFace.getId().toString());
|
}
|
}else{
|
beanVO.setFaceIds("");
|
}
|
}catch (IOException e){
|
System.out.println(e.getMessage());
|
}
|
}
|
|
beanVO.preUpdate(tokenService.currentUser());
|
dao.updateBbEmpId(beanVO);
|
}
|
|
@Transactional
|
@Override
|
public void saveTemp(BbEmployee bean, String isMerge, String mergeFrom, String roleId) {
|
//保存角色信息,如果有的话(每次都删除原有的再绑定新的角色)
|
if(roleId!=null&&!"".equals(roleId)){
|
//判断用户名是否存在
|
UserCredential userCredential = userCredentialsDao.findByUsername(bean.getUserName(),bean.getUserId());
|
if (userCredential != null) {
|
throw new IllegalArgumentException("用户名已存在");
|
}
|
//删除旧的用户角色关联
|
Map paramMap = new HashMap();
|
paramMap.put("id",bean.getUserId());
|
userRoleDao.deleteUserRole(paramMap);
|
//创建一个新用户
|
if(bean.getUserName()!=null){
|
Map bbperson = dao.anyThingToUpdate(bean.getId());
|
if(bbperson==null){
|
//证明在底库没有找到,去临时库找一下
|
bbperson = dao.tempToUpdate(bean.getId());
|
}
|
|
AppUser user = null;
|
if(bbperson.get("userId")!=null&&!bbperson.get("userId").equals("")){
|
Map map = new HashMap<>();
|
map.put("id",(int)bbperson.get("userId"));
|
user = userDao.findById(map);
|
}else{
|
user = new AppUser();
|
}
|
user.setUsername(bean.getUserName());
|
user.setPassword(MD5Util.encode("000000"));
|
user.setOrgId(bean.getOrgId());
|
user.setEnabled(Boolean.TRUE);
|
user.setOfficeId(bean.getOfficeId().intValue());
|
if(tokenService.currentUser()!=null){
|
user.preInsert(tokenService.currentUser());
|
}
|
userDao.save(user);
|
//添加用户凭证,不清楚添加的必要,但有用的地方
|
Long uid = user.getId();
|
userCredentialsDao.save(new UserCredential(user.getUsername(), CredentialType.USERNAME.name(), uid,user.getOrgId()));
|
bean.setUserId(user.getId());
|
log.info("新创建的用户id是"+user.getId());
|
//建立新的用户角色关联
|
String[] roleIds = roleId.split(",");
|
for (String id : roleIds) {
|
Map paramMap1 = new HashMap();
|
Map paramMap2 = new HashMap();
|
paramMap2.put("id",bean.getId());
|
paramMap1.put("userId",user.getId());
|
paramMap1.put("roleId",Integer.valueOf(id));
|
paramMap1.put("orgId",bean.getOrgId());
|
userRoleDao.saveUserRoles(paramMap1);
|
}
|
}
|
}else{
|
Map bbperson = dao.anyThingToUpdate(bean.getId());
|
if(bbperson==null){
|
//证明在底库没有找到,去临时库找一下
|
bbperson = dao.tempToUpdate(bean.getId());
|
}
|
|
if(bbperson.get("userId")!=null&&!bbperson.get("userId").equals("")){
|
Map paramMap = new HashMap();
|
paramMap.put("id",bean.getUserId());
|
userRoleDao.deleteUserRole(paramMap);
|
}
|
}
|
//去人员添加模块保存人员信息
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("bean",bean);
|
paramMap.put("isMerge",isMerge);
|
paramMap.put("mergeFrom",mergeFrom);
|
String post = restTemplateUtil.post(enumStr.getEditToSave(), paramMap, MediaType.APPLICATION_JSON_UTF8, true);
|
|
}
|
|
@Override
|
public void saveUpload(BbEmployee bean, String isMerge, String mergeFrom) {
|
// if(roleId!=null&&!"".equals(roleId)){
|
// //删除旧的用户角色关联
|
// Map paramMap = new HashMap();
|
// paramMap.put("id",bean.getUserId());
|
// userRoleDao.deleteUserRole(paramMap);
|
// //创建一个新用户
|
// if(bean.getUserName()!=null){
|
// AppUser user = new AppUser();
|
// user.setUsername(bean.getUserName());
|
// if(tokenService.currentUser()!=null){
|
// user.preInsert(tokenService.currentUser());
|
// }
|
// userDao.save(user);
|
// bean.setUserId(user.getId());
|
// log.info("新创建的用户id是"+user.getId());
|
// //建立新的用户角色关联
|
// String[] roleIds = roleId.split(",");
|
// for (String id : roleIds) {
|
// Map paramMap1 = new HashMap();
|
// Map paramMap2 = new HashMap();
|
// paramMap2.put("id",bean.getId());
|
// paramMap1.put("userId",user.getId());
|
// paramMap1.put("roleId",Integer.valueOf(id));
|
// paramMap1.put("orgId",bean.getOrgId());
|
// userRoleDao.saveUserRoles(paramMap1);
|
// }
|
// }
|
// }
|
//去人员添加模块保存人员信息
|
JSONObject paramMap = new JSONObject();
|
|
paramMap.put("bean",bean);
|
paramMap.put("isMerge",isMerge);
|
paramMap.put("mergeFrom",mergeFrom);
|
//String url="http://192.168.1.203:3697/addPerson/save";
|
String post = restTemplateUtil.post(enumStr.getUploadToSave(), paramMap, MediaType.APPLICATION_JSON_UTF8, true);
|
}
|
@Transactional
|
@Override
|
public String anyThingToSave(BbEmployee bean, String roleId) {
|
String isNewAppUser = null; // 修改时初始人员 需要给定 密码
|
Map bbperson = null;long userId = 0;
|
if(bean.getId()!=null&&!"".equals(bean.getId())){
|
bbperson = dao.anyThingToUpdate(bean.getId());
|
if(bbperson.get("userId")!=null){
|
userId = Long.valueOf(""+bbperson.get("userId"));
|
}
|
}
|
//判断用户名是否存在
|
if(bean.getUserName()!=null){
|
UserCredential userCredential = userCredentialsDao.findByUsername(bean.getUserName(),userId);
|
if (userCredential != null) {
|
throw new IllegalArgumentException("用户名已存在.");
|
}
|
}
|
try{
|
if(bean.getId()!=null&&!"".equals(bean.getId())){
|
log.info("保存用户信息");
|
if(roleId!=null&&!"".equals(roleId)){
|
//删除旧的用户角色关联
|
Map paramMap = new HashMap();
|
paramMap.put("id",bean.getUserId());
|
userRoleDao.deleteUserRole(paramMap);
|
//创建一个新用户
|
if(bean.getUserName()!=null){
|
// Map bbperson = dao.anyThingToUpdate(bean.getId());
|
AppUser user = new AppUser();
|
user.setOrgId(bean.getOrgId());
|
user.setEnabled(Boolean.TRUE);
|
user.setOfficeId(bean.getOfficeId().intValue());
|
if(tokenService.currentUser()!=null){
|
user.preUpdate(tokenService.currentUser());
|
}
|
if(bbperson.get("userId")!=null&&!bbperson.get("userId").equals("")){
|
Map map = new HashMap<>();
|
map.put("id",(int)bbperson.get("userId"));
|
user = userDao.findById(map);
|
user.setUsername(bean.getUserName());
|
user.setOrgId(bean.getOrgId());
|
user.setEnabled(Boolean.TRUE);
|
user.setOfficeId(bean.getOfficeId().intValue());
|
if(tokenService.currentUser()!=null){
|
user.preUpdate(tokenService.currentUser());
|
}
|
// user.setPassword(MD5Util.encode("000000")); // 不能修改密码
|
userDao.update(user);
|
userCredentialsDao.updateUserInfo(new UserCredential(user.getUsername(), CredentialType.USERNAME.name(), user.getId(),user.getOrgId()));
|
log.info("被修改的用户id是"+user.getId());
|
}else{
|
user.setUsername(bean.getUserName());
|
user.setPassword(MD5Util.encode("000000"));
|
userDao.save(user);
|
//添加用户凭证,不清楚添加的必要,但有用的地方
|
Long uid = user.getId();
|
userCredentialsDao.save(new UserCredential(user.getUsername(), CredentialType.USERNAME.name(), uid,user.getOrgId()));
|
log.info("新创建的用户id是"+user.getId());
|
isNewAppUser = "已经设置该用户初始密码为000000";
|
}
|
bean.setUserId(user.getId());
|
//建立新的用户角色关联
|
String[] roleIds = roleId.split(",");
|
for (String id : roleIds) {
|
Map paramMap1 = new HashMap();
|
Map paramMap2 = new HashMap();
|
paramMap2.put("id",bean.getId());
|
paramMap1.put("userId",user.getId());
|
paramMap1.put("roleId",Integer.valueOf(id));
|
paramMap1.put("orgId",bean.getOrgId());
|
userRoleDao.saveUserRoles(paramMap1);
|
}
|
}
|
}else{
|
// Map bbperson = dao.anyThingToUpdate(bean.getId());
|
if(bbperson==null){
|
//证明在底库没有找到,去临时库找一下
|
bbperson = dao.tempToUpdate(bean.getId());
|
}
|
if(bbperson.get("userId")!=null&&!bbperson.get("userId").equals("")){
|
Map paramMap = new HashMap();
|
paramMap.put("id",bean.getUserId());
|
userRoleDao.deleteUserRole(paramMap);
|
}
|
}
|
JSONObject paramMap = new JSONObject();
|
|
paramMap.put("bean",bean);
|
String post = restTemplateUtil.post(enumStr.getAnyThingToSave(), paramMap, MediaType.APPLICATION_JSON_UTF8, true);
|
}else{
|
log.info("新增人员");
|
if(roleId!=null&&!"".equals(roleId)){
|
|
if(bean.getUserName()!=null){
|
//创建系统用户
|
AppUser user = new AppUser();
|
user.setUsername(bean.getUserName());
|
if(tokenService.currentUser()!=null){
|
user.preInsert(tokenService.currentUser());
|
}
|
userDao.save(user);
|
bean.setUserId(user.getId());
|
log.info("新创建的用户id是"+user.getId());
|
//建立新的用户角色关联
|
String[] roleIds = roleId.split(",");
|
for (String id : roleIds) {
|
Map paramMap1 = new HashMap();
|
Map paramMap2 = new HashMap();
|
paramMap2.put("id",bean.getId());
|
paramMap1.put("userId",user.getId());
|
paramMap1.put("roleId",Integer.valueOf(id));
|
paramMap1.put("orgId",bean.getOrgId());
|
userRoleDao.saveUserRoles(paramMap1);
|
}
|
}
|
}
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("bean",bean);
|
String post = restTemplateUtil.post(enumStr.getAddSingle(), paramMap, MediaType.APPLICATION_JSON_UTF8, true);
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
String personId = jsonMap.getString("data");
|
}
|
return isNewAppUser; // 神烦
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
return isNewAppUser; // 神烦
|
}
|
|
@Override
|
public Map anyThingToUpdate(BbEmployee bean) {
|
Map<String,Object> map = new HashMap<>();
|
Map bbperson = dao.anyThingToUpdate(bean.getId());
|
List<Integer> roleIds = null;
|
if(bbperson.get("userId")!=null&&!"".equals(bbperson.get("userId"))){
|
roleIds = userRoleDao.findRolesIds(Long.valueOf(bbperson.get("userId").toString()));
|
}
|
|
String colonyIdStr = (String)bbperson.get("distributionIds");
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("clusterIds",colonyIdStr);
|
String post = restTemplateUtil.post(enumStr.getClusterLocaltion(), paramMap , MediaType.APPLICATION_JSON_UTF8, true);
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
map.put("bbPerson",bbperson);
|
map.put("roleIds",roleIds);
|
map.put("colonys",jsonMap.get("data"));
|
return map;
|
}
|
|
@Override
|
public Map queryPersonSimpleInfoById(String perId,Boolean delFlag) {
|
Map<String,Object> map = new HashMap<>();
|
Map bbperson = dao.selectPersonDetailById(perId,delFlag);
|
return bbperson;
|
}
|
|
/**
|
* 去编辑,包含业务
|
*/
|
@Override
|
public Map<String,Object> toUpdateBbEmployee(BbEmployee bean) {
|
// 查找要编辑的数据库实体
|
BbEmployee dbBean = dao.findByIdFromTemp(bean.getId());
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("feature",dbBean.getFeature());
|
|
String post = restTemplateUtil.post(enumStr.getToUpdateUrl(), paramMap, MediaType.APPLICATION_JSON_UTF8, true);
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
// List<BbEmployee> bbpersons = JSONObject.parseArray(post, BbEmployee.class);
|
|
// JSONObject paramMap1 = new JSONObject();
|
// paramMap.put("clusterIds",dbBean.getDistributionIds());
|
// String post1 = restTemplateUtil.post(enumStr.getClusterLocaltion(), paramMap , MediaType.APPLICATION_JSON_UTF8, true);
|
// JSONObject jsonMap1 = JSONObject.parseObject(post1);
|
|
//把特征值过滤掉不往前台传;
|
dbBean.setFeature(null);
|
Map<String,Object> map = new HashMap<>();
|
map.put("bbPerson",dbBean);
|
map.put("likerPerson",jsonMap.get("data"));
|
// map.put("colonys",jsonMap1.get("data"));
|
return map;
|
}
|
|
/**
|
* 分页查询
|
*/
|
@Override
|
public Page<BbEmployee> findBbEmployees(Map<String, Object> params) {
|
|
//前台传参是否查全部
|
// if(params.containsKey("isAll")){
|
// if(params.get("isAll").toString().equals("0")){
|
// params.remove("orgId");
|
// }
|
// }
|
|
//Long id = Long.parseLong(params.get("id").toString());
|
//String parentIds = orgDao.findCurentParentIds(id,null);
|
//Map<String,Object> param = new HashMap<>();
|
//param.put("parentIds",parentIds);
|
//List<Integer> orgs = orgService.findDownByOffIds(param);
|
//params.put("orgIds",orgs);
|
|
PageUtil.pageParamConver(params, true);
|
List<BbEmployee> list = Collections.emptyList();
|
Page<BbEmployee> data = new Page<>(0, list);
|
if(params.get("id").toString().equals("001")){
|
//查总库全部
|
int total = dao.countBase(params);
|
if(total>0){
|
list = dao.findDataFromBase(params);
|
}
|
data = new Page<>(total, list);
|
}else if(params.get("id").toString().equals("002")){
|
//查临时库全部
|
int total = dao.countTemp(params);
|
if(total>0){
|
list = dao.findDataFromTemp(params);
|
}
|
data = new Page<>(total, list);
|
}else{
|
//按组织ID去查
|
int total = dao.count(params);
|
if(total>0){
|
list = dao.findData(params);
|
}
|
data = new Page<>(total, list);
|
}
|
|
|
return data;
|
}
|
|
@Override
|
public Integer deleteByIds(Map<String, Object> params, Object object) {
|
return dao.deleteByIds(params);
|
}
|
|
@Override
|
public Page<BbEmployee> findOrgEmployeeByType(Map<String, Object> params) {
|
//根据学校IDparentsId参数
|
Long cruentId = Long.parseLong(params.get("id").toString());
|
Long orgId = Long.parseLong(params.get("orgId").toString());
|
String parentIds = orgDao.findCurentParentIds(cruentId,null);
|
|
params.put("parentIds",parentIds);
|
int total = dao.findOrgEmployeeByTypeCount(params);
|
List<BbEmployee> list = Collections.emptyList();
|
if (total > 0) {
|
PageUtil.pageParamConver(params, true);
|
|
list = dao.findOrgEmployeeByTypeData(params);
|
}
|
return new Page<BbEmployee>(total, list);
|
}
|
|
/**
|
* 通id查询个人及家人信息
|
*/
|
@Override
|
public Map<String,Object> findInfoByEmployeeId(Map<String, Object> params){
|
return dao.findInfoByEmployeeId(params);
|
}
|
|
@Override
|
public List<Integer> findOrgEmpIds(Map<String, Object> params) {
|
//根据学校IDparentsId参数
|
Long cruentId = Long.parseLong(params.get("id").toString());
|
//Long orgId = Long.parseLong(params.get("orgId").toString());
|
String parentIds = orgDao.findCurentParentIds(cruentId,null);
|
params.put("parentIds",parentIds);
|
return dao.findOrgEmpIds(params);
|
}
|
|
/**
|
* 查找老师和学生
|
*/
|
@Override
|
public Map<String, Object> findStudentAndTeachers(Map<String, Object> params) {
|
Map<String, Object> result = new HashMap<String, Object>();
|
Object type = params.get("type");
|
if (type != null && !"".equals(type.toString().trim())) {
|
String gradeId = (String)params.get("gradeId");
|
if (gradeId == null || "".equals((gradeId+"").trim()) || "null".equals(gradeId+"")) {
|
params.remove("gradeId");
|
}
|
if ("teachear".equals(params.get("type")) || "teacher".equals(params.get("type"))) {
|
params.put("type","教师");
|
params.remove("gradeId");
|
params.remove("classId");
|
} else {
|
params.put("type","学生");
|
String classId = (String)params.get("classId");
|
if (classId != null && !"".equals(classId+"") && !"null".equals(classId+"")) {
|
params.remove("gradeId");
|
}
|
}
|
}
|
List<BbEmployee> emps = dao.findStudentAndTeachers(params);
|
result.put("emps", emps);
|
return result;
|
}
|
|
@Override
|
public List<Map<String, Object>> findOrgEmpMap(Map<String, Object> params) {
|
//根据学校IDparentsId参数
|
Long cruentId = null;
|
if(params.get("id")==null||params.get("id").toString().equals("")){
|
cruentId = Long.parseLong(params.get("orgId").toString());
|
}else{
|
cruentId = Long.parseLong(params.get("id").toString());
|
}
|
//Long orgId = Long.parseLong(params.get("orgId").toString());
|
String parentIds = orgDao.findCurentParentIds(cruentId,null);
|
params.put("parentIds",parentIds);
|
return dao.findOrgEmpMap(params);
|
}
|
|
@Override
|
public List<BbEmployee> findStuByEmpId(Map<String, Object> params) {
|
|
List<BbEmployee> stuList = new ArrayList<>();
|
stuList = dao.findStuByEmpId(params);
|
if(stuList.size()==0){
|
BbEmployee bbEmployee = new BbEmployee();
|
bbEmployee.setRemarks("暂无任何数据!!!");
|
stuList.add(bbEmployee);
|
}
|
return stuList;
|
}
|
|
@Override
|
public List<BbEmployee> findBbEmployeeList(Map<String, Object> params){
|
List<BbEmployee> list =dao.findData(params);
|
return list;
|
}
|
@Value("${imgHttpUrl.URLSTR}")
|
private String imgHttpUrl;
|
@Override
|
public Map<String,Object> addVisitor(BbEmployee bean) {
|
|
BbEmployee isExistEmp = dao.isExistEmp(bean.getOrgId(),bean.getPhone());
|
Map<String,Object> map = new HashMap<>();
|
if(isExistEmp == null){
|
bean.preInsert(tokenService.currentUser());
|
if (bean.getOrgNamesJson() == null || "".equals(bean.getOrgNamesJson())) {
|
bean.setOrgNamesJson("{}");
|
}
|
if (bean.getRevJson1() == null || "".equals(bean.getRevJson1())) {
|
bean.setRevJson1("{}");
|
}
|
|
//提取姓名助记码
|
bean.setMnemonicCode(new UpperByName().toUpperByName(bean.getName()));
|
//设置人员类型
|
bean.setType(EmpTypeConstant.EMP_VISITOR);
|
//设置民族
|
bean.setNation("汉族");
|
//设置officeId 暂定直属学校
|
bean.setOfficeId(bean.getOrgId());
|
//设置组织机构沉余
|
String parendIds = orgDao.findCurentParentIds(bean.getOrgId(),null);
|
List<String> orgList = orgDao.finCurentOrgs(parendIds,bean.getOrgId());
|
if(orgList.size()>0){
|
String orgNams = orgList.get(0).toString();
|
if(orgList.size()>1) {
|
for (int i = 1; i < orgList.size(); i++) {
|
orgNams += " " + orgList.get(i).toString();
|
}
|
}
|
bean.setOrgNamesJson(orgNams);
|
}
|
if(bean.getPhotos()!=null&&!"".equals(bean.getPhotos())){
|
//根据图片路径获得人脸ID
|
try {
|
byte[] bytesFaces = ReadUrlImg.getImgByte(imgHttpUrl+bean.getPhotos());
|
//获取人脸特征
|
String faces = FaceUtil.extractFeature(bytesFaces,null);
|
//人脸特征不为空时
|
if(faces!=null&&!faces.isEmpty()){
|
Integer bbFaciId = bbFaceDao.findIdByFaces(faces);
|
if(bbFaciId == null){
|
BbFace bbFace = new BbFace();
|
bbFace.setOrgId(bean.getOrgId());
|
bbFace.setFeature(faces);
|
bbFaceDao.save(bbFace);
|
map.put("faceId",bbFace.getId());
|
bean.setFaceIds(bbFace.getId().toString());
|
}else{
|
map.put("faceId",bbFaciId);
|
}
|
}
|
}catch (IOException e){
|
System.out.println(e.getMessage());
|
}
|
}else{
|
map.put("faceId","");
|
}
|
try {
|
//bean.setPhotos("group1/M00/00/00/i-Bpa1sPoIeANA_OAACFHEvYmp0557.jpg");//临时
|
int isSuccess = dao.addVisitor(bean);
|
if(isSuccess > 0){
|
map.put("人员ID",bean.getId());
|
}else {
|
map.put("人员ID","添加数据失败!");
|
}
|
}catch (Exception e){
|
System.out.println(e.getMessage());
|
map.put("错误信息","检查数据格式是否错误。");
|
}finally {
|
return map;
|
}
|
}else{
|
map.put("faceId",Integer.parseInt(isExistEmp.getFaceIds()));
|
map.put("人员ID",isExistEmp.getId());
|
return map;
|
}
|
}
|
|
//教师模糊查询根据拼音
|
@Override
|
public Map<String, Object> findTeacherByPin(Map<String, Object> params) {
|
Map<String, Object> map = new HashMap<>();
|
List<BbEmployee> list = dao.findTeacherByPin(params);
|
if(list.size()>0){
|
map.put("total",list.size());
|
map.put("data",list);
|
}else{
|
map.put("message","没有查到数据");
|
}
|
return map;
|
}
|
|
/**
|
* 根据人员id查询部门
|
*/
|
@Override
|
public Map<String, Object> findOfficeNameById(Map<String, Object> params) {
|
Map<String, Object> map = new HashMap<String,Object>();
|
List<Map<String, Object>> list = dao.findOfficeNameById(params);
|
if(list !=null& list.size()>0){
|
map = list.get(0);
|
}
|
return map;
|
}
|
|
@Override
|
public List<Map<String, Object>> findOrgTeaMap(Map<String, Object> params) {
|
Long cruentId = Long.parseLong(params.get("orgId").toString());
|
//Long orgId = Long.parseLong(params.get("orgId").toString());
|
String parentIds = orgDao.findCurentParentIds(cruentId,null);
|
params.put("parentIds",parentIds);
|
return dao.findOrgTeaMap(params);
|
}
|
|
@Override
|
public Map<String, Object> findEmpsByOrg(Map<String, Object> params) {
|
Map<String,Object> map = new HashMap<>();
|
|
//前台传参是否查全部
|
if(params.containsKey("isAll")){
|
if(params.get("isAll").toString().equals("0")){
|
params.remove("orgId");
|
}
|
}
|
//根据学校IDparentsId参数
|
Long cruentId = null;
|
if(params.get("id")==null||params.get("id").toString().equals("")){
|
cruentId = Long.parseLong(params.get("orgId").toString());
|
}else{
|
cruentId = Long.parseLong(params.get("id").toString());
|
}
|
String parentIds = orgDao.findCurentParentIds(cruentId,null);
|
params.put("parentIds",parentIds);
|
Integer count = dao.findOrgEmpMapCount(params);
|
List<Map<String,Object>> data = null;
|
if(count > 0){
|
data = dao.findOrgEmpMap(params);
|
map.put("code",0);
|
map.put("data",data);
|
map.put("total",count);
|
map.put("message","查询成功!");
|
}else{
|
map.put("code",1);
|
map.put("message","查询失败!");
|
}
|
return map;
|
}
|
|
@Override
|
@Transactional
|
public void batchAddBbEmployee(List<BbEmployeeVO> addList) {
|
for(BbEmployee bbEmployee:addList){
|
bbEmployee.preInsert(tokenService.currentUser());
|
dao.add(bbEmployee);
|
}
|
}
|
|
@Override
|
@Transactional
|
public void batchUpdatePerson(List<BbEmployeeVO> updateList) {
|
for(BbEmployee bbEmployee:updateList){
|
|
if(bbEmployee.getId()!=null){
|
//delete 删除人脸ID
|
Map<String,Object> params = new HashMap<>();
|
params.put("id",bbEmployee.getId());
|
params.put("orgId",bbEmployee.getOrgId());
|
bbFaceDao.deleteByUserId((String) params.get("id"));
|
}
|
/* bbEmployee.setUpdateBy(AppUserUtil.getLoginAppUser().getUsername());
|
bbEmployee.setUpdateTime(new Date());*/
|
bbEmployee.preUpdate(tokenService.currentUser());
|
bbEmployee.setDelFlag("0");
|
dao.updateByPhone(bbEmployee);
|
}
|
}
|
|
@Override
|
public BbEmployee findEmpById(Map<String, Object> params) {
|
return dao.findEmpById(params);
|
}
|
|
@Override
|
public Map findEmpAndLocationById(Map<String, Object> params) {
|
Map map = new HashMap();
|
BbEmployee bbEmployee = dao.findEmpById(params);
|
map.put("bbEmployee",bbEmployee);
|
//调设备接口得到localtionList
|
JSONObject paramMap = new JSONObject();
|
paramMap.put("clusterIds",bbEmployee.getDistributionIds());
|
String post = restTemplateUtil.post(enumStr.getClusterLocaltion(), paramMap , MediaType.APPLICATION_JSON_UTF8, true);
|
JSONObject jsonMap = JSONObject.parseObject(post);
|
map.put("localtionList",jsonMap.get("data"));
|
return map;
|
}
|
|
@Override
|
public Page<BbEmployee> findOrgEmpInVisit(Map<String, Object> params) {
|
|
params.put("type",EmpTypeConstant.EMP_VISITOR);
|
|
int total = dao.findOrgEmpInVisitCount(params);
|
List<BbEmployee> list = Collections.emptyList();
|
if (total > 0) {
|
PageUtil.pageParamConver(params, true);
|
list = dao.findOrgEmpInVisitData(params);
|
}
|
return new Page<>(total, list);
|
}
|
|
//人员组织机构变更
|
@Override
|
public int updateOfficeId(Map<String, Object> params) {
|
params.put("delFlag", GlobalDict.IS_NOT_DEL);
|
if(params.get("updateOfficeId")==null || params.get("updateOfficeId").toString().equals("")){
|
throw new IllegalArgumentException("组织机构不能为空");
|
}
|
Long updateOfficeId = Long.parseLong(params.get("updateOfficeId").toString());
|
String parendIds = orgDao.findCurentParentIds(updateOfficeId,null);
|
String orgNamesJson = orgDao.getParentNames(parendIds,null, " ");
|
params.put("orgNamesJson",StringUtils.isEmpty(orgNamesJson)?"":orgNamesJson);
|
return dao.updateOfficeId(params);
|
}
|
|
}
|