瀏覽代碼

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper into master

seyason 2 年之前
父節點
當前提交
83021b55f0

+ 13 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -362,8 +362,8 @@ public class ProjectController {
     }
 
     @RequestMapping("/getGanttData")
-    public HttpRespMsg getGanttData(@RequestParam(required = false, defaultValue = "0") Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName, HttpServletRequest request) {
-        return projectService.getGanttData(type, startDate, endDate, userId, projectId, groupName, request);
+    public HttpRespMsg getGanttData(@RequestParam(required = false, defaultValue = "0") Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType, HttpServletRequest request) {
+        return projectService.getGanttData(type, startDate, endDate, userId, projectId, groupName,taskType, request);
     }
 
     /**
@@ -517,5 +517,16 @@ public class ProjectController {
     public HttpRespMsg batchSetParticipation(HttpServletRequest request,String projectIdArray,String userIds){
         return projectService.batchSetParticipation(request,projectIdArray,userIds);
     }
+    @RequestMapping("/changeCurrentStage")
+    public HttpRespMsg changeCurrentStage(Integer projectId,String currentStage){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        Project project = projectService.getById(projectId);
+        project.setCurrentStage(currentStage);
+        if(projectService.updateById(project)){
+            return httpRespMsg;
+        }
+        httpRespMsg.setError("更新失败");
+        return httpRespMsg;
+    }
 }
 

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectMainController.java

@@ -56,5 +56,9 @@ public class ProjectMainController {
         projectMainService.removeById(id);
         return httpRespMsg;
     }
+    @RequestMapping("/getListByCategory")
+    public HttpRespMsg getListByCategory(Integer categoryId){
+        return projectMainService.getListByCategory(categoryId);
+    }
 }
 

+ 14 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -1,27 +1,27 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-07-07
+ * @since 2022-07-12
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -276,6 +276,12 @@ public class Project extends Model<Project> {
     @TableField("provider_names")
     private String providerNames;
 
+    /**
+     * 当前任务阶段
+     */
+    @TableField("current_stage")
+    private String currentStage;
+
 
     @Override
     protected Serializable pkVal() {

+ 6 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProviderInfo.java

@@ -1,14 +1,15 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * <p>
  * 
@@ -28,13 +29,13 @@ public class ProviderInfo extends Model<ProviderInfo> {
     private Integer id;
 
     /**
-     * 客户编码
+     * 供应商编码
      */
     @TableField("provider_code")
     private String providerCode;
 
     /**
-     * 客户公司名称
+     * 供应商名称
      */
     @TableField("provider_name")
     private String providerName;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectMainService.java

@@ -17,4 +17,6 @@ import javax.servlet.http.HttpServletRequest;
 public interface ProjectMainService extends IService<ProjectMain> {
 
     HttpRespMsg addOrMod(HttpServletRequest request,ProjectMain projectMain);
+
+    HttpRespMsg getListByCategory(Integer categoryId);
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -91,7 +91,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportCustomerProjectInAndOut(HttpServletRequest request);
 
-    HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName, HttpServletRequest request);
+    HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName,Integer taskType, HttpServletRequest request);
 
     HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, Integer projectId, HttpServletRequest request);
 

+ 9 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectMainServiceImpl.java

@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * <p>
@@ -69,4 +70,12 @@ public class ProjectMainServiceImpl extends ServiceImpl<ProjectMainMapper, Proje
         }
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg getListByCategory(Integer categoryId) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<ProjectMain> projectMainList = projectMainMapper.selectList(new QueryWrapper<ProjectMain>().eq("category_id", categoryId));
+        httpRespMsg.data=projectMainList;
+        return httpRespMsg;
+    }
 }

+ 65 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1574,7 +1574,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName, HttpServletRequest request) {
+    public HttpRespMsg getGanttData(Integer type, String startDate, String endDate, String targetUserId, Integer targetProjectId, String groupName,Integer taskType, HttpServletRequest request) {
         //根据人员权限来获取,
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
@@ -1716,9 +1716,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     curItem.id = "请假_"+leaveSheetList.get(i).getId();
                     curItem.userId = leaveSheetList.get(i).getOwnerId();
-                    curItem.text = "请假";
+                    switch (leaveSheetList.get(i).getLeaveType()){
+                        case 1:curItem.text = "病假";
+                            break;
+                        case 2:curItem.text = "年假";
+                            break;
+                        case 3:curItem.text = "产假";
+                            break;
+                        case 4:curItem.text = "婚假";
+                            break;
+                        case 5:curItem.text = "丧家";
+                            break;
+                        case 6:curItem.text = "调休假";
+                            break;
+                        case 7:curItem.text = "陪产假";
+                            break;
+                        case 8:curItem.text = "其他";
+                            break;
+                    }
                     curItem.start_date = leaveSheetList.get(i).getStartDate().toString();
-
                     curItem.end_date =leaveSheetList.get(i).getEndDate().toString();
                     curItem.parent = lsLastItemId;
                     itemList.add(curItem);
@@ -1772,6 +1788,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         }
                     }
                 }
