liupeng 5 år sedan
förälder
incheckning
2ecc19c82a

+ 0 - 1
code/sapparent/sapcms/src/main/java/org/fouram/controller/ReportController.java

@@ -87,7 +87,6 @@ public class ReportController extends BaseController {
 			if(StringUtils.isBlank(endDay)) {
 				return AppUtil.error("参数endDay为空");
 			}
-			sapCheckService.updateReportBaseData(startDay, endDay);
 			sapCheckService.saveReportResultData(startDay, endDay);
 			return AppUtil.success();
 		} catch (Exception e) {

+ 5 - 1
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapEmployeeTimeMapper.xml

@@ -28,11 +28,15 @@
 		)
 	</insert>
 	
+	<update id="updateUnApprovedDelete">
+		update sap_employee_time set delFlag=1 where approvalStatus != 'APPROVED'
+	</update>
+	
 	<select id="selectRepeat" resultType="SapEmployeeTime">
 		SELECT a.* from sap_employee_time a, (SELECT userId, startDate 
 			from sap_employee_time where delFlag=0 GROUP BY userId, startDate having count(1) > 1) b
 		where a.delFlag=0 and a.userId = b.userId and a.startDate = b.startDate 
-		order by a.userId,a.startDate;
+		order by a.userId,a.startDate
 	</select>
 	
 	<update id="updateDeleteByCode">

+ 4 - 13
code/sapparent/sapservice/src/main/java/org/fouram/service/SapCheckService.java

@@ -13,7 +13,6 @@ import org.fouram.core.util.DateUtil;
 import org.fouram.core.util.Tools;
 import org.fouram.entity.SapCheck;
 import org.fouram.entity.SapCheckReport;
