2022-09-30 09:41:48 +08:00
|
|
|
|
package com.rzyc.service;
|
|
|
|
|
|
|
2022-10-09 17:33:16 +08:00
|
|
|
|
import cn.jiguang.common.TimeUnit;
|
2022-09-30 09:41:48 +08:00
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
2022-10-10 15:57:14 +08:00
|
|
|
|
import com.common.utils.*;
|
2022-10-09 17:33:16 +08:00
|
|
|
|
import com.common.utils.model.Code;
|
|
|
|
|
|
import com.common.utils.model.Message;
|
2022-09-30 09:41:48 +08:00
|
|
|
|
import com.common.utils.model.SingleResult;
|
|
|
|
|
|
import com.rzyc.bean.emergency.PlanList;
|
|
|
|
|
|
import com.rzyc.controller.BaseController;
|
2022-10-09 17:33:16 +08:00
|
|
|
|
import com.rzyc.mapper.EntPostTaskMapper;
|
|
|
|
|
|
import com.rzyc.model.EntPostDuty;
|
2022-10-08 17:33:31 +08:00
|
|
|
|
import com.rzyc.model.EntPostList;
|
2022-10-09 17:33:16 +08:00
|
|
|
|
import com.rzyc.model.EntPostTask;
|
|
|
|
|
|
import com.rzyc.model.EntUserCredential;
|
|
|
|
|
|
import com.rzyc.model.dto.EntUserCredentialUpdateDto;
|
2022-09-30 09:41:48 +08:00
|
|
|
|
import com.rzyc.model.ent.EntPost;
|
|
|
|
|
|
import com.rzyc.model.ent.EntUser;
|
|
|
|
|
|
import com.rzyc.model.ent.SysEnterprise;
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
import org.springframework.beans.BeanUtils;
|
2022-09-30 09:41:48 +08:00
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
2022-10-09 17:33:16 +08:00
|
|
|
|
import java.util.*;
|
2022-09-30 09:41:48 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 企业端pc业务 Service
|
|
|
|
|
|
* @author Xuwanxin
|
|
|
|
|
|
* @date 2022/9/29
|
|
|
|
|
|
* */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
|
public class PcBusinessService extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
public SingleResult<List<EntUser>>entUserTree(String enterpriseId,String postId){
|
|
|
|
|
|
SingleResult singleResult = new SingleResult();
|
|
|
|
|
|
SysEnterprise sysEnterprise = sysEnterpriseMapper.selectByPrimaryKey(enterpriseId);
|
|
|
|
|
|
List<EntPost> list = entPostMapper.selectEntUserTree(enterpriseId,postId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* sql里进行了order by,如果传入postId就是查询非全部的数结构,需要加入一个公司,所以把第一个最大权限设置为company,这样公司才会在树的最上面
|
|
|
|
|
|
* 相反不穿postId就是查询全部,默认会有company打头就不用再修改list的0对象
|
|
|
|
|
|
*/
|
|
|
|
|
|
if (null != postId){
|
|
|
|
|
|
list.get(0).setParentId("company");
|
|
|
|
|
|
}
|
|
|
|
|
|
//加入公司为第一个树结构
|
|
|
|
|
|
EntPost entPost = new EntPost();
|
|
|
|
|
|
entPost.setName(sysEnterprise.getEntname());
|
|
|
|
|
|
entPost.setPostId("company");
|
|
|
|
|
|
list.add(entPost);
|
|
|
|
|
|
|
|
|
|
|
|
JSONArray jsonArray = handleEntUserTree(list);
|
|
|
|
|
|
List<EntPost>posts = JSONArray.parseArray(JSONArray.toJSONString(jsonArray),EntPost.class);
|
|
|
|
|
|
singleResult.setData(posts);
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 处理企业用户数结构list
|
|
|
|
|
|
*/
|
|
|
|
|
|
private JSONArray handleEntUserTree(List<EntPost> list){
|
|
|
|
|
|
List<Map<String,Object>> data = new ArrayList<>();
|
|
|
|
|
|
for(EntPost entPost : list){
|
|
|
|
|
|
if(StringUtils.isBlank(entPost.getParentId())){
|
|
|
|
|
|
entPost.setParentId("");
|
|
|
|
|
|
}
|
|
|
|
|
|
Map<String,Object> entPostMap = new HashMap<String,Object>();
|
|
|
|
|
|
entPostMap.put("postId",entPost.getPostId());
|
|
|
|
|
|
entPostMap.put("name",entPost.getName());
|
|
|
|
|
|
entPostMap.put("parentId",entPost.getParentId());
|
|
|
|
|
|
entPostMap.put("subordinates",entPost.getSubordinates());
|
|
|
|
|
|
data.add(entPostMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
com.alibaba.fastjson.JSONArray result = TypeConversion.listToTree(com.alibaba.fastjson.JSONArray.parseArray(JSON.toJSONString(data)),"postId","parentId","children");
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
public SingleResult entUserPostList(String enterpriseId,String entUserId,String postId,Integer page,Integer pageSize){
|
2022-10-08 17:33:31 +08:00
|
|
|
|
SingleResult singleResult = new SingleResult();
|
2022-10-10 15:57:14 +08:00
|
|
|
|
page = pageSize * (page - 1);
|
|
|
|
|
|
List<EntPostList>list = entPostListMapper.selectEntPostList(enterpriseId,entUserId,postId,page,pageSize);
|
2022-10-08 17:33:31 +08:00
|
|
|
|
singleResult.setData(list);
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
public SingleResult entUserPostTask(String enterpriseId, String entUserId,String postId,String listId,String content,Integer taskState,Integer page,Integer pageSize){
|
2022-10-08 17:33:31 +08:00
|
|
|
|
SingleResult singleResult = new SingleResult();
|
2022-10-10 15:57:14 +08:00
|
|
|
|
page = pageSize * (page - 1);
|
2022-10-08 17:33:31 +08:00
|
|
|
|
//EntPostTask
|
2022-10-10 15:57:14 +08:00
|
|
|
|
List<EntPostTask>list = entPostTaskMapper.selectEntUserPostTask(enterpriseId,entUserId,postId,listId,content,taskState,page,pageSize);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
singleResult.setData(list);
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
public SingleResult entUserPostDuty(String enterpriseId, String postId,Integer page,Integer pageSize){
|
2022-10-09 17:33:16 +08:00
|
|
|
|
SingleResult singleResult = new SingleResult();
|
2022-10-10 15:57:14 +08:00
|
|
|
|
page = pageSize * (page - 1);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
//EntPostDuty
|
2022-10-10 15:57:14 +08:00
|
|
|
|
List<EntPostDuty>list = entPostDutyMapper.selectEntUserPostDuty(enterpriseId,postId,page,pageSize);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
singleResult.setData(list);
|
2022-10-08 17:33:31 +08:00
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
public SingleResult entUserCredential(String enterpriseId, String entUserId,Integer page,Integer pageSize){
|
2022-10-09 17:33:16 +08:00
|
|
|
|
SingleResult singleResult = new SingleResult();
|
2022-10-10 15:57:14 +08:00
|
|
|
|
page = pageSize * (page - 1);
|
|
|
|
|
|
List<EntUserCredential>list = entUserCredentialMapper.selectEntUserCredential(enterpriseId,entUserId,page,pageSize);
|
|
|
|
|
|
singleResult.setData(list);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public SingleResult entUserCredentialUpdate(EntUserCredentialUpdateDto entUserCredentialUpdateDto) throws Exception {
|
|
|
|
|
|
SingleResult singleResult = new SingleResult();
|
2022-10-10 15:57:14 +08:00
|
|
|
|
EntUserCredential entUserCredential = new EntUserCredential();
|
|
|
|
|
|
BeanUtils.copyProperties(entUserCredentialUpdateDto,entUserCredential);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
Integer result = 0;
|
2022-10-10 15:57:14 +08:00
|
|
|
|
if (StringUtils.isNotBlank(entUserCredential.getCredentialId())) {
|
|
|
|
|
|
entUserCredential.setModifyBy(getUserId());
|
|
|
|
|
|
entUserCredential.setModifyTime(new Date());
|
|
|
|
|
|
result = entUserCredentialMapper.updateEntUserCredential(entUserCredential);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
}else {
|
2022-10-10 15:57:14 +08:00
|
|
|
|
entUserCredential.setCredentialId(RandomNumber.getUUid());
|
|
|
|
|
|
entUserCredential.setCreateBy(getUserId());
|
|
|
|
|
|
entUserCredential.setCreateTime(new Date());
|
|
|
|
|
|
result = entUserCredentialMapper.insertEntUserCredential(entUserCredential);
|
2022-10-09 17:33:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (result==1){
|
|
|
|
|
|
singleResult.setCode(Code.SUCCESS.getCode());
|
|
|
|
|
|
singleResult.setMessage(Message.SUCCESS);
|
|
|
|
|
|
}
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public SingleResult entUserCredentialDelete(String credentialId){
|
|
|
|
|
|
SingleResult singleResult = new SingleResult();
|
|
|
|
|
|
int result = entUserCredentialMapper.entUserCredentialDelete(credentialId);
|
|
|
|
|
|
if (result==1){
|
|
|
|
|
|
singleResult.setCode(Code.SUCCESS.getCode());
|
|
|
|
|
|
singleResult.setMessage(Message.SUCCESS);
|
|
|
|
|
|
}
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-10 15:57:14 +08:00
|
|
|
|
public SingleResult entUserList(String keyContent,Integer page,Integer pageSize){
|
|
|
|
|
|
SingleResult singleResult = new SingleResult();
|
|
|
|
|
|
page = pageSize * (page - 1);
|
|
|
|
|
|
List<EntUser>users = entUserMapper.selectEntUserList(keyContent,page,pageSize);
|
|
|
|
|
|
//计算履职百分比,后期这里使用redis来读取履职进度
|
|
|
|
|
|
for (EntUser e:users) {
|
|
|
|
|
|
Integer total = e.getFinishTask() + e.getOngoingTask() + e.getOverTimeTask();
|
|
|
|
|
|
double percent = Arith.div(total,e.getFinishTask()) * 100;
|
|
|
|
|
|
e.setEntUserTaskPercent(percent);
|
|
|
|
|
|
}
|
|
|
|
|
|
singleResult.setData(users);
|
|
|
|
|
|
return singleResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-09 17:33:16 +08:00
|
|
|
|
|
2022-09-30 09:41:48 +08:00
|
|
|
|
|
|
|
|
|
|
}
|