Преглед изворни кода

工时管家 资源分配 出差 请假

yurk пре 3 година
родитељ
комит
0f005826c1

+ 0 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.management.platform.entity.Project;
 import com.management.platform.entity.vo.CustomerProject;
 import com.management.platform.entity.vo.ProjectWithStage;
-import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Update;
-import org.springframework.test.context.jdbc.Sql;
 
 import java.util.HashMap;
 import java.util.List;

+ 106 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -13,10 +13,9 @@ import com.management.platform.service.ProjectAuditorService;
 import com.management.platform.service.ProjectNotifyUserService;
 import com.management.platform.service.ProjectService;
 import com.management.platform.service.SysFunctionService;
-import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.ExcelUtil;
+import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.ListUtil;
-import io.micrometer.core.instrument.util.DoubleFormat;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
@@ -31,7 +30,6 @@ import org.springframework.util.StringUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import javax.annotation.Resources;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
@@ -42,7 +40,6 @@ import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 
 /**
@@ -109,6 +106,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     ProjectCategoryMapper projectCategoryMapper;
     @Resource
     SysFunctionService sysFunctionService;
+    @Resource
+    LeaveSheetMapper leaveSheetMapper;
+    @Resource
+    BusinessTripMapper businessTripMapper;
 
     @Resource
     private HttpServletResponse response;
@@ -1422,13 +1423,113 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<Map> ganttData = null;
         if (userIds.size() > 0) {
             if (type == 0) {
+                String lsLastItemId = null;
+                String btLastItemId = null;
                 //按人员获取
                 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 {
+                String btLastItemId = null;
+                GanttDataItem btLastParentItem=null;
                 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;
-
             GanttDataItem lastParentItem = null;
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             for (int i=0;i<ganttData.size(); i++) {