浏览代码

角色和接口

seyason 3 年之前
父节点
当前提交
7b5aa7743f
共有 14 个文件被更改,包括 199 次插入34 次删除
  1. 45 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 12 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  3. 14 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  4. 12 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Report.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  6. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  7. 14 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  8. 27 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 20 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/Tess4jDemo.java
  10. 33 12
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  11. 13 6
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  12. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/main.js
  13. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue
  14. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

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

@@ -14,6 +14,9 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
 /**
  * <p>
@@ -31,6 +34,7 @@ public class ProjectController {
     @Resource
     private HttpServletRequest request;
 
+
     /**
      * 获取项目列表
      */
@@ -67,11 +71,13 @@ public class ProjectController {
                                    Double budget,
                                    Integer customerId,
                                    String projectBaseCostData,
-                                   String chosenLeaders
+                                   String chosenLeaders,
+                                   String associateDegrees,
+                                   String associateDegreeNames
                                    ) {
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,
                 projectBaseCostData,
-                 budget,customerId,chosenLeaders, request);
+                 budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames, request);
     }
 
     @RequestMapping("/adjustBase")
@@ -312,5 +318,42 @@ public class ProjectController {
     public HttpRespMsg exportOvertimeList(Integer projectId, String startDate, String endDate) {
         return projectService.exportOvertimeList(projectId, startDate, endDate, request);
     }
+
+    /**
+     * 获取项目相关的维度数据列表
+     * @param projectId
+     * @return
+     */
+    @RequestMapping("/getDegreeList")
+    public HttpRespMsg getDegreeList(Integer projectId) {
+        Project project = projectService.getById(projectId);
+        String associateDegrees = project.getAssociateDegrees();
+        String names = project.getAssociateDegreeNames();
+        HttpRespMsg msg = new HttpRespMsg();
+        List<HashMap> list = new ArrayList<>();
+        if (associateDegrees != null) {
+            String[] id = associateDegrees.split("\\,");
+            String[] n = names.split("\\,");
+            for (int i=0;i<id.length; i++) {
+                HashMap map = new HashMap();
+                map.put("id", id[i]);
+                map.put("name", n[i]);
+                list.add(map);
+            }
+        }
+        msg.data = list;
+        return msg;
+    }
+
+    /**
+     * 获取查询者所在公司每个自定义维度的工时成本
+     * @param startDate 开始日期
+     * @param endDate 结束日期
+     * @param projectId 项目id, 可不传
+     */
+    @RequestMapping("/getDegreeCost")
+    public HttpRespMsg getDegreeCost(String startDate, String endDate, Integer projectId) {
+        return projectService.getDegreeCost(startDate, endDate, projectId, request);
+    }
 }
 

+ 12 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -134,7 +134,8 @@ public class ReportController {
                                   String[] professionProgress,
                                   String[] stage,
                                   String[] pics,
-                                  Integer[] multiWorktime
+                                  Integer[] multiWorktime,
+                                  Integer[] degreeId
                                     ) {
         List<Report> reportList = new ArrayList<>();
         String token = request.getHeader("Token");
@@ -147,6 +148,12 @@ public class ReportController {
                 multiWorktime[i] = 0;
             }
         }
