package com.rzyc.service; import cn.jiguang.common.TimeUnit; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.common.utils.*; import com.common.utils.model.Code; import com.common.utils.model.Message; import com.common.utils.model.SingleResult; import com.rzyc.bean.emergency.PlanList; import com.rzyc.controller.BaseController; import com.rzyc.mapper.EntPostTaskMapper; import com.rzyc.model.EntPostDuty; import com.rzyc.model.EntPostList; import com.rzyc.model.EntPostTask; import com.rzyc.model.EntUserCredential; import com.rzyc.model.dto.EntUserCredentialUpdateDto; import com.rzyc.model.ent.EntPost; import com.rzyc.model.ent.EntUser; import com.rzyc.model.ent.SysEnterprise; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.*; /** * 企业端pc业务 Service * @author Xuwanxin * @date 2022/9/29 * */ @Service public class PcBusinessService extends BaseController { public SingleResult>entUserTree(String enterpriseId,String postId){ SingleResult singleResult = new SingleResult(); SysEnterprise sysEnterprise = sysEnterpriseMapper.selectByPrimaryKey(enterpriseId); List 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); Listposts = JSONArray.parseArray(JSONArray.toJSONString(jsonArray),EntPost.class); singleResult.setData(posts); return singleResult; } /** * 处理企业用户数结构list */ private JSONArray handleEntUserTree(List list){ List> data = new ArrayList<>(); for(EntPost entPost : list){ if(StringUtils.isBlank(entPost.getParentId())){ entPost.setParentId(""); } Map entPostMap = new HashMap(); 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; } public SingleResult entUserPostList(String enterpriseId,String entUserId,String postId,Integer page,Integer pageSize){ SingleResult singleResult = new SingleResult(); page = pageSize * (page - 1); Listlist = entPostListMapper.selectEntPostList(enterpriseId,entUserId,postId,page,pageSize); singleResult.setData(list); return singleResult; } public SingleResult entUserPostTask(String enterpriseId, String entUserId,String postId,String listId,String content,Integer taskState,Integer page,Integer pageSize){ SingleResult singleResult = new SingleResult(); page = pageSize * (page - 1); //EntPostTask Listlist = entPostTaskMapper.selectEntUserPostTask(enterpriseId,entUserId,postId,listId,content,taskState,page,pageSize); singleResult.setData(list); return singleResult; } public SingleResult entUserPostDuty(String enterpriseId, String postId,Integer page,Integer pageSize){ SingleResult singleResult = new SingleResult(); page = pageSize * (page - 1); //EntPostDuty Listlist = entPostDutyMapper.selectEntUserPostDuty(enterpriseId,postId,page,pageSize); singleResult.setData(list); return singleResult; } public SingleResult entUserCredential(String enterpriseId, String entUserId,Integer page,Integer pageSize){ SingleResult singleResult = new SingleResult(); page = pageSize * (page - 1); Listlist = entUserCredentialMapper.selectEntUserCredential(enterpriseId,entUserId,page,pageSize); singleResult.setData(list); return singleResult; } public SingleResult entUserCredentialUpdate(EntUserCredentialUpdateDto entUserCredentialUpdateDto) throws Exception { SingleResult singleResult = new SingleResult(); EntUserCredential entUserCredential = new EntUserCredential(); BeanUtils.copyProperties(entUserCredentialUpdateDto,entUserCredential); Integer result = 0; if (StringUtils.isNotBlank(entUserCredential.getCredentialId())) { entUserCredential.setModifyBy(getUserId()); entUserCredential.setModifyTime(new Date()); result = entUserCredentialMapper.updateEntUserCredential(entUserCredential); }else { entUserCredential.setCredentialId(RandomNumber.getUUid()); entUserCredential.setCreateBy(getUserId()); entUserCredential.setCreateTime(new Date()); result = entUserCredentialMapper.insertEntUserCredential(entUserCredential); } 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; } public SingleResult entUserList(String keyContent,Integer page,Integer pageSize){ SingleResult singleResult = new SingleResult(); page = pageSize * (page - 1); Listusers = 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; } }