|
@@ -4810,7 +4810,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if (functionList.size() == 0) {
|
|
|
//担任部门主要负责人
|
|
|
if (user.getManageDeptId() != null && user.getManageDeptId() != 0) {
|
|
|
- List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("department_id", user.getManageDeptId()));
|
|
|
+ List<Integer> allMainManagedDeptIdList = departmentService.getAllMainManagedDeptIdList(user, departmentList);
|
|
|
+ List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allMainManagedDeptIdList));
|
|
|
userIds = userList.stream().map(User::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
//检查是否是项目负责人
|
|
@@ -4861,6 +4862,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
String lsLastItemId = null;
|
|
|
String btLastItemId = null;
|
|
|
//按人员获取
|
|
|
+ System.out.println("userIds.size()============"+userIds.size());
|
|
|
ganttData = projectMapper.getTaskPlanByMemb(userIds, startDate + " 00:00:00" ,endDate + " 23:59:59", user.getCompanyId(),user.getId());
|
|
|
QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
|
|
|
btQueryWrapper.in("owner_id", userIds);
|
|
@@ -4917,6 +4919,73 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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);
|
|
|
+ for(int i=0;i<leaveSheetList.size();i++){
|
|
|
+ GanttDataItem curItem = new GanttDataItem();;
|
|
|
+ if (!leaveSheetList.get(i).getOwnerId().equals(lsLastItemId)) {
|
|
|
+ //抽取父级对象,人员名称
|
|
|
+ int finalI = i;
|
|
|
+ Optional<User> first = AllUser.stream().filter(us -> us.getId().equals(leaveSheetList.get(finalI).getOwnerId())).findFirst();
|
|
|
+ Integer departmentId =null;
|
|
|
+ if(first.isPresent()){
|
|
|
+ departmentId=first.get().getDepartmentId();
|
|
|
+ }
|
|
|
+ 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.0;
|
|
|
+ parent.parent=String.valueOf(departmentId);
|
|
|
+ parent.setObjType(0);
|
|
|
+ itemList.add(parent);
|
|
|
+ lsLastItemId =leaveSheetList.get(i).getOwnerId();
|
|
|
+ }
|
|
|
+ curItem.id = "请假_"+leaveSheetList.get(i).getId();
|
|
|
+ curItem.userId = leaveSheetList.get(i).getOwnerId();
|
|
|
+ switch (leaveSheetList.get(i).getLeaveType()){
|
|
|
+ //case 0:curItem.text = "事假";
|
|
|
+ case 0:curItem.text = MessageUtils.message("leave.thing");
|
|
|
+ break;
|
|
|
+ //case 1:curItem.text = "病假";
|
|
|
+ case 1:curItem.text = MessageUtils.message("leave.illness");
|
|
|
+ break;
|
|
|
+ //case 2:curItem.text = "年假";
|
|
|
+ case 2:curItem.text = MessageUtils.message("leave.year");
|
|
|
+ break;
|
|
|
+ //case 3:curItem.text = "产假";
|
|
|
+ case 3:curItem.text = MessageUtils.message("leave.maternity");
|
|
|
+ break;
|
|
|
+ //case 4:curItem.text = "婚假";
|
|
|
+ case 4:curItem.text = MessageUtils.message("leave.marry");
|
|
|
+ break;
|
|
|
+ //case 5:curItem.text = "丧假";
|
|
|
+ case 5:curItem.text = MessageUtils.message("leave.die");
|
|
|
+ break;
|
|
|
+ //case 6:curItem.text = "调休假";
|
|
|
+ case 6:curItem.text = MessageUtils.message("leave.compensatory");
|
|
|
+ break;
|
|
|
+ //case 7:curItem.text = "陪产假";
|
|
|
+ case 7:curItem.text = MessageUtils.message("leave.paternity");
|
|
|
+ break;
|
|
|
+ //case 8:curItem.text = "其他";
|
|
|
+ case 8:curItem.text = MessageUtils.message("leave.other");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ 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)) {
|
|
@@ -4990,6 +5059,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if (startDate != null && endDate != null) {
|
|
|
bpQueryWrapper.le("start_date", endDate).ge("end_date", startDate);
|
|
|
}
|
|
|
+
|
|
|
List<Integer> btIdList=new ArrayList<>();
|
|
|
List<BusinessTrip> businessTripList = businessTripMapper.selectList(btQueryWrapper);
|
|
|
if(businessTripList.size()>0){
|
|
@@ -5057,6 +5127,21 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
//String exeId = "任务_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
|
|
|
String exeId = MessageUtils.message("excel.task") + "_"+map.get("task_id") +"_"+ (type==0?(Integer) map.get("exe_id"):userId);
|
|
|
String taskId = ""+ (Integer) map.get("task_id");
|
|
|
+ //跳过重叠的请假任务
|
|
|
+ boolean findMatch = itemList.stream().anyMatch(item->{
|
|
|
+ if (item.id.startsWith("请假_") && userId.equals(item.userId)) {
|
|
|
+ String trimStartDate = start_date.substring(0, "yyyy-MM-dd".length());
|
|
|
+ String trimEndDate = end_date.substring(0, "yyyy-MM-dd".length());
|
|
|
+ if (trimStartDate.equals(item.start_date) && trimEndDate.equals(item.end_date)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ if (findMatch) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
GanttDataItem curItem = new GanttDataItem();;
|
|
|
if (type == 0) {
|