+        if (degreeId == null) {
+            degreeId = new Integer[projectId.length];
+            for(int i=0;i<degreeId.length; i++) {
+                degreeId[i] = null;
+            }
+        }
         //代填
         if (targetUids != null && targetUids.length > 0) {
             String val = targetUids[0];
@@ -291,6 +298,7 @@ public class ReportController {
                                     .setReportTimeType(reportTimeType[i])
                                     .setMultiWorktime(multiWorktime[i])
                                     .setContent(content[i])
+                                    .setDegreeId(degreeId[i])
                                     .setState(0)
                                     .setPicAdd(pics!=null?pics[i]:null)
                                     .setStage(stage != null && stage.length > 0 && !StringUtil.isEmpty(stage[i])?stage[i]:null)
@@ -326,6 +334,7 @@ public class ReportController {
                                         .setReportTimeType(reportTimeType[i])
                                         .setMultiWorktime(multiWorktime[i])
                                         .setContent(content[i])
+                                        .setDegreeId(degreeId[i])
                                         .setStage(stage!=null && stage.length > 0  && !StringUtil.isEmpty(stage[i])?stage[i]:null)
                                         .setState(1)//代填,直接是审核通过状态
                                         .setPicAdd(pics!=null?pics[i]:null)
@@ -377,6 +386,7 @@ public class ReportController {
                                 .setReportTimeType(reportTimeType[i])
                                 .setMultiWorktime(multiWorktime[i])
                                 .setContent(content[i])
+                                .setDegreeId(degreeId[i])
                                 .setStage(stage!=null && stage.length > 0  && !StringUtil.isEmpty(stage[i])?stage[i]:null)
                                 .setState(0)
                                 .setPicAdd(pics!=null?pics[i]:null)
@@ -417,6 +427,7 @@ public class ReportController {
                                     .setReportTimeType(reportTimeType[i])
                                     .setMultiWorktime(multiWorktime[i])
                                     .setContent(content[i])
+                                    .setDegreeId(degreeId[i])
                                     .setStage(stage!=null && stage.length > 0  && !StringUtil.isEmpty(stage[i])?stage[i]:null)
                                     .setState(1)//代填的就直接审核通过了
                                     .setPicAdd(pics!=null?pics[i]:null)

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

@@ -21,7 +21,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2021-09-13
+ * @since 2021-12-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -216,6 +216,19 @@ public class Project extends Model<Project> {
     private Integer isPublic;
 
 
+    /**
+     * 关联的自定义维度
+     */
+    @TableField("associate_degrees")
+    private String associateDegrees;
+
+    /**
+     * 关联的自定义维度名称
+     */
+    @TableField("associate_degree_names")
+    private String associateDegreeNames;
+
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 12 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Report.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+import java.util.HashMap;
 import java.util.List;
 
 import com.management.platform.entity.vo.WorktimeItem;
@@ -21,7 +22,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2021-11-09
+ * @since 2021-12-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -198,6 +199,16 @@ public class Report extends Model<Report> {
     private String rejectUserid;
 
 
+    /**
+     * 选择的自定义维度
+     */
+    @TableField("degree_id")
+    private Integer degreeId;
+
+
+    @TableField(exist = false)
+    private List<HashMap> degreeList;
+
     @Override
     protected Serializable pkVal() {
         return this.id;

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

@@ -56,4 +56,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     List<Map<String, Object>> getOvertimeList(Integer companyId, String startDate, String endDate, Integer projectId);
 
+    List<Map<String, Object>> getDegreeCost(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId);
+
 }

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

@@ -31,6 +31,8 @@ public interface ProjectService extends IService<Project> {
                             Double budget,
                             Integer customerId,
                             String chosenLeaders,
+                            String associateDegrees,
+                            String associateDegreeNames,
                             HttpServletRequest request);
 
     HttpRespMsg deleteProject(Integer id);
@@ -90,4 +92,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg getOvertimeList(Integer projectId, String startDate, String endDate, HttpServletRequest request);
 
     HttpRespMsg exportOvertimeList(Integer projectId, String startDate, String endDate, HttpServletRequest request);
+
+    HttpRespMsg getDegreeCost(String startDate, String endDate, Integer projectId, HttpServletRequest request);
 }

+ 14 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -187,6 +187,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                    Double budget,
                                    Integer customerId,
                                    String chosenLeaders,
+                                   String associateDegrees,
+                                   String associateDegreeNames,
                                    HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
@@ -212,6 +214,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             .setCreateDate(LocalDate.now())
                             .setContractAmount(contractAmount)
                             .setBudget(budget)
+                            .setAssociateDegrees(associateDegrees)
+                            .setAssociateDegreeNames(associateDegreeNames)
                             .setCustomerId(customerId);
                     if (!StringUtils.isEmpty(planStartDate)) {
                         project.setPlanStartDate(LocalDate.parse(planStartDate));
@@ -267,6 +271,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         .setIsPublic(isPublic)
                         .setContractAmount(contractAmount)
                         .setBudget(budget)
+                        .setAssociateDegrees(associateDegrees)
+                        .setAssociateDegreeNames(associateDegreeNames)
                         .setCustomerId(customerId);
                 if (!StringUtils.isEmpty(planStartDate)) {
                     p.setPlanStartDate(LocalDate.parse(planStartDate));
@@ -1393,6 +1399,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
 
+
     @Override
     public HttpRespMsg importData(String userId, MultipartFile multipartFile, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -1569,4 +1576,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         return msg;
     }
+
+    @Override
+    public HttpRespMsg getDegreeCost(String startDate, String endDate, Integer projectId, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.data = projectMapper.getDegreeCost(startDate, endDate, projectId);
+        return msg;
+    }
 }

+ 27 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.task.AsyncTaskExecutor;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -57,6 +58,7 @@ import java.util.stream.Collectors;
  * @since 2019-12-31
  */
 @Service
+@Transactional
 public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> implements ReportService {
 //    @Resource
 //    AsyncTaskExecutor asyncTaskExecutor;//注入线程池对象
@@ -71,6 +73,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Value("${wx.app_secret}")
     public String appSecret;
 
+    @Resource
+    ReportExtraDegreeMapper reportExtraDegreeMapper;
     @Resource
     WxCorpInfoService wxCorpInfoService;
     @Resource
@@ -380,13 +384,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     .eq("creator_id", userId)
                     .eq("create_date", LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
             List<Integer> integerList = reports.stream().map(Report::getProjectId).collect(Collectors.toList());
-
+            List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>()
+                    .eq("company_id", userMapper.selectById(userId).getCompanyId()));
             List<SubProject> subProjectList = integerList.size() > 0?subProjectMapper.selectList(new QueryWrapper<SubProject>().in("project_id",integerList)):new ArrayList<>();
 
             List<UserRecentTask> taskList = integerList.size() > 0?userRecentTaskMapper.selectList(new QueryWrapper<UserRecentTask>().in("project_id", integerList).orderByDesc("id")):new ArrayList<>();
             List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", companyId));
 
-            //获取当前项目的子项目列表,任务列表
+            List<ReportExtraDegree> degreeList = reportExtraDegreeMapper.selectList(new QueryWrapper<ReportExtraDegree>().eq("company_id", companyId));
+
+            //获取当前项目的子项目列表,任务列表,项目相关维度列表
             reports.forEach(r->{
                 r.setSubProjectList(subProjectList.stream().filter(s->s.getProjectId().equals(r.getProjectId())).collect(Collectors.toList()));
                 r.setTaskList(taskList.stream().filter(t->t.getProjectId().equals(r.getProjectId()) && t.getUserId().equals(r.getCreatorId())).collect(Collectors.toList()));
@@ -420,6 +427,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                     r.setWorktimeList(list);
                 }
+
+                //处理维度列表数据
+                Project project = allProjectList.stream().filter(p -> p.getId().equals(r.getProjectId())).findFirst().get();
+                String associateDegrees = project.getAssociateDegrees();
+                List<HashMap> degreeMapList = new ArrayList<>();
+                if (associateDegrees != null) {
+                    String[] split = associateDegrees.split("\\,");
+                    for (int i=0;i<split.length; i++) {
+                        HashMap map = new HashMap();
+                        Integer id = Integer.parseInt(split[i]);
+                        map.put("id", id);
+                        map.put("name", degreeList.stream().filter(d->d.getId().equals(id)).findFirst().get().getName());
+                        degreeMapList.add(map);
+                    }
+                }
+                r.setDegreeList(degreeMapList);
             });
             resultMap.put("report", reports);
             //顺便再获取一下可分配时间
@@ -439,10 +462,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //把总秒数转为double后换算为小时并保留两位小数
             resultMap.put("time", new DecimalFormat("0.00").format((double) totalWorkingTime / 3600));
             //顺便返回该公司全部的项目
-            resultMap.put("project", projectMapper.selectList(new QueryWrapper<Project>()
-                    .eq("company_id", userMapper.selectById(userId).getCompanyId())));
+            resultMap.put("project", allProjectList);
             //顺便返回公司的工作时间设置
             resultMap.put("timeType",timeTypeMapper.selectById(companyId));
+
             httpRespMsg.data = resultMap;
         } catch (NullPointerException e) {
             httpRespMsg.setError("验证失败");

+ 20 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/Tess4jDemo.java

@@ -2,6 +2,9 @@ package com.management.platform.util;
 
 import java.io.File;
 import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
 import net.sourceforge.tess4j.ITesseract;
 import net.sourceforge.tess4j.Tesseract;
@@ -13,10 +16,23 @@ import net.sourceforge.tess4j.TesseractException;
 
 public class Tess4jDemo {
     public static void main(String[] args) throws TesseractException {
-        LocalDate now = LocalDate.now();
-        now = now.minusMonths(2-1);
-        now = now.withDayOfMonth(1);
-        System.out.println(now.toString());
+        String associateDegrees = "6,3";
+        String[] id = associateDegrees.split("\\,");
+//        String[] n = names.split("\\,");
+        List list = new ArrayList();
+        for (int i=0;i<id.length; i++) {
+            HashMap map = new HashMap();
+            map.put("id", id[i]);
+//            map.put("name", n[i]);
+            list.add(map);
+        }
+        System.out.println(list);
+
+
+//        LocalDate now = LocalDate.now();
+//        now = now.minusMonths(2-1);
+//        now = now.withDayOfMonth(1);
+//        System.out.println(now.toString());
 
 //        //创建ITesseract接口的实现实例对象
 //        ITesseract iTesseract = new Tesseract();

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

@@ -32,7 +32,10 @@
         <result column="customer_id" property="customerId" />
         <result column="customer_name" property="customerName" />
         <result column="is_public" property="isPublic" />
+        <result column="associate_degrees" property="associateDegrees" />
+        <result column="associate_degree_names" property="associateDegreeNames" />
     </resultMap>
+
     <resultMap id="BaseResultMap2" type="com.management.platform.entity.vo.ProjectWithStage">
         <result column="id" property="id" />
         <result column="project_name" property="projectName" />
@@ -44,7 +47,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, project_name, company_id, project_code, incharger_id, plan_start_date, plan_end_date, progress, level, status, finish_date, creator_id, creator_name, create_date, contract_amount, budget, base_man, base_outsourcing, base_risk1, base_risk2, base_fee, fee_normal, fee_travel, fee_outsourcing, fee_man, customer_id, customer_name, is_public
+        id, project_name, company_id, project_code, incharger_id, plan_start_date, plan_end_date, progress, level, status, finish_date, creator_id, creator_name, create_date, contract_amount, budget, base_man, base_outsourcing, base_risk1, base_risk2, base_fee, fee_normal, fee_travel, fee_outsourcing, fee_man, customer_id, customer_name, is_public, associate_degrees, associate_degree_names
     </sql>
     <resultMap id="CustomerResultMap" type="com.management.platform.entity.vo.CustomerProject" >
         <result column="customer_id" property="customerId" />
@@ -250,21 +253,39 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-         AND project.`status` = 1 and project.plan_start_date is not null and project.plan_end_date is not null
+        AND project.`status` = 1 and project.plan_start_date is not null and project.plan_end_date is not null
         ORDER BY participation.user_id, project.`plan_start_date`
     </select>
 
     <!--获取加班统计报表 -->
     <select id="getOvertimeList" resultType="java.util.Map">
-    SELECT report.`creator_id` AS userId, user.`name` AS username, SUM(report.`working_time`) AS workingTime,
-    SUM(report.cost) AS cost FROM report LEFT JOIN user ON user.id = report.`creator_id`
-    WHERE report.is_overtime = 1
-    and report.`state` = 1
-    AND report.`create_date` BETWEEN #{startDate} and #{endDate}
-    AND user.`company_id` = #{companyId}
-    <if test="projectId != null">
-    AND report.`project_id` = #{projectId}
-    </if>
-    GROUP BY report.creator_id
+        SELECT report.`creator_id` AS userId, user.`name` AS username, SUM(report.`working_time`) AS workingTime,
+        SUM(report.cost) AS cost FROM report LEFT JOIN user ON user.id = report.`creator_id`
+        WHERE report.is_overtime = 1
+        and report.`state` = 1
+        AND report.`create_date` BETWEEN #{startDate} and #{endDate}
+        AND user.`company_id` = #{companyId}
+        <if test="projectId != null">
+            AND report.`project_id` = #{projectId}
+        </if>
+        GROUP BY report.creator_id
+    </select>
+
+
+    <!--按照项目内的阶段名称分组统计工时-->
+    <select id="getDegreeCost" resultType="java.util.Map">
+        SELECT IFNULL(b.name, "未分配") as name, SUM(a.working_time) AS cost, SUM(a.cost) AS costMoney
+        FROM report AS a
+        left join report_extra_degree b on b.id = a.degree_id
+        WHERE
+         a.state = 1
+         <if test="projectId != null">
+             and a.project_id = #{projectId}
+         </if>
+        <if test="startDate != null and endDate != null">
+            AND a.create_date between #{startDate} and #{endDate}
+        </if>
+        GROUP BY a.degree_id
+        ORDER BY a.degree_id ASC
     </select>
 </mapper>

+ 13 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -28,25 +28,28 @@
         <result column="reject_reason" property="rejectReason" />
         <result column="reject_username" property="rejectUsername" />
         <result column="reject_userid" property="rejectUserid" />
+        <result column="degree_id" property="degreeId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, creator_id, project_id, create_date, working_time, content, state, create_time, time_type, cost, start_time, end_time, report_time_type, sub_project_id, task_id, is_overtime, progress, department_audit_state, stage, pic_str, multi_worktime, reject_reason, reject_username, reject_userid
+        id, creator_id, project_id, create_date, working_time, content, state, create_time, time_type, cost, start_time, end_time, report_time_type, sub_project_id, task_id, is_overtime, progress, department_audit_state, stage, pic_str, multi_worktime, reject_reason, reject_username, reject_userid, degree_id
     </sql>
 
+
     <!--根据日期获取全部报告信息-->
     <select id="getAllReportByDate" resultType="java.util.Map">
         SELECT c.name, b.project_name AS project, a.working_time AS duration, a.content, a.create_time AS time, a.create_date as createDate,
         a.state, a.time_type as timeType, a.cost, a.report_time_type as reportTimeType, a.start_time as startTime,
         a.end_time as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         LEFT JOIN user AS c ON a.creator_id=c.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
+        left join report_extra_degree on report_extra_degree.id = report.degree_id
         WHERE a.state = 1
         <if test="startDate != null and startDate != ''">
             AND a.create_date between #{startDate} and #{endDate}
@@ -69,11 +72,12 @@
         a.end_time as endTime, b.incharger_id as inchargerId,
         a.creator_id as creatorId, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
+        left join report_extra_degree on report_extra_degree.id = a.degree_id
         WHERE 1=1
         <if test="date != null and date != ''">
             AND a.create_date=#{date}
@@ -89,11 +93,12 @@
         a.end_time as endTime, b.incharger_id as inchargerId,
         a.creator_id as creatorId, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
+        left join report_extra_degree on report_extra_degree.id = a.degree_id
         WHERE 1=1
         <if test="date != null and date != ''">
             AND a.create_date=#{date}
@@ -112,11 +117,12 @@
         a.end_time as endTime, b.incharger_id as inchargerId,
         a.creator_id as creatorId, d.name as subProjectName,a.task_id as taskId, task.name as taskName,
         a.is_overtime as isOvertime,a.progress as progress, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
+        left join report_extra_degree on report_extra_degree.id = a.degree_id
         WHERE 1=1
         <if test="date != null and date != ''">
             AND a.create_date=#{date}
@@ -135,11 +141,12 @@
         b.incharger_id as inchargerId,
         a.is_overtime as isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         left join sub_project as d on d.id = a.sub_project_id
         left join task on task.id = a.task_id
+        left join report_extra_degree on report_extra_degree.id = a.degree_id
         WHERE 1=1
         <if test="date != null and date != ''">
             AND a.create_date=#{date}

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/main.js

@@ -55,7 +55,7 @@ var addRouFlag = false;
 var userModules = [{role:0, modules:["工时报告","专业审核","部门审核","自动计时","费用报销","待办任务", "项目管理", "请假管理"]},
             {role:3, modules:["工时报告","工时成本统计","项目报表服务","费用报销","待办任务","项目管理","请假管理"]},
             {role:4, modules:["工时报告","财务核算成本", "费用报销", "待办任务","组织架构","请假管理"]},
-            {role:5, modules:["工时报告","自动计时","待办任务","项目管理","专业管理","请假管理"]},
+            {role:5, modules:["工时报告","自动计时","费用报销", "待办任务","项目管理","专业管理","请假管理"]},
             {role:6, modules:["工时报告","工时成本统计","财务核算成本","项目报表服务","费用报销","待办任务","项目管理","请假管理"]},];
 router.beforeEach((to, from, next) => {
     NProgress.start();

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -21,7 +21,7 @@
               <el-menu-item index="1-2"><p @click="ssl(1)">差旅费用填报</p></el-menu-item>
               <el-menu-item index="1-3"><p @click="ssl(2)">外包费用填报</p></el-menu-item>
           </el-submenu>
-          <el-submenu index="2" v-if="user.role != 0">
+          <el-submenu index="2" v-if="user.role == 1 || user.role == 2 || user.role == 4 ">
             <template slot="title">
               <i class="iconfont firerock-iconbaoxiaodan"></i>
               <span>{{user.role == 0?"我的报销凭证":"报销凭证列表"}}</span>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -314,7 +314,7 @@
                 roleDescArray:[{label:"普通员工",value:0, desc:"填报日报,参与项目协作"},
                 {label:"系统管理员",value:2, desc:"具有除了创建系统管理员之外的全部功能"},
                 {label:"公司高层",value:3, desc:"查阅项目信息,人员工时情况"},
-                {label:"人事管理员",value:4, desc:"财务核算成本,负责组织架构和薪资管理"},
+                {label:"人事管理员",value:4, desc:"财务核算成本,费用报销审核,负责组织架构管理"},
                 {label:"项目管理员",value:5, desc:"创建和管理项目"},
                 {label:"公司领导",value:6, desc:"财务核算成本,查阅项目、人员工时和成本情况"},
                 ],