Kaynağa Gözat

加班接口

seyason 3 yıl önce
ebeveyn
işleme
f03947dea8

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

@@ -826,7 +826,7 @@ public class ReportController {
             }
         }
 
-        if (!createDate[0].contains("@") && targetUids.length == 0) {
+        if (!createDate[0].contains("@") && (targetUids==null || targetUids.length == 0)) {
             //不是批量,可能是按周填报。
             boolean isWeeklyFill = true;
             if (reportList.stream().anyMatch(r->r.getId() != null)) {

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

@@ -1860,7 +1860,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg msg = new HttpRespMsg();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
-        List<Map<String, Object>> list = projectMapper.getOvertimeList(userId, user.getCompanyId(), startDate, endDate, projectId);
+        List<Map<String, Object>> list = projectMapper.getOvertimeDetail(userId, user.getCompanyId(), startDate, endDate, projectId);
         boolean hasViewSalary = sysFunctionService.hasPriviledge(user.getRoleId(), "查看加班成本");
         if (!hasViewSalary) {
             //去掉权限
@@ -1869,6 +1869,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 item.remove("cost");
             }
         }
+
         msg.data = list;
         return msg;
     }
@@ -1879,11 +1880,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         try {
             String token = request.getHeader("TOKEN");
             User user = userMapper.selectById(token);
-            List<Map<String, Object>> list = projectMapper.getOvertimeList(userId, user.getCompanyId(), startDate, endDate, projectId);
+            TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+            List<Map<String, Object>> list = projectMapper.getOvertimeDetail(userId, user.getCompanyId(), startDate, endDate, projectId);
             boolean hasViewSalary = sysFunctionService.hasPriviledge(user.getRoleId(), "查看加班成本");
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             List<String> headList = new ArrayList<String>();
-            headList.add("人员");
+            headList.add("序号");
+            headList.add("项目编号");
+            headList.add("项目名称");
+            headList.add(timeType.getCustomDegreeName());
+            headList.add("姓名");
+            headList.add("部门");
+            headList.add("工作日期");
+            headList.add("部门");
             headList.add("加班工时(h)");
             if (hasViewSalary) {
                 headList.add("加班成本(元)");
@@ -1892,16 +1901,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<List<String>> allList = new ArrayList<List<String>>();
             allList.add(headList);
             double totalCostTime = 0;
+            int seq = 1;
             for (Map<String, Object> map : list) {
                 totalMoneyCost = totalMoneyCost.add((BigDecimal)map.get("cost"));
                 totalCostTime += (Double)map.get("overtimeHours");
                 List<String> rowData = new ArrayList<String>();
+                rowData.add(""+seq);
                 rowData.add((String)map.get("username"));
                 rowData.add(((Double)map.get("overtimeHours")).toString());
                 if (hasViewSalary) {
                     rowData.add(((BigDecimal)map.get("cost")).toString());
                 }
                 allList.add(rowData);
+                seq++;
             }
             String total = totalMoneyCost.toString();
             //合计

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

@@ -395,11 +395,15 @@
 
     <!-- 获取某个员工的某时间段内的加班详情 -->
     <select id="getOvertimeDetail" resultType="java.util.Map">
-        SELECT date_format(report.`create_date`, '%Y-%m-%d') AS createDate, report.`creator_id` AS userId, user.`name` AS username, SUM(report.`working_time`) AS workingTime,
-        IFNULL(SUM(report.`overtime_hours`), 0) AS overtimeHours,
+        SELECT date_format(report.`create_date`, '%Y-%m-%d') AS createDate,
+        report.`creator_id` AS userId, user.`name` AS username, report.`working_time` AS workingTime,
+        IFNULL(report.`overtime_hours`, 0) AS overtimeHours,
         project.project_name as projectName,project.project_code as projectCode,
-        IFNULL(SUM(report.overtime_cost), 0) AS cost FROM report LEFT JOIN user ON user.id = report.`creator_id`
+        IFNULL(report.overtime_cost, 0) AS cost,
+        IFNULL(report_extra_degree.name,'') as degreeName, department.department_name as departmentName FROM report LEFT JOIN user ON user.id = report.`creator_id`
         left join project on project.id = report.project_id
+        left join report_extra_degree on report_extra_degree.id = report.degree_id
+        left join department on department.department_id = report.dept_id
         WHERE report.is_overtime = 1
         and report.`state` = 1
         AND report.`create_date` BETWEEN #{startDate} and #{endDate}
@@ -410,7 +414,6 @@
         <if test="userId != null">
             AND report.`creator_id` = #{userId}
         </if>
-        group by report.create_date
     </select>
     <!--按照项目内的阶段名称分组统计工时-->
     <select id="getDegreeCost" resultType="java.util.Map">

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -328,7 +328,7 @@
                     <!--移除执行人 -->
                     <i class="el-icon-delete" v-if="index>0 && (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id)" style="margin-left:5px" @click="removeExecutorLine(index)"></i>
                 </el-form-item>
-                <el-link type="primary" v-if="(addForm.executorListFront == null || addForm.executorListFront.length<10)&& (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id)" style="margin-left:35px;" @click="addExecutorLine">添加执行人</el-link>
+                <el-link type="primary" v-if="(addForm.executorListFront == null || addForm.executorListFront.length<10)&& (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id || permissions.projectManagement)" style="margin-left:35px;" @click="addExecutorLine">添加执行人</el-link>
                 </div>
                 <el-form-item label="优先级">
                     <el-select v-model="addForm.taskLevel" style="width:100%;" >