|
|
@@ -1,21 +1,29 @@
|
|
|
package com.mokamrp.privates.service.impl;
|
|
|
|
|
|
+import com.aliyun.oss.model.PutObjectRequest;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.mokamrp.privates.config.OSSConfiguration;
|
|
|
+import com.mokamrp.privates.entity.GetWorkRoomHandle;
|
|
|
+import com.mokamrp.privates.entity.PostWorkEmployee;
|
|
|
import com.mokamrp.privates.entity.WorkEmployeeHandle;
|
|
|
-import com.mokamrp.privates.mapper.GroupCorpMapper;
|
|
|
-import com.mokamrp.privates.mapper.GroupMapper;
|
|
|
-import com.mokamrp.privates.mapper.pojo.UserCorp;
|
|
|
-import com.mokamrp.privates.mapper.pojo.WorkEmployee;
|
|
|
-import com.mokamrp.privates.mapper.WorkEmployeeMapper;
|
|
|
+import com.mokamrp.privates.mapper.*;
|
|
|
+import com.mokamrp.privates.mapper.pojo.*;
|
|
|
+import com.mokamrp.privates.mapper.vo.WorkEmployeeVo;
|
|
|
+import com.mokamrp.privates.mapper.vo.WorkRoomVo;
|
|
|
import com.mokamrp.privates.service.UserCorpService;
|
|
|
import com.mokamrp.privates.service.WorkEmployeeService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.mokamrp.privates.utils.OssFile;
|
|
|
import com.mokamrp.privates.utils.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -32,6 +40,15 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
|
|
|
@Autowired
|
|
|
private GroupMapper groupMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private WorkContactEmployeeMapper workContactEmployeeMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WorkEmployeeMapper workEmployeeMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WorkRoomMapper workRoomMapper;
|
|
|
+
|
|
|
public Object selectWorkEmployeeList(String authUserId, WorkEmployeeHandle workEmployee) {
|
|
|
List<Integer> userCorpIds = userCorpService.getAuthUserCorpIds(authUserId);
|
|
|
List<Integer> corpIds = new ArrayList<Integer>();
|
|
|
@@ -44,4 +61,101 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
|
|
|
List<Map<String, Object>> res = groupMapper.selectCorpAndWorkEmployeeList(corpIdStr);
|
|
|
return res;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> getPageList(PostWorkEmployee handle) {
|
|
|
+
|
|
|
+ Integer pagesize = handle.getPagesize();
|
|
|
+ Integer page = handle.getPage();
|
|
|
+ Page<WorkEmployeeVo> pageObj = new Page<>(page, pagesize);
|
|
|
+ Map<String, Object> resMap = new HashMap<String, Object>();
|
|
|
+ resMap.put("list", null);
|
|
|
+ resMap.put("total", 0);
|
|
|
+
|
|
|
+ QueryWrapper<WorkEmployeeVo> obj = getWrapper(handle);
|
|
|
+
|
|
|
+ Integer total = workEmployeeMapper.getVoListTotal(obj);
|
|
|
+ resMap.put("total", total);
|
|
|
+ if(total <=0){
|
|
|
+ return resMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WorkEmployeeVo> list = getCommonList(pageObj, obj);
|
|
|
+ resMap.put("list", list);
|
|
|
+ return resMap;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void export(Downfile downFile, PostWorkEmployee handle) {
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ private QueryWrapper<WorkEmployeeVo> getWrapper(PostWorkEmployee handle) {
|
|
|
+ String name = handle.getName();
|
|
|
+ Integer corp_id = handle.getCorpId();
|
|
|
+ List<Integer> authCorpIds = handle.getAuthCorpIds();
|
|
|
+ QueryWrapper<WorkEmployeeVo> obj = new QueryWrapper<WorkEmployeeVo>();
|
|
|
+
|
|
|
+ obj.in("a.corp_id", authCorpIds);
|
|
|
+
|
|
|
+ if (name != null && !"".equals(name)) {
|
|
|
+ obj.like("a.name", name);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (corp_id != null) {
|
|
|
+ obj.eq("a.corp_id", corp_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (authCorpIds != null || authCorpIds.size()>=1) {
|
|
|
+ obj.in("a.corp_id", authCorpIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<WorkEmployeeVo> getCommonList(Page<WorkEmployeeVo> pageObj, QueryWrapper<WorkEmployeeVo> room) {
|
|
|
+
|
|
|
+ QueryWrapper<WorkContactEmployee> obj = new QueryWrapper<WorkContactEmployee>();
|
|
|
+ QueryWrapper<WorkRoom> roomObj = new QueryWrapper<WorkRoom>();
|
|
|
+ List<WorkEmployeeVo> list = workEmployeeMapper.getVoList(pageObj, room);
|
|
|
+
|
|
|
+ int j =list.size();
|
|
|
+
|
|
|
+ if (j > 0) {
|
|
|
+ List<Object> ids = list.stream().map(WorkEmployeeVo -> WorkEmployeeVo.getId()).collect(Collectors.toList());
|
|
|
+
|
|
|
+ obj.select("count(*) as nums,employee_id").in("employee_id",ids).groupBy("employee_id");
|
|
|
+ List<Map<String,Object>> contactList= workContactEmployeeMapper.selectMaps(obj);
|
|
|
+
|
|
|
+ roomObj.select("count(*) as nums,owner_id").in("owner_id",ids).groupBy("owner_id");
|
|
|
+ List<Map<String,Object>> roomList = workRoomMapper.selectMaps(roomObj);
|
|
|
+
|
|
|
+ Object id;
|
|
|
+ for (int i = 0; i < j; i++) {
|
|
|
+ id = list.get(i).getId();
|
|
|
+ list.get(i).setRoomNum(0);
|
|
|
+ list.get(i).setFanNum(0);
|
|
|
+ for (Map<String,Object> r:roomList
|
|
|
+ ) {
|
|
|
+ if(r.get("owner_id").toString().equals(id.toString())){
|
|
|
+ list.get(i).setRoomNum(r.get("nums"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (Map<String,Object> contact:contactList
|
|
|
+ ) {
|
|
|
+ if(contact.get("employee_id").toString().equals(id.toString())){
|
|
|
+ list.get(i).setFanNum(contact.get("nums"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return list;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|