liupeng 5 years ago
parent
commit
9d4d567825

+ 19 - 0
code/sapparent/sapcms/src/main/java/org/fouram/controller/TaskController.java

@@ -5,6 +5,7 @@ import org.fouram.core.util.AppUtil;
 import org.fouram.core.util.AppUtil.ResultConstant;
 import org.fouram.core.util.AppUtil.ResultConstant;
 import org.fouram.core.util.LoggerUtil;
 import org.fouram.core.util.LoggerUtil;
 import org.fouram.service.SapCheckService;
 import org.fouram.service.SapCheckService;
+import org.fouram.service.SapEmployeeTimeService;
 import org.fouram.service.SapReportService;
 import org.fouram.service.SapReportService;
 import org.fouram.service.TaskService;
 import org.fouram.service.TaskService;
 import org.fouram.service.TestUserService;
 import org.fouram.service.TestUserService;
@@ -25,6 +26,8 @@ public class TaskController extends BaseController {
 	private SapReportService sapReportService;
 	private SapReportService sapReportService;
 	@Autowired
 	@Autowired
 	private SapCheckService sapCheckService;
 	private SapCheckService sapCheckService;
+	@Autowired
+	private SapEmployeeTimeService employeeTimeService;
 
 
 	@RequestMapping(value = "/syncWeixinUser", produces = "application/json;charset=utf-8")
 	@RequestMapping(value = "/syncWeixinUser", produces = "application/json;charset=utf-8")
 	@ResponseBody
 	@ResponseBody
@@ -85,4 +88,20 @@ public class TaskController extends BaseController {
 			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
 			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
 		}
 		}
 	}
 	}
+	
+	/**
+	 * http://localhost:8080/sapcms/task/saveEmployeeTimes
+	 * @return
+	 */
+	@RequestMapping(value = "/saveEmployeeTimes", produces = "application/json;charset=utf-8")
+	@ResponseBody
+	public Object saveEmployeeTimes() {
+		try {
+			employeeTimeService.saveEmployeeTimes();
+			return AppUtil.success();
+		} catch (Exception e) {
+			LoggerUtil.error(e);
+			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
+		}
+	}
 }
 }

+ 7 - 2
code/sapparent/sapservice/src/main/java/org/fouram/core/base/service/BaseService.java

@@ -50,9 +50,14 @@ public abstract class BaseService {
 
 
 	public static void main(String[] args) {
 	public static void main(String[] args) {
 		StringBuilder stringBuilder = new StringBuilder();
 		StringBuilder stringBuilder = new StringBuilder();
-		String sapApiUser = ConfConfig.getConfigString("sapApi.user");
+		String sapApiUser = "APIADMIN@cmccoltdD:1234567";
 		String authorizationStr = stringBuilder.append("Basic ").append(Base64Util.encodeString(sapApiUser)).toString();
 		String authorizationStr = stringBuilder.append("Basic ").append(Base64Util.encodeString(sapApiUser)).toString();
-		System.out.println(authorizationStr);
+		System.out.println("测试:"+authorizationStr);
+		
+		stringBuilder = new StringBuilder();
+		sapApiUser = "API01@cmccoltd:cmccoltd123";
+		authorizationStr = stringBuilder.append("Basic ").append(Base64Util.encodeString(sapApiUser)).toString();
+		System.out.println("正式:"+authorizationStr);
 	}
 	}
 
 
 	public String getPersonIds(List<SapUser> sapUsers) {
 	public String getPersonIds(List<SapUser> sapUsers) {

+ 2 - 1
code/sapparent/sapservice/src/main/java/org/fouram/core/util/JsonNodeUtil.java

@@ -12,7 +12,8 @@ public class JsonNodeUtil {
 			return "";
 			return "";
 		}
 		}
 		if (value.contains("/Date(")) {
 		if (value.contains("/Date(")) {
-			return DateUtil.getDay(new Date(Long.valueOf(value.replace("/Date(", "").replace(")/", ""))));
+			Date date = new Date(Long.valueOf(value.replace("/Date(", "").replace(")/", "").replace("+0000", "")));
+			return DateUtil.getDay(date);
 		}
 		}
 		return value;
 		return value;
 	}
 	}

+ 31 - 0
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapEmployeeTime.java