+                if (taskType!=null) {
+                    List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                    List<Integer> collect = projectList.stream().map(Project::getId).collect(Collectors.toList());
+                    List<Task> tasks = taskMapper.selectList(new QueryWrapper<Task>().eq("task_type", taskType).in("project_id", collect));
+                    List filterPids = tasks.stream().map(Task::getProjectId).collect(Collectors.toList());
+                    if (projectIds == null) {
+                        projectIds = filterPids;
+                        if (projectIds.size() == 0) {
+                            projectIds.add(-1);
+                        }
+                    }
+                }
                 ganttData = projectMapper.getTaskPlanByProject(projectIds, startDate ,endDate, user.getCompanyId());
                 QueryWrapper<BusinessTrip> btQueryWrapper =new QueryWrapper<>();
                 QueryWrapper<BustripProject> bpQueryWrapper =new QueryWrapper<>();
@@ -3400,13 +3428,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         LocalDateTime sDate = LocalDate.parse(startDate).atTime(LocalTime.MIN);
         LocalDateTime eDate = LocalDate.parse(endDate).atTime(LocalTime.MIN);
         List<LocalDateTime> dateTimeList = getDays(sDate, eDate);
-        //去掉非工作日
-        long days =dateTimeList.size();
-        for (LocalDateTime localDateTime : dateTimeList) {
-            if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
-                days-=1;
-            }
-        }
         User targetUser= userMapper.selectById(request.getHeader("token"));
         TimeType timeType = timeTypeMapper.selectById(targetUser.getCompanyId());
         Integer timeliness = timeType.getTimeliness();
@@ -3432,7 +3453,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(userId!=null){
             queryWrapper.eq("id",userId);
         }
-        if(deptIds!=null){
+        if(deptIds!=null && deptIds.size()>0){
             queryWrapper.in("department_id",deptIds);
         }
         queryWrapper.eq("is_active",1).orderByAsc("department_id");
@@ -3451,16 +3472,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", targetUser.getCompanyId()));
         List<TimelinessRateVO> resultList=new ArrayList<>();
         for (User user : userList){
+            long days =dateTimeList.size();
             //请假的不参与及时率统计
             List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
                     &&(ls.getStartDate().isAfter(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))
                     &&(ls.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
-            for (LeaveSheet leaveSheet : leaveSheets) {
-                Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
-                if(next.getDays()<1){
-                    days-=1;
-                }else {
-                    days-=next.getDays();
+            if(leaveSheets.size()>0){
+                for (LeaveSheet leaveSheet : leaveSheets) {
+                    Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
+                    if(next.getDays()<1){
+                        days-=1;
+                    }else {
+                        days-=next.getDays();
+                    }
                 }
             }
             TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
@@ -3471,6 +3495,23 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 timelinessRateVO.setDepartmentName(first.get().getDepartmentName());
             }
             List<Map<String, Object>> mapList = listMap.get(user.getName());
+            //去填未填日报非工作日
+            for (LocalDateTime localDateTime : dateTimeList) {
+                if(mapList!=null){
+                    if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())&&!mapList.stream().anyMatch(ml->{
+                        Object date = ml.get("createDate");
+                        LocalDate createDate = LocalDate.parse(String.valueOf(date));
+                        return createDate.isEqual(localDateTime.toLocalDate());
+                    })){
+                        days-=1;
+                    }
+                }else {
+                    if(!WorkDayCalculateUtils.isWorkDay(localDateTime.toLocalDate())){
+                        days-=1;
+                    }
+                }
+
+            }
             if(mapList!=null){
                 int num=0;
                 for (Map<String, Object> map : mapList) {
@@ -3487,9 +3528,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         break;
                     }
                     if(createTimeDate.isBefore(createDate)||createTimeDate.isEqual(createDate)){
-                        num++;
+                        if(!leaveSheets.stream().anyMatch(ls->(createTimeDate.isAfter(ls.getStartDate())||createTimeDate.isEqual(ls.getStartDate()))&&
+                                (createTimeDate.isBefore(ls.getEndDate())||createTimeDate.isEqual(ls.getEndDate())))){
+                            num++;
+                        }
                     }
                 }
+                System.out.println(user.getName());
+                System.out.println(days);
+                System.out.println(num);
                 BigDecimal bigDecimal=new BigDecimal(num);
                 BigDecimal divide;
                 if(days!=0){

File diff suppressed because it is too large
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml