Ver Fonte

修复部分bug

seyason há 3 anos atrás
pai
commit
8d8866febd

+ 5 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyDingdingController.java

@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 
 /**
  * <p>
@@ -38,7 +40,9 @@ public class CompanyDingdingController {
     @RequestMapping("/pushFinishMileStoneMsg")
     public HttpRespMsg pushFinishMileStoneMsg(String corpid, String userDingId) {
         CompanyDingding companyDingding = companyDingdingMapper.selectById(corpid);
-        companyDingdingService.sendFinishMileStoneMsg(companyDingding, "040534176023851922", "获取伦理批件", "工时管家");
+        LocalDate now = LocalDate.now();
+        String finishDate = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
+        companyDingdingService.sendFinishMileStoneMsg(companyDingding, "040534176023851922", "获取伦理批件", "工时管家", finishDate);
         return new HttpRespMsg();
     }
 

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

@@ -29,7 +29,7 @@ public interface CompanyDingdingService extends IService<CompanyDingding> {
     public void sendNewTaskMsg(CompanyDingding dingding, String userId, String title, String endDate);
 
 
-    public void sendFinishMileStoneMsg(CompanyDingding dingding, String useridList, String taskName, String project);
+    public void sendFinishMileStoneMsg(CompanyDingding dingding, String useridList, String taskName, String project, String finishDate);
 
     public void sendOAMsg(CompanyDingding dingding, String useridList, HashMap map);
 }

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java

@@ -222,7 +222,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
 
 
     @Override
-    public void sendFinishMileStoneMsg(CompanyDingding dingding, String useridList, String taskName, String project) {
+    public void sendFinishMileStoneMsg(CompanyDingding dingding, String useridList, String taskName, String project, String finishDate) {
         DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/sendbytemplate");
         OapiMessageCorpconversationSendbytemplateRequest req = new OapiMessageCorpconversationSendbytemplateRequest();
         req.setAgentId(dingding.getAgentId());
@@ -233,6 +233,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
         json.put("project", project);
         json.put("APPID", ""+appId);
         json.put("CORPID", dingding.getCorpid());
+        json.put("finishDate", finishDate);
         req.setData(json.toJSONString());
         OapiMessageCorpconversationSendbytemplateResponse rsp = null;
         try {

+ 9 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -621,7 +621,15 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             finalList = finalList.stream().sorted(new Comparator<Map<String, Object>>() {
                 @Override
                 public int compare(Map<String, Object> o1, Map<String, Object> o2) {
-                    return (double)o1.get("cost") > (double)o2.get("cost")?-1:1;
+                    double d1 = (double)o1.get("cost");
+                    double d2 = (double)o2.get("cost");
+                    if (d1 > d2) {
+                        return -1;
+                    } else if (d1 == d2) {
+                        return 0;
+                    } else {
+                        return 1;
+                    }
                 }
             }).collect(Collectors.toList());
             finalMap.put("totalCost", totalCost);

+ 35 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -139,7 +139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     httpRespMsg.data = projectMapper.getOnlyJoinProjects(user.getId(), user.getCompanyId());
                 } else {
                     //有权限的填报全部的
-                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()).orderByDesc("is_public").orderByAsc("id"));
                 }
             } else {
                 if (!sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部项目")) {
@@ -147,7 +147,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     httpRespMsg.data = projectMapper.getParticipatedProject(user.getId(), user.getCompanyId());
                 } else {
                     //有权限的看全部的
-                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
+                    httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()).orderByDesc("is_public").orderByAsc("id"));
                 }
             }
         } catch (NullPointerException e) {
@@ -1480,7 +1480,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
             userIds = userList.stream().map(User::getId).collect(Collectors.toList());
         }
-        if (targetUserId != null) {
+        if (!StringUtils.isEmpty(targetUserId)) {
             userIds = userIds.stream().filter(u->u.equals(targetUserId)).collect(Collectors.toList());
         }
         HttpRespMsg msg = new HttpRespMsg();
@@ -1534,6 +1534,38 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         itemList.add(parent);
                     }
                 }
+                //加上全部的人员(不含已离职),不要和已有任务的人员重复
+                List<String> extraUidList = new ArrayList<>();
+                for (String uid : userIds) {
+                    boolean find = false;
+                    for (Map userMap : ganttData) {
+                        String taskUid = (String)userMap.get("user_id");
+                        if (taskUid.equals(uid)) {
+                            find = true;
+                            break;
+                        }
+                    }
+                    if (!find) {
+                        extraUidList.add(uid);
+                    }
+                }
+                if (extraUidList.size() > 0) {
+                    List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("id", extraUidList).eq("is_active", 1));
+                    for (User u : userList) {
+                        GanttDataItem userGantt = new GanttDataItem();
+                        userGantt.id = u.getId();
+                        userGantt.userId = u.getId();
+                        userGantt.text = u.getName();
+                        userGantt.render = "split";
+                        userGantt.start_date = null;
+                        userGantt.end_date = null;
+                        userGantt.time = 0;
+                        userGantt.parent=String.valueOf(u.getDepartmentId());
+                        itemList.add(userGantt);
+                    }
+                }
+
+
                 for(int i=0;i<leaveSheetList.size();i++){
                     GanttDataItem curItem = new GanttDataItem();;
                     if (!leaveSheetList.get(i).getOwnerId().equals(lsLastItemId)) {

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -694,7 +694,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 .map(Report::getTaskId).collect(Collectors.toList());
         if (finishedTaskIds.size() > 0) {
             Task fTask = new Task();
-            taskMapper.update(fTask.setTaskStatus(1), new QueryWrapper<Task>().in("id", finishedTaskIds));
+            fTask.setTaskStatus(1);
+            fTask.setFinishDate(LocalDate.now());
+            taskMapper.update(fTask, new QueryWrapper<Task>().in("id", finishedTaskIds));
             taskService.notifyMileStoneFinish(companyId, finishedTaskIds);
         }
 

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -508,6 +508,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
 
     @Override
     public void notifyMileStoneFinish(Integer companyId, List<Integer> taskIdList) {
+        LocalDate now = LocalDate.now();
+        String finishDate = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
         new Thread() {
             public void run() {
                 List<CompanyDingding> dingdingList = companyDingdingMapper.selectList(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
@@ -520,7 +522,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         List<Participation> participationList = participationMapper.selectList(new QueryWrapper<Participation>().eq("project_id", task.getProjectId()));
                         List<User> partUserList = userMapper.selectList(new QueryWrapper<User>().in("id", participationList.stream().map(Participation::getUserId).collect(Collectors.toList())));
                         String useridList = partUserList.stream().map(User::getDingdingUserid).collect(Collectors.joining(","));
-                        companyDingdingService.sendFinishMileStoneMsg(dingding, useridList, task.getName(), project.getProjectName());
+                        companyDingdingService.sendFinishMileStoneMsg(dingding, useridList, task.getName(), project.getProjectName(), finishDate);
                     }
                 }
                 //TODO: 企业微信注册的公司

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -80,7 +80,7 @@
     </select>
     <!--获取查询者所在公司每个项目的工时成本-->
     <select id="getParticipatedProject" resultType="java.util.Map">
-        SELECT id, project_name AS projectName, status, task_gp_incharge as taskGpIncharge, project_desc as projectDesc
+        SELECT id, project_code AS projectCode, project_name AS projectName, status, task_gp_incharge as taskGpIncharge, project_desc as projectDesc
         FROM project
         WHERE id IN (
             SELECT project_id
@@ -89,10 +89,10 @@
         ) or incharger_id = #{userId}
         or creator_id = #{userId}
         or (is_public = 1 and company_id = #{companyId})
-        ORDER BY id DESC
+        ORDER BY is_public DESC, id DESC
     </select>
     <select id="getOnlyJoinProjects" resultType="java.util.Map">
-        SELECT id, project_name AS projectName, status, task_gp_incharge as taskGpIncharge, project_desc as projectDesc
+        SELECT id, project_code AS projectCode, project_name AS projectName, status, task_gp_incharge as taskGpIncharge, project_desc as projectDesc
         FROM project
         WHERE id IN (
             SELECT project_id
@@ -100,7 +100,7 @@
             WHERE user_id = #{userId}
         )
         or (is_public = 1 and company_id = #{companyId})
-        ORDER BY id DESC
+        ORDER BY is_public DESC, id DESC
     </select>
     <!--获取查询者所在公司每个项目的工时成本-->
     <select id="getTimeCost" resultType="java.util.Map">

+ 1 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/404.vue

@@ -3,10 +3,8 @@
         <div class="page-img">
             <img src="../assets/image/404.png" />
         </div>
-        <p>请联系李晶亚</p>
         <p class="page-container"><b>Error</b> 非常抱歉你访问的页面不存在!!!</p>        <div class="page-button">
-            <el-button type="danage" round @click="back" icon="el-icon-s-promotion">返回首页</el-button>
-            <button>123</button>
+            <el-button type="primary" round @click="back" icon="el-icon-s-promotion">返回首页</el-button>
         </div>
     </div>
 </template>