@@ -18,7 +18,38 @@ public class SapEmployeeTime implements Serializable {
 	private static final long serialVersionUID = 1L;
 	private static final long serialVersionUID = 1L;
 	
 	
 	private String externalCode;
 	private String externalCode;
+	private String lastModifiedDateTime;
+	private String endDate;
+	private String loaActualReturnDate;
+	private String createdDateTime;
 	private String timeType;
 	private String timeType;
+	private String loaExpectedReturnDate;
+	private String flexibleRequesting;
+	private String timeRecordOrigin;
+	private String mdfSystemRecordStatus;
+	private String custPeriod;
+	private String quantityInHours;
+	private String loaStartJobInfoId;
+	private String startDate;
+	private String displayQuantity;
+	private String quantityInDays;
+	private String startTime;
+	private String loaEndJobInfoId;
 	private String approvalStatus;
 	private String approvalStatus;
+	private String cancellationWorkflowRequestId;
+	private String deductionQuantity;
+	private String editable;
+	private String lastModifiedBy;
+	private String workflowRequestId;
+	private String undeterminedEndDate;
 	private String userId;
 	private String userId;
+	private String recurrenceGroup;
+	private String createdBy;
+	private String workflowInitiatedByAdmin;
+	private String comment;
+	private String fractionQuantity;
+	private String endTime;
+	private String originalQuantityInDays;
+	
+	
 }
 }

+ 22 - 0
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapEmployeeTimeMapper.xml

@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="SapEmployeeTimeMapper">
 <mapper namespace="SapEmployeeTimeMapper">
+	<insert id="saveOne">
+		insert into sap_employee_time(externalCode,lastModifiedDateTime,endDate,loaActualReturnDate,
+			createdDateTime,timeType,loaExpectedReturnDate,flexibleRequesting,
+			timeRecordOrigin,mdfSystemRecordStatus,custPeriod,quantityInHours,
+			loaStartJobInfoId,startDate,displayQuantity,quantityInDays,
+			startTime,loaEndJobInfoId,approvalStatus,cancellationWorkflowRequestId,
+			deductionQuantity,editable,lastModifiedBy,workflowRequestId,
+			undeterminedEndDate,userId,recurrenceGroup,createdBy,
+			workflowInitiatedByAdmin,comment,fractionQuantity,endTime,
+			originalQuantityInDays
+		) 
+		values (#{externalCode},#{lastModifiedDateTime},#{endDate},#{loaActualReturnDate},
+			#{createdDateTime},#{timeType},#{loaExpectedReturnDate},#{flexibleRequesting},
+			#{timeRecordOrigin},#{mdfSystemRecordStatus},#{custPeriod},#{quantityInHours},
+			#{loaStartJobInfoId},#{startDate},#{displayQuantity},#{quantityInDays},
+			#{startTime},#{loaEndJobInfoId},#{approvalStatus},#{cancellationWorkflowRequestId},
+			#{deductionQuantity},#{editable},#{lastModifiedBy},#{workflowRequestId},
+			#{undeterminedEndDate},#{userId},#{recurrenceGroup},#{createdBy},
+			#{workflowInitiatedByAdmin},#{comment},#{fractionQuantity},#{endTime},
+			#{originalQuantityInDays}
+		)
+	</insert>
 </mapper>
 </mapper>

+ 0 - 4
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapTimeTypeMapper.xml

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="SapTimeTypeMapper">
-</mapper>

+ 86 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmployeeTimeService.java

@@ -1,9 +1,95 @@
 package org.fouram.service;
 package org.fouram.service;
 
 
