Min 1 vuosi sitten
vanhempi
commit
a56bfeaec2

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

@@ -1701,7 +1701,7 @@ 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(8)),df.format(date.minusDays(8)), 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());
@@ -1722,7 +1722,11 @@ public class TimingTask {
                         if(one!=null){
                             continue;
                         }
-                        XmlResponseData xmlResponseData = SyncSapUtils.pushReportToSap(map,isDev);
+                        String result = SyncSapUtils.pushReportToSap(map, isDev);
+                        if(StringUtils.isEmpty(result)){
+                            continue;
+                        }
+                        XmlResponseData xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
                         SapSyncLog sapSyncLog=new SapSyncLog();
                         sapSyncLog.setCompanyId(companyId);
                         sapSyncLog.setRemark("日报数据推送");

+ 13 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/SyncSapUtils.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -117,7 +118,7 @@ public class SyncSapUtils {
     }
 
     //推送工时管家填报考勤数据到SAP
-    public static XmlResponseData pushReportToSap(Map<String,Object> map,boolean isDev){
+    public static String pushReportToSap(Map<String,Object> map,boolean isDev){
         //配置xml请求参数
         XmlRequestData xmlRequestData=new XmlRequestData();
         EmployeeTime employeeTime=new EmployeeTime();
@@ -134,19 +135,24 @@ public class SyncSapUtils {
             datePeriod.setEndDate(String.valueOf(map.get("EndDate")));
         }
         if(map.get("StartTime")!=null){
-            timePeriod.setStartTime(String.valueOf(map.get("StartTime")));
+            timePeriod.setStartTime(String.valueOf(map.get("StartTime"))+":00");
         }
         if(map.get("EndTime")!=null){
-            timePeriod.setEndTime(String.valueOf(map.get("EndTime")));
+            timePeriod.setEndTime(String.valueOf(map.get("EndTime"))+":00");
         }
         employeeTime.setDatePeriod(datePeriod);
         if(map.get("StartTime")!=null&&map.get("EndTime")!=null){
             employeeTime.setTimePeriod(timePeriod);
         }
         employeeTime.setItemTypeCode("CN0001");
-        employeeTime.setDuration("PT"+(map.get("Duration")==null?"0":String.valueOf(map.get("Duration")))+"H");
+        String duration=map.get("Duration")==null?"0":String.valueOf(map.get("Duration"))+"";
+        String hour = duration.substring(0, duration.indexOf("."));
+        String min = "0"+duration.substring(duration.indexOf("."));
+        BigDecimal minBigDecimal = new BigDecimal(min);
+        minBigDecimal=minBigDecimal.multiply(new BigDecimal(60)).setScale(0,BigDecimal.ROUND_HALF_UP);
+        employeeTime.setDuration("PT"+hour+"H"+minBigDecimal.intValue()+"M");
         if(map.get("ProjectElementID")==null||map.get("ServiceProductInternalID")==null){
-            return new XmlResponseData();
+            return "";
         }
         employeeTime.setProjectElementID(String.valueOf(map.get("ProjectElementID")));
         employeeTime.setServiceProductInternalID(String.valueOf(map.get("ServiceProductInternalID")));
@@ -179,13 +185,12 @@ public class SyncSapUtils {
                 result = result.substring(result.indexOf(">")+1, result.lastIndexOf("</n0:EmployeeTimeAsBundleMaintainConfirmation_sync>"));
                 result="<XMLDATA>"+result+"</XMLDATA>";
             }
-            System.out.println(result);
-            xmlResponseData = (XmlResponseData) CommonUtils.convertXmlStrToObject(XmlResponseData.class, result);
+            return result;
         } catch (Exception e) {
             e.printStackTrace();
         }
 
-        return xmlResponseData;
+        return "";
     }