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.*; 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(EntUserPostListDto entUserPostListDto){ SingleResult singleResult = new SingleResult(); entUserPostListDto.setPage(entUserPostListDto.getPageSize() * (entUserPostListDto.getPage() - 1)); Listlist = entPostListMapper.selectEntPostList(entUserPostListDto.getEnterpriseId(),entUserPostListDto.getEntUserId(), entUserPostListDto.getPostId(),entUserPostListDto.getPage(),entUserPostListDto.getPageSize()); singleResult.setData(list); return singleResult; } public SingleResult entUserPostTask(EntUserPostTaskDto entUserPostTaskDto){ SingleResult singleResult = new SingleResult(); entUserPostTaskDto.setPage(entUserPostTaskDto.getPageSize() * (entUserPostTaskDto.getPage() - 1)); //EntPostTask Listlist = entPostTaskMapper.selectEntUserPostTask(entUserPostTaskDto.getEnterpriseId(),entUserPostTaskDto.getEntUserId(),entUserPostTaskDto.getPostId() ,entUserPostTaskDto.getListId(),entUserPostTaskDto.getContent(),entUserPostTaskDto.getTaskState(), entUserPostTaskDto.getPage(),entUserPostTaskDto.getPageSize()); singleResult.setData(list); return singleResult; } public SingleResult entUserPostDuty(EntUserPostDutyDto entUserPostDutyDto){ SingleResult singleResult = new SingleResult(); entUserPostDutyDto.setPage( entUserPostDutyDto.getPageSize() * (entUserPostDutyDto.getPage() - 1)); //EntPostDuty Listlist = entPostDutyMapper.selectEntUserPostDuty(entUserPostDutyDto.getEnterpriseId(),entUserPostDutyDto.getPostId(),entUserPostDutyDto.getPage(),entUserPostDutyDto.getPageSize()); 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; } public SingleResult addOrUpdateEntUser(AddOrUpdateEntUserDto addOrUpdateEntUserDto){ SingleResult singleResult = new SingleResult(); EntUser entUser = new EntUser(); BeanUtils.copyProperties(addOrUpdateEntUserDto,entUser); EntPost entPost = entPostMapper.selectById(addOrUpdateEntUserDto.getPostId()); entUser.setPostPath(entPost.getPostPath()); entUser.setPostPathName(entPost.getPostId()); int result = 0 ; if (StringUtils.isNotBlank(entUser.getEntUserId())){ result = entUserMapper.updateEntUser(entUser); }else { result = entUserMapper.insert(entUser); } if (result != 1){ singleResult.setCode(Code.ERROR.getCode()); singleResult.setMessage(Message.ERROR); } return singleResult; } }