liupeng 4 rokov pred
rodič
commit
9d3eebae53

+ 10 - 0
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapCheckMapper.xml

@@ -76,6 +76,16 @@
 		order by a.userId ASC, b.checkinDay asc;
 	</insert>
 	
+	<update id="updateNoNeedOffwork">
+		update sap_check_report a, sap_checkin_option b 
+		set a.noNeedOffwork = b.noNeedOffwork 
+		where a.userId = b.userId and a.noNeedOffwork is null
+	</update>
+	
+	<update id="updateNoNeedOffworkDefault">
+		update sap_check_report set noNeedOffwork = 0 where noNeedOffwork is null
+	</update>
+
 	<update id="updateHrsdWorkTime">
 		update sap_check_report set workTime = '10:00' where groupName like '%华人时代%' 
 			and checkinDay >= #{startDay} and checkinDay &lt;= #{endDay}

+ 14 - 7
code/sapparent/sapservice/src/main/java/org/fouram/service/WxCheckOptionService.java

@@ -34,13 +34,16 @@ public class WxCheckOptionService extends BaseService {
 				List<CheckinDate> checkinDate = option.getGroup().getCheckinDate();
 				if (option.getGroup() != null && !checkinDate.isEmpty()
 						&& checkinDate.get(0).getCheckinTime().length > 0) {
-					SapCheckOption check = new SapCheckOption();
-					CheckinTime checkinTime = checkinDate.get(0).getCheckinTime()[0];
-					check.setUserId(option.getUserId());
-					check.setWorkSec(checkinTime.getWorkSec());
-					check.setOffWorkSec(checkinTime.getOffWorkSec());
-					check.setNoNeedOffwork(checkinDate.get(0).getNoNeedOffwork());
-					save(check);
+					SapCheckOption check = selectByUserId(option.getUserId());
+					if(check == null) {
+						check = new SapCheckOption();
+						CheckinTime checkinTime = checkinDate.get(0).getCheckinTime()[0];
+						check.setUserId(option.getUserId());
+						check.setWorkSec(checkinTime.getWorkSec());
+						check.setOffWorkSec(checkinTime.getOffWorkSec());
+						check.setNoNeedOffwork(checkinDate.get(0).getNoNeedOffwork());
+						save(check);
+					}
 				}
 			}
 		}
@@ -49,4 +52,8 @@ public class WxCheckOptionService extends BaseService {
 	public void save(SapCheckOption check) throws Exception {
 		save("SapCheckOptionMapper.save", check);
 	}
+	
+	public SapCheckOption selectByUserId(String userId) throws Exception {
+		return (SapCheckOption) findObject("SapCheckOptionMapper.selectByUserId", userId);
+	}
 }

+ 4 - 1
code/sapparent/sapservice/src/main/java/org/fouram/service/WxCheckService.java

@@ -147,7 +147,10 @@ public class WxCheckService extends BaseService {
 		param.put("endDay", endDay);
 		param.put("startDayT", startDay.replace("-", ""));
 		param.put("endDayT", endDay.replace("-", ""));
-
+		
+		// 更新noNeedOffwork
+		update("SapCheckMapper.updateNoNeedOffwork", null);
+		update("SapCheckMapper.updateNoNeedOffworkDefault", null);
 		// 更新华人时代人员上班时间可以推迟30分钟
 		update("SapCheckMapper.updateHrsdWorkTime", param);
 		// 更新时间为空的为后台更新未打卡