|
@@ -13,10 +13,9 @@ import com.management.platform.service.ProjectAuditorService;
|
|
import com.management.platform.service.ProjectNotifyUserService;
|
|
import com.management.platform.service.ProjectNotifyUserService;
|
|
import com.management.platform.service.ProjectService;
|
|
import com.management.platform.service.ProjectService;
|
|
import com.management.platform.service.SysFunctionService;
|
|
import com.management.platform.service.SysFunctionService;
|
|
-import com.management.platform.util.HttpRespMsg;
|
|
|
|
import com.management.platform.util.ExcelUtil;
|
|
import com.management.platform.util.ExcelUtil;
|
|
|
|
+import com.management.platform.util.HttpRespMsg;
|
|
import com.management.platform.util.ListUtil;
|
|
import com.management.platform.util.ListUtil;
|
|
-import io.micrometer.core.instrument.util.DoubleFormat;
|
|
|
|
import org.apache.poi.ss.usermodel.CellType;
|
|
import org.apache.poi.ss.usermodel.CellType;
|
|
import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
@@ -31,7 +30,6 @@ import org.springframework.util.StringUtils;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-import javax.annotation.Resources;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
@@ -42,7 +40,6 @@ import java.time.LocalDate;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
-import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -109,6 +106,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
ProjectCategoryMapper projectCategoryMapper;
|
|
ProjectCategoryMapper projectCategoryMapper;
|
|
@Resource
|
|
@Resource
|
|
SysFunctionService sysFunctionService;
|
|
SysFunctionService sysFunctionService;
|
|
|
|
+ @Resource
|
|
|
|
+ LeaveSheetMapper leaveSheetMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ BusinessTripMapper businessTripMapper;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private HttpServletResponse response;
|
|
private HttpServletResponse response;
|
|
@@ -1422,13 +1423,113 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
List<Map> ganttData = null;
|
|
List<Map> ganttData = null;
|
|
if (userIds.size() > 0) {
|
|
if (userIds.size() > 0) {
|
|
if (type == 0) {
|
|
if (type == 0) {
|
|
|
|
+ String lsLastItemId = null;
|
|
|
|
+ String btLastItemId = null;
|
|
//按人员获取
|
|
//按人员获取
|
|
ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId());
|
|
ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate ,endDate, user.getCompanyId());
|
|
|
|
+ QueryWrapper<LeaveSheet> lsQueryWrapper=new QueryWrapper();
|
|
|
|
+ lsQueryWrapper.in("owner_id", userIds);
|
|
|
|
+ if (startDate != null && endDate != null) {
|
|
|
|
+ lsQueryWrapper.le("start_date", endDate).ge("end_date", startDate);
|
|
|
|
+ }
|
|
|
|
+ List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(lsQueryWrapper);
|
|
|
|
+ QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
|
|
|
|
+ btQueryWrapper.in("owner_id", userIds);
|
|
|
|
+ if (startDate != null && endDate != null) {
|
|
|
|
+ btQueryWrapper.le("start_date", endDate).ge("end_date", startDate);
|
|
|
|
+ }
|
|
|
|
+ List<BusinessTrip> businessTripList = businessTripMapper.selectList(btQueryWrapper);
|
|
|
|
+ for(int i=0;i<leaveSheetList.size();i++){
|
|
|
|
+ GanttDataItem curItem = new GanttDataItem();;
|
|
|
|
+ if (!leaveSheetList.get(i).getOwnerId().equals(lsLastItemId)) {
|
|
|
|
+ //抽取父级对象,人员名称
|
|
|
|
+ GanttDataItem parent = new GanttDataItem();
|
|
|
|
+ parent.id = leaveSheetList.get(i).getOwnerId();
|
|
|
|
+ parent.userId = leaveSheetList.get(i).getOwnerId();
|
|
|
|
+ parent.text = leaveSheetList.get(i).getOwnerName();
|
|
|
|
+ parent.render = "split";
|
|
|
|
+ parent.start_date = leaveSheetList.get(i).getStartDate().toString();
|
|
|
|
+ parent.end_date = leaveSheetList.get(i).getEndDate().toString();
|
|
|
|
+ parent.time = 0;
|
|
|
|
+ itemList.add(parent);
|
|
|
|
+ lsLastItemId =leaveSheetList.get(i).getOwnerId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ curItem.id = "请假_"+leaveSheetList.get(i).getId();
|
|
|
|
+ curItem.userId = leaveSheetList.get(i).getOwnerId();
|
|
|
|
+ curItem.text = "请假";
|
|
|
|
+ curItem.start_date = leaveSheetList.get(i).getStartDate().toString();
|
|
|
|
+
|
|
|
|
+ curItem.end_date =leaveSheetList.get(i).getEndDate().toString();
|
|
|
|
+ curItem.parent = lsLastItemId;
|
|
|
|
+ itemList.add(curItem);
|
|
|
|
+ lsLastItemId = leaveSheetList.get(i).getOwnerId();
|
|
|
|
+ }
|
|
|
|
+ for(int i=0;i<businessTripList.size();i++){
|
|
|
|
+ GanttDataItem curItem = new GanttDataItem();;
|
|
|
|
+ if (!businessTripList.get(i).getOwnerId().equals(btLastItemId)) {
|
|
|
|
+ //抽取父级对象,人员名称
|
|
|
|
+ GanttDataItem parent = new GanttDataItem();
|
|
|
|
+ parent.id = businessTripList.get(i).getOwnerId();
|
|
|
|
+ parent.userId = businessTripList.get(i).getOwnerId();
|
|
|
|
+ parent.text = businessTripList.get(i).getOwnerName();
|
|
|
|
+ parent.render = "split";
|
|
|
|
+ parent.start_date = businessTripList.get(i).getStartDate().toString();
|
|
|
|
+ parent.end_date = businessTripList.get(i).getEndDate().toString();
|
|
|
|
+ parent.time = 0;
|
|
|
|
+ itemList.add(parent);
|
|
|
|
+ btLastItemId =businessTripList.get(i).getOwnerId();
|
|
|
|
+ }
|
|
|
|
+ curItem.id = "出差_"+businessTripList.get(i).getId();
|
|
|
|
+ curItem.userId = businessTripList.get(i).getOwnerId();
|
|
|
|
+ curItem.text = "出差";
|
|
|
|
+ curItem.start_date = businessTripList.get(i).getStartDate().toString();
|
|
|
|
+
|
|
|
|
+ curItem.end_date =businessTripList.get(i).getEndDate().toString();
|
|
|
|
+ curItem.parent = btLastItemId;
|
|
|
|
+ itemList.add(curItem);
|
|
|
|
+ btLastItemId = businessTripList.get(i).getOwnerId();
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
|
|
+ String btLastItemId = null;
|
|
|
|
+ GanttDataItem btLastParentItem=null;
|
|
ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
|
|
ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
|
|
|
|
+ QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
|
|
|
|
+ btQueryWrapper.in("owner_id", userIds);
|
|
|
|
+ if (startDate != null && endDate != null) {
|
|
|
|
+ btQueryWrapper.le("start_date", endDate).ge("end_date", startDate);
|
|
|
|
+ }
|
|
|
|
+ List<BusinessTrip> businessTripList = businessTripMapper.selectList(btQueryWrapper);
|
|
|
|
+ for(int i=0;i<businessTripList.size();i++){
|
|
|
|
+ GanttDataItem curItem = new GanttDataItem();
|
|
|
|
+ if(businessTripList.get(i).getProjectId()!=null) {
|
|
|
|
+ Project project = projectMapper.selectById(businessTripList.get(i).getProjectId());
|
|
|
|
+ businessTripList.get(i).setProjectName(project.getProjectName());
|
|
|
|
+ if (!businessTripList.get(i).getProjectId().equals(btLastItemId)) {
|
|
|
|
+ //抽取父级对象,项目名称
|
|
|
|
+ GanttDataItem parent = new GanttDataItem();
|
|
|
|
+ parent.id = String.valueOf(businessTripList.get(i).getProjectId());
|
|
|
|
+ parent.userId = businessTripList.get(i).getOwnerId();
|
|
|
|
+ parent.text = businessTripList.get(i).getProjectName();
|
|
|
|
+ parent.render = "split";
|
|
|
|
+ parent.start_date = businessTripList.get(i).getStartDate().toString();
|
|
|
|
+ parent.end_date = businessTripList.get(i).getEndDate().toString();
|
|
|
|
+ parent.time = 0;
|
|
|
|
+ itemList.add(parent);
|
|
|
|
+ btLastItemId = String.valueOf(businessTripList.get(i).getProjectId());
|
|
|
|
+ }
|
|
|
|
+ curItem.id = "出差_" + businessTripList.get(i).getId();
|
|
|
|
+ curItem.userId = businessTripList.get(i).getOwnerId();
|
|
|
|
+ curItem.text = "出差/" + businessTripList.get(i).getOwnerName();
|
|
|
|
+ curItem.start_date = businessTripList.get(i).getStartDate().toString();
|
|
|
|
+ curItem.end_date = businessTripList.get(i).getEndDate().toString();
|
|
|
|
+ curItem.parent = btLastItemId;
|
|
|
|
+ itemList.add(curItem);
|
|
|
|
+ btLastItemId = String.valueOf(businessTripList.get(i).getProjectId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
String lastItemId = null;
|
|
String lastItemId = null;
|
|
-
|
|
|
|
GanttDataItem lastParentItem = null;
|
|
GanttDataItem lastParentItem = null;
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
for (int i=0;i<ganttData.size(); i++) {
|
|
for (int i=0;i<ganttData.size(); i++) {
|