-import org.fouram.entity.SapEmployeeTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -65,6 +64,9 @@ public class SapCheckService extends BaseService {
 		update("SapCheckMapper.saveCheckoutStart1", null);
 		update("SapCheckMapper.saveCheckoutStart2", null);
 		update("SapCheckMapper.saveCheckoutEnd", null);
+		
+		// 删除重复数据
+		updateRepeatCheckDelete();
 	}
 
 	public void saveCheckin(SapCheck check) throws Exception {
@@ -80,7 +82,7 @@ public class SapCheckService extends BaseService {
 	}
 
 	@SuppressWarnings("unchecked")
-	public void updateReportBaseData(String startDay, String endDay) throws Exception {
+	public void updateRepeatCheckDelete() throws Exception {
 		// 处理重复数据
 		List<SapCheck> sapChecks = (List<SapCheck>) findList("SapCheckMapper.selectRepeatCheckin", null);
 		Set<String> checkinDays = Sets.newHashSet();
@@ -121,17 +123,6 @@ public class SapCheckService extends BaseService {
 				update("SapCheckMapper.deleteCheckoutEndById", sapCheck);
 			}
 		}
-
-		List<SapEmployeeTime> employeeTimes = (List<SapEmployeeTime>) findList("SapEmployeeTimeMapper.selectRepeat",
-				null);
-		checkinDays = Sets.newHashSet();
-		for (SapEmployeeTime sapCheck : employeeTimes) {
-			if (!checkinDays.contains(sapCheck.getStartDate() + sapCheck.getUserId())) {
-				checkinDays.add(sapCheck.getStartDate() + sapCheck.getUserId());
-			} else {
-				update("SapEmployeeTimeMapper.updateDeleteByCode", sapCheck);
-			}
-		}
 	}
 
 	@SuppressWarnings("unchecked")

+ 30 - 12
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmployeeTimeService.java

@@ -2,6 +2,7 @@ package org.fouram.service;
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
@@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.collect.Sets;
 
 @Service
 public class SapEmployeeTimeService extends BaseService {
@@ -19,7 +21,7 @@ public class SapEmployeeTimeService extends BaseService {
 	private RequestService requestService;
 	@Autowired
 	private WxUserService wxUserService;
-	
+
 	public String getUserIdList(List<String> sapUsers) {
 		String userIds = "";
 		for (String sapUser : sapUsers) {
@@ -28,6 +30,7 @@ public class SapEmployeeTimeService extends BaseService {
 		return userIds;
 	}
 
+	@SuppressWarnings("unchecked")
 	public void saveEmployeeTimes() throws Exception {
 		List<String> userIds = wxUserService.selectAllUserIds();
 		String url = "https://api15.sapsf.cn/odata/v2/EmployeeTime?$filter=userId in %s&$format=json";
@@ -72,21 +75,21 @@ public class SapEmployeeTimeService extends BaseService {
 				String fractionQuantity = JsonNodeUtil.getValue(userNode, "fractionQuantity");
 				String endTime = JsonNodeUtil.getValue(userNode, "endTime");
 				String originalQuantityInDays = JsonNodeUtil.getValue(userNode, "originalQuantityInDays");
-				
-				if(selectById(externalCode) == null) {
+
+				if (selectById(externalCode) == null) {
 					SapEmployeeTime employeeTime = SapEmployeeTime.builder().externalCode(externalCode)
 							.lastModifiedDateTime(lastModifiedDateTime).loaActualReturnDate(loaActualReturnDate)
 							.createdDateTime(createdDateTime).timeType(timeType)
 							.loaExpectedReturnDate(loaExpectedReturnDate).flexibleRequesting(flexibleRequesting)
 							.timeRecordOrigin(timeRecordOrigin).mdfSystemRecordStatus(mdfSystemRecordStatus)
-							.custPeriod(custPeriod).quantityInHours(quantityInHours).loaStartJobInfoId(loaStartJobInfoId)
-							.startDate(startDate).startDateTime(startDateTime).endDate(endDate).endDateTime(endDateTime)
-							.displayQuantity(displayQuantity).quantityInDays(quantityInDays).startTime(startTime)
-							.loaEndJobInfoId(loaEndJobInfoId).approvalStatus(approvalStatus)
-							.cancellationWorkflowRequestId(cancellationWorkflowRequestId)
+							.custPeriod(custPeriod).quantityInHours(quantityInHours)
+							.loaStartJobInfoId(loaStartJobInfoId).startDate(startDate).startDateTime(startDateTime)
+							.endDate(endDate).endDateTime(endDateTime).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)
+							.workflowRequestId(workflowRequestId).undeterminedEndDate(undeterminedEndDate)
+							.userId(userId).recurrenceGroup(recurrenceGroup).createdBy(createdBy)
 							.workflowInitiatedByAdmin(workflowInitiatedByAdmin).comment(comment)
 							.fractionQuantity(fractionQuantity).endTime(endTime)
 							.originalQuantityInDays(originalQuantityInDays).build();
@@ -95,14 +98,29 @@ public class SapEmployeeTimeService extends BaseService {
 				}
 			}
 		}
+
+		// 更新所有未通过的为无效
+		update("SapEmployeeTimeMapper.updateUnApprovedDelete", null);
+
+		// 去除重复数据
+		List<SapEmployeeTime> employeeTimes = (List<SapEmployeeTime>) findList("SapEmployeeTimeMapper.selectRepeat",
+				null);
+		Set<String> checkinDays = Sets.newHashSet();
+		for (SapEmployeeTime sapCheck : employeeTimes) {
+			if (!checkinDays.contains(sapCheck.getStartDate() + sapCheck.getUserId())) {
+				checkinDays.add(sapCheck.getStartDate() + sapCheck.getUserId());
+			} else {
+				update("SapEmployeeTimeMapper.updateDeleteByCode", sapCheck);
+			}
+		}
 	}
 
 	public void saveOne(SapEmployeeTime employeeTime) throws Exception {
 		save("SapEmployeeTimeMapper.saveOne", employeeTime);
 	}
-	
+
 	public SapEmployeeTime selectById(String externalCode) throws Exception {
 		return (SapEmployeeTime) findObject("SapEmployeeTimeMapper.selectById", externalCode);
 	}
-	
+
 }

+ 20 - 20
code/sapparent/sapservice/src/main/resources/env/develop/config.properties

@@ -1,36 +1,36 @@
 env = develop
 
 #fouram
-wxCp.corpId = ww51602aeb8dab7a95
-wxCp.corpSecret = 0i1jzYxLcriGTXhoatAGYaCFUXshfASbavRScZQxVmI
-wxCp.massage.agentId = 1000003
-wxCp.massage.secret = Sf9mHYuIeAFyqvyoDnTXAH2hlly7kWq6LoIYGCuTZUM
-wxCp.massage.toUser = 1000001
-wxCp.massage.quitUserUrl = https://www.baidu.com
-wxCp.oa.agentId = 3010011
-wxCp.oa.secret = wSzjASahMpA7FoLEpQr_aRvoOY3DwES4Mnh57xGD0OY
-wxCp.oaApproval.agentId = 3010040
-wxCp.oaApproval.secret = E6Q2TzX39tkZngtyiECwKACM-wBUKVu-0juxG23yIXs
-#prod
-#wxCp.corpId = ww911e29458d3a46fd
-#wxCp.corpSecret = amUNgH2lo-szEYkLmClZN2jMYcDu0NnXIAtWfW729P4
-#wxCp.massage.agentId = 1000009
-#wxCp.massage.secret = a0HDbErBYZxL43yLIzTZ_9Q5q4eFf2EHSi67TWP1RbE
-#wxCp.massage.toUser = dd4d61108fecaa34918a555fd1d8cce1
+#wxCp.corpId = ww51602aeb8dab7a95
+#wxCp.corpSecret = 0i1jzYxLcriGTXhoatAGYaCFUXshfASbavRScZQxVmI
+#wxCp.massage.agentId = 1000003
+#wxCp.massage.secret = Sf9mHYuIeAFyqvyoDnTXAH2hlly7kWq6LoIYGCuTZUM
+#wxCp.massage.toUser = 1000001
 #wxCp.massage.quitUserUrl = https://www.baidu.com
 #wxCp.oa.agentId = 3010011
-#wxCp.oa.secret = iD6-Kv41i4S50bEZcwa9v-S7SYpD1Q7LbR3dQx5oM7s
+#wxCp.oa.secret = wSzjASahMpA7FoLEpQr_aRvoOY3DwES4Mnh57xGD0OY
 #wxCp.oaApproval.agentId = 3010040
-#wxCp.oaApproval.secret = -_Sf2jg42PZEQ1OVoLncisqTmASwQTmabDzqTz7kLfw
+#wxCp.oaApproval.secret = E6Q2TzX39tkZngtyiECwKACM-wBUKVu-0juxG23yIXs
+#prod
+wxCp.corpId = ww911e29458d3a46fd
+wxCp.corpSecret = amUNgH2lo-szEYkLmClZN2jMYcDu0NnXIAtWfW729P4
+wxCp.massage.agentId = 1000009
+wxCp.massage.secret = a0HDbErBYZxL43yLIzTZ_9Q5q4eFf2EHSi67TWP1RbE
+wxCp.massage.toUser = dd4d61108fecaa34918a555fd1d8cce1
+wxCp.massage.quitUserUrl = https://www.baidu.com
+wxCp.oa.agentId = 3010011
+wxCp.oa.secret = iD6-Kv41i4S50bEZcwa9v-S7SYpD1Q7LbR3dQx5oM7s
+wxCp.oaApproval.agentId = 3010040
+wxCp.oaApproval.secret = -_Sf2jg42PZEQ1OVoLncisqTmASwQTmabDzqTz7kLfw
 
 wxCp.mailList.corpSecret = aI66cnVoFAd381rgd3NpyZaEP2qnuZJ2ogpZKWmz9qg
 wxCp.redirectUri = http://cmcadressbook.suggest.vip/sapcms
 wxCp.mailList.userId = 1,2,3,4,5,6,7,8,9,10,dd4d61108fecaa34918a555fd1d8cce1,1102
 
 #test
-sapApi.user = APIADMIN@cmccoltdD:1234567
+#sapApi.user = APIADMIN@cmccoltdD:1234567
 #prod
-#sapApi.user = API01@cmccoltd:cmccoltd123
+sapApi.user = API01@cmccoltd:cmccoltd123
 
 ingorePersonIds = ,400023,400024,