+import java.util.Iterator;
+import java.util.List;
+
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.BaseService;
+import org.fouram.core.base.service.RequestService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapEmployeeTime;
+import org.fouram.entity.SapUser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import com.fasterxml.jackson.databind.JsonNode;
+
 @Service
 @Service
 public class SapEmployeeTimeService extends BaseService {
 public class SapEmployeeTimeService extends BaseService {
 
 
+	@Autowired
+	RequestService requestService;
+	@Autowired
+	private SapUserService userService;
+
+	public void saveEmployeeTimes() throws Exception {
+		List<SapUser> sapUsers = userService.selectSuccessList();
+		String url = "https://api15.sapsf.cn/odata/v2/EmployeeTime?$filter=userId in %s&$format=json";
+		url = String.format(url, getUserIds(sapUsers));
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			int count = 0;
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				String externalCode = JsonNodeUtil.getValue(userNode, "externalCode");
+				String lastModifiedDateTime = JsonNodeUtil.getValue(userNode, "lastModifiedDateTime");
+				String endDate = JsonNodeUtil.getValue(userNode, "endDate");
+				String loaActualReturnDate = JsonNodeUtil.getValue(userNode, "loaActualReturnDate");
+				String createdDateTime = JsonNodeUtil.getValue(userNode, "createdDateTime");
+				String timeType = JsonNodeUtil.getValue(userNode, "timeType");
+				String loaExpectedReturnDate = JsonNodeUtil.getValue(userNode, "loaExpectedReturnDate");
+				String flexibleRequesting = JsonNodeUtil.getValue(userNode, "flexibleRequesting");
+				String timeRecordOrigin = JsonNodeUtil.getValue(userNode, "timeRecordOrigin");
+				String mdfSystemRecordStatus = JsonNodeUtil.getValue(userNode, "mdfSystemRecordStatus");
+				String custPeriod = JsonNodeUtil.getValue(userNode, "cust_period");
+				String quantityInHours = JsonNodeUtil.getValue(userNode, "quantityInHours");
+				String loaStartJobInfoId = JsonNodeUtil.getValue(userNode, "loaStartJobInfoId");
+				String startDate = JsonNodeUtil.getValue(userNode, "startDate");
+				String displayQuantity = JsonNodeUtil.getValue(userNode, "displayQuantity");
+				String quantityInDays = JsonNodeUtil.getValue(userNode, "quantityInDays");
+				String startTime = JsonNodeUtil.getValue(userNode, "startTime");
+				String loaEndJobInfoId = JsonNodeUtil.getValue(userNode, "loaEndJobInfoId");
+				String approvalStatus = JsonNodeUtil.getValue(userNode, "approvalStatus");
+				String cancellationWorkflowRequestId = JsonNodeUtil.getValue(userNode, "cancellationWorkflowRequestId");
+				String deductionQuantity = JsonNodeUtil.getValue(userNode, "deductionQuantity");
+				String editable = JsonNodeUtil.getValue(userNode, "editable");
+				String lastModifiedBy = JsonNodeUtil.getValue(userNode, "lastModifiedBy");
+				String workflowRequestId = JsonNodeUtil.getValue(userNode, "workflowRequestId");
+				String undeterminedEndDate = JsonNodeUtil.getValue(userNode, "undeterminedEndDate");
+				String userId = JsonNodeUtil.getValue(userNode, "userId");
+				String recurrenceGroup = JsonNodeUtil.getValue(userNode, "recurrenceGroup");
+				String createdBy = JsonNodeUtil.getValue(userNode, "createdBy");
+				String workflowInitiatedByAdmin = JsonNodeUtil.getValue(userNode, "workflowInitiatedByAdmin");
+				String comment = JsonNodeUtil.getValue(userNode, "comment");
+				String fractionQuantity = JsonNodeUtil.getValue(userNode, "fractionQuantity");
+				String endTime = JsonNodeUtil.getValue(userNode, "endTime");
+				String originalQuantityInDays = JsonNodeUtil.getValue(userNode, "originalQuantityInDays");
+
+				SapEmployeeTime employeeTime = SapEmployeeTime.builder().externalCode(externalCode)
+						.lastModifiedDateTime(lastModifiedDateTime).endDate(endDate)
+						.loaActualReturnDate(loaActualReturnDate).createdDateTime(createdDateTime).timeType(timeType)
+						.loaExpectedReturnDate(loaExpectedReturnDate).flexibleRequesting(flexibleRequesting)
+						.timeRecordOrigin(timeRecordOrigin).mdfSystemRecordStatus(mdfSystemRecordStatus)
+						.custPeriod(custPeriod).quantityInHours(quantityInHours).loaStartJobInfoId(loaStartJobInfoId)
+						.startDate(startDate).displayQuantity(displayQuantity).quantityInDays(quantityInDays)
+						.startTime(startTime).loaEndJobInfoId(loaEndJobInfoId).approvalStatus(approvalStatus)
+						.cancellationWorkflowRequestId(cancellationWorkflowRequestId)
+						.deductionQuantity(deductionQuantity).editable(editable).lastModifiedBy(lastModifiedBy)
+						.workflowRequestId(workflowRequestId).undeterminedEndDate(undeterminedEndDate).userId(userId)
+						.recurrenceGroup(recurrenceGroup).createdBy(createdBy)
+						.workflowInitiatedByAdmin(workflowInitiatedByAdmin).comment(comment)
+						.fractionQuantity(fractionQuantity).endTime(endTime)
+						.originalQuantityInDays(originalQuantityInDays).build();
+
+				saveOne(employeeTime);
+				
+				count = count + 1;
+				System.out.println(count);
+			}
+		}
+	}
+
+	void saveOne(SapEmployeeTime employeeTime) throws Exception {
+		save("SapEmployeeTimeMapper.saveOne", employeeTime);
+	}
 }
 }

+ 30 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapTimeTypeService.java

@@ -1,9 +1,39 @@
 package org.fouram.service;
 package org.fouram.service;
 
 
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.BaseService;
+import org.fouram.core.base.service.RequestService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapUser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.collect.Maps;
+
 @Service
 @Service
 public class SapTimeTypeService extends BaseService {
 public class SapTimeTypeService extends BaseService {
 
 
+	@Autowired
+	private RequestService requestService;
+
+	public Map<String, String> getTimeTypeMap(List<SapUser> sapUsers) {
+		String url = "https://api15.sapsf.cn/odata/v2/TimeType?$filter=userId in %s&$format=json";
+		url = String.format(url, getUserIds(sapUsers));
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> map = Maps.newHashMap();
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				String externalCode = JsonNodeUtil.getValue(userNode, "externalCode");
+				String externalName = JsonNodeUtil.getValue(userNode, "externalName_zh_CN");
+				map.put(externalCode, externalName);
+			}
+		}
+		return map;
+	}
 }
 }