Min vor 1 Jahr
Ursprung
Commit
757e2241f5

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

@@ -2363,8 +2363,8 @@ public class ReportController {
 
     //todo:推送工时管家工时考勤数据到SAP
     @RequestMapping("/pushProjectReportToSap")
-    public HttpRespMsg pushProjectReportToSap(String pushDate){
-        return reportService.pushProjectReportToSap(pushDate);
+    public HttpRespMsg pushProjectReportToSap(String pushDate,Integer reportId){
+        return reportService.pushProjectReportToSap(pushDate,reportId);
     }
 
     //todo:查询已推送到SAP的工时管家工时考勤数据 并撤销推送

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

@@ -181,7 +181,7 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     List<Map<String, Object>> getCcReportByDate(@Param("date") String date, @Param("id") String id, @Param("state") Integer state);
 
-    List<Map<String, Object>> getPushProjectReportToSap(Integer companyId, String startDate, String endDate,String userId);
+    List<Map<String, Object>> getPushProjectReportToSap(Integer companyId, String startDate, String endDate,String userId,Integer reportId);
 
     List<Report> getSumWorkingTime(ArrayList<Integer> deptIds, String startDate, String endDate);
 
@@ -189,7 +189,7 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     Double getReallWorkingTimeByProjectAndGroup(Integer projectId, Integer taskGroupId);
 
-    List<Map<String, Object>> getProjectPlanData(Integer companyId,@Param("list") List<Integer> projectIds, String startDate, String endDate);
+    List<Map<String, Object>> getProjectPlanData(Integer companyId,@Param("list") List<Integer> taskIds, String startDate, String endDate);
 
     List<String> getUserIds(ArrayList<Integer> deptIds, String startDate, String endDate);
 

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

@@ -132,7 +132,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg getWeeklyFillReportData(String targetDate, HttpServletRequest request);
 
-    HttpRespMsg pushProjectReportToSap(String yearMonth);
+    HttpRespMsg pushProjectReportToSap(String pushDate,Integer reportId);
 
     HttpRespMsg getReportById(Integer reportId, HttpServletRequest request);
 

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

@@ -7672,19 +7672,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg pushProjectReportToSap(String pushDate) {
+    public HttpRespMsg pushProjectReportToSap(String pushDate,Integer reportId) {
         HttpRespMsg httpRespMsg =new HttpRespMsg();
         LocalDateTime localDateTime=LocalDateTime.now();
         User user = userMapper.selectById(request.getHeader("token"));
         Integer companyId = user.getCompanyId();
-        List<Map<String,Object>> resultList=reportMapper.getPushProjectReportToSap(companyId,pushDate,pushDate,null);
+        List<Map<String,Object>> resultList=reportMapper.getPushProjectReportToSap(companyId,pushDate,pushDate,null,reportId);
         //过滤服务code为空的数据
         resultList=resultList.stream().filter(r->r.get("ProjectElementID")!=null && !StringUtils.isEmpty(String.valueOf(r.get("ProjectElementID")))).collect(Collectors.toList());
-        List<Integer> projectIds = resultList.stream().map(r -> Integer.valueOf(String.valueOf(r.get("ProjectId")))).distinct().collect(Collectors.toList());
-        projectIds.add(-1);
+        List<Integer> taskIds = resultList.stream().map(r -> Integer.valueOf(String.valueOf(r.get("TaskId")))).distinct().collect(Collectors.toList());
+        taskIds.add(-1);
         //提前推送项目工时(工时管家相关项目任务分组阶段下任务作为SAP服务 预算工时数据推送到SAP)
         //只推送需要推送日报参与的部分就可以了
-        List<Map<String, Object>> pushProjectPlanHour = reportMapper.getProjectPlanData(companyId,projectIds,null,null);
+        List<Map<String, Object>> pushProjectPlanHour = reportMapper.getProjectPlanData(companyId,taskIds,null,null);
         ExecutorService executor = Executors.newFixedThreadPool(1);
         /*execute()让线程池中的线程来执行业务,每次调用都会将一个线程加入到就绪队列*/
         List<Map<String, Object>> finalResultList = resultList;

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -1701,12 +1701,12 @@ public class TimingTask {
         for (TimeType timeType : timeTypeList) {
             Integer companyId = timeType.getCompanyId();
             //提前推送项目工时(工时管家相关项目任务分组阶段下任务作为SAP服务 预算工时数据推送到SAP)
-            List<Map<String, Object>> mapList = reportMapper.getPushProjectReportToSap(companyId,df.format(date.minusDays(1)),df.format(date.minusDays(1)), null);
+            List<Map<String, Object>> mapList = reportMapper.getPushProjectReportToSap(companyId,df.format(date.minusDays(1)),df.format(date.minusDays(1)), null,null);
             //过滤服务code为空的数据
             mapList=mapList.stream().filter(r->r.get("ProjectElementID")!=null && !StringUtils.isEmpty(String.valueOf(r.get("ProjectElementID")))).collect(Collectors.toList());
-            List<Integer> projectIds = mapList.stream().map(r -> Integer.valueOf(String.valueOf(r.get("ProjectId")))).distinct().collect(Collectors.toList());
-            projectIds.add(-1);
-            List<Map<String, Object>> pushProjectPlanHour = reportMapper.getProjectPlanData(companyId,projectIds,null,null);
+            List<Integer> taskIds = mapList.stream().map(r -> Integer.valueOf(String.valueOf(r.get("TaskId")))).distinct().collect(Collectors.toList());
+            taskIds.add(-1);
+            List<Map<String, Object>> pushProjectPlanHour = reportMapper.getProjectPlanData(companyId,taskIds,null,null);
             //多加一个作为预算工时推送
             ExecutorService executor = Executors.newFixedThreadPool(1);
             List<Map<String, Object>> finalMapList = mapList;

+ 5 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -976,7 +976,7 @@
     <select id="getPushProjectReportToSap" resultType="java.util.Map">
         select r.id as ReportId, u.job_number as EmployeeID,r.create_date as StartDate,r.create_date as EndDate,r.start_time as StartTime,r.end_time as EndTime,
         r.working_time as Duration,t.sap_task_code as ProjectElementID,
-        sps.service_code as ServiceProductInternalID,r.content as WorkDescriptionText,p.id as ProjectId
+        sps.service_code as ServiceProductInternalID,r.content as WorkDescriptionText,t.id as TaskId
         from report r
         left join user u on u.id=r.creator_id
         left join department d on u.department_id=d.department_id
@@ -992,6 +992,9 @@
         <if test="userId!=null and userId!=''">
             and r.creator_id=#{userId}
         </if>
+        <if test="reportId!=null">
+            and r.id=#{reportId}
+        </if>
     </select>
 
     <select id="getSumWorkingTime" resultType="com.management.platform.entity.Report">
@@ -1031,7 +1034,7 @@
         and t.plan_hours is not null
         and te.service_id is not null
         and u.job_number is not null
-        and p.id in
+        and t.id in
         <foreach collection="list" open="(" separator="," close=")" item="item">
             #{item}
         </foreach>

+ 5 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -257,6 +257,7 @@
 
                                                     <!--每个项目上单独审核 -->
                                                     <span style="float:right;">
+                                                        <el-button type="primary" size="small" v-if="item2.state == 1&&user.companyId==3092&&user.timeType.pushReportData == 1 && permissions.reportPush" :underline="false" @click="pushWorkTime(item2.id)">{{'推送'}}</el-button>
                                                         <el-button v-if="item2.state == 0 && (((permissions.projectReportReview || user.id == item2.projectAuditorId) && item2.isDeptAudit==0 && item2.projectAuditState==0) || (item2.isDeptAudit==1 && item2.auditDeptManagerid == user.id))" type="primary" :loading="logining" 
                                                         size="small" @click="approve(item1.id, item2)">{{$t('btn.through')}}</el-button>
                                                         <el-button v-if="item2.state == 0 && (((permissions.projectReportReview ||user.id == item2.projectAuditorId) && item2.isDeptAudit==0 && item2.projectAuditState==0) || (item2.isDeptAudit==1 && item2.auditDeptManagerid == user.id))" type="danger" :loading="logining" 
@@ -3553,13 +3554,13 @@
                 this.selectProject(itemDomain, newIndex);
             },
 
-    pushWorkTime(){
+    pushWorkTime(reportId){
         let url=''
         if(this.user.timeType.syncSap == 1){
             url='/report/pushProjectReportToSap'
             let day = (this.choseDay+1) > 9 ? "-" + (this.choseDay + 1) : "-0" + (this.choseDay + 1);
             var pushDate = this.date + day;
-            this.$confirm('确认推送'+pushDate+'的工时?', '提示', {
+            this.$confirm(reportId?'确认推送当前工时?':('确认推送'+pushDate+'的工时?'), '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'info'
@@ -3571,7 +3572,8 @@
                 background: 'rgba(0, 0, 0, 0.7)'
             });
             this.http.post(url,{
-                pushDate: pushDate
+                pushDate: pushDate,
+                reportId: reportId
             },res => {
                 loading.close();
                 if(res.code == 'ok'){