Browse Source

更新平台审批流及返回移动端测试

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7426 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 years ago
parent
commit
63014081c9

+ 96 - 58
src/main/java/com/uas/platform/b2b/mobile/service/impl/ClockSetCenterServiceImpl.java

@@ -1,17 +1,23 @@
 package com.uas.platform.b2b.mobile.service.impl;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.mobile.dao.ClockAddressDao;
+import com.uas.platform.b2b.mobile.dao.WorkDataDao;
 import com.uas.platform.b2b.mobile.model.ClockAddress;
 import com.uas.platform.b2b.mobile.model.WorkData;
 import com.uas.platform.b2b.mobile.service.ClockSetCenterService;
+import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.temporary.model.ClassObject;
 import com.uas.platform.b2b.temporary.model.SignCardAddressInfo;
 import com.uas.platform.b2b.temporary.model.WorkDataInfo;
@@ -24,68 +30,100 @@ public class ClockSetCenterServiceImpl implements ClockSetCenterService {
 	private ClockAddressDao clockAddressDao;
 
 	@Autowired
-	private CommonDao commonDao;
+	private WorkDataDao workDataDao;
+
+	@Autowired
+	private UserDao userDao;
 
 	@Override
 	public WorkDataInfo getSignCardInfoByEmcodeAndEnuu(Long emcode, Long enuu, String date) {
-		String sql = "select p.wd_id wd_id, p.wd_code wd_code, p.wd_name wd_name, p.wd_recorder wd_recorder, p.wd_recorddate wd_recorddate, p.wd_hours wd_hours, "
-				+ "p.wd_degree wd_degree, p.wd_ondutyone wd_ondutyone, p.wd_offdutyone wd_offdutyone, p.wd_ondutytwo wd_ondutytwo, p.wd_offdutytwo wd_offdutytwo, "
-				+ "p.wd_ondutythree wd_ondutythree, p.wd_offdutythree wd_offdutythree, p.wd_emcode emcode, p.wd_man wd_man, p.wd_defaultorcode wd_defaultorcode, "
-				+ "p.wd_defaultor wd_defaultor, p.wd_day wd_day, p.wd_pcount wd_pcount, p.wd_earlytime wd_earlytime, p.wd_enuu enuu from  mobile$workdata p where "
-				+ "wd_emcode = " + emcode + " and wd_enuu = " + enuu
-				+ "and to_date(to_char(wd_recorddate, 'yyyy mm dd'), 'yyyy mm dd') = to_date ('" + date
-				+ "','yyyy mm dd')";
-		List<WorkData> workdatas = commonDao.query(sql, WorkData.class);
+		// String sql = "select p.wd_id wd_id, p.wd_code wd_code, p.wd_name
+		// wd_name, p.wd_recorder wd_recorder, p.wd_recorddate wd_recorddate,
+		// p.wd_hours wd_hours, "
+		// + "p.wd_degree wd_degree, p.wd_ondutyone wd_ondutyone,
+		// p.wd_offdutyone wd_offdutyone, p.wd_ondutytwo wd_ondutytwo,
+		// p.wd_offdutytwo wd_offdutytwo, "
+		// + "p.wd_ondutythree wd_ondutythree, p.wd_offdutythree
+		// wd_offdutythree, p.wd_emcode emcode, p.wd_man wd_man,
+		// p.wd_defaultorcode wd_defaultorcode, "
+		// + "p.wd_defaultor wd_defaultor, p.wd_day wd_day, p.wd_pcount
+		// wd_pcount, p.wd_earlytime wd_earlytime, p.wd_enuu enuu from
+		// mobile$workdata p where "
+		// + "wd_emcode = " + emcode + " and wd_enuu = " + enuu
+		// + "and to_date(to_char(wd_recorddate, 'yyyy mm dd'), 'yyyy mm dd') =
+		// to_date ('" + date
+		// + "','yyyy mm dd')";
+		// List<WorkData> workdatas = commonDao.query(sql, WorkData.class);
+		WorkData workdata = workDataDao.getWorkDataByEnuu(enuu);
 		WorkDataInfo wd = new WorkDataInfo();
-		if (!CollectionUtils.isEmpty(workdatas)) {
-			WorkData workdata = workdatas.get(0);
-			if (wd != null) {
-				List<ClockAddress> address = clockAddressDao.getAddressByEnuu(enuu);
-				List<SignCardAddressInfo> addrs = new ArrayList<SignCardAddressInfo>();
-				for (ClockAddress add : address) {
-					SignCardAddressInfo addr = new SignCardAddressInfo();
-					addr.setCS_CODE(add.getCs_code());
-					addr.setCS_ID(add.getCs_id());
-					addr.setCS_INNERDISTANCE(add.getCs_innerdistance());
-					addr.setCS_LATITUDE(add.getCs_latitude());
-					addr.setCS_LONGITUDE(add.getCs_longitude());
-					addr.setCS_RECORDATE(add.getCs_recorddate());
-					addr.setCS_RECORDER(add.getCs_recorder());
-					addr.setCS_VALIDRANGE(add.getCs_validrange());
-					addr.setCS_WORKADDR(add.getCs_workaddr());
-					addr.setEMCODE(add.getEmcode());
-					addr.setENUU(add.getEnuu());
-					addr.setSHORTNAME(add.getShortname());
-					addrs.add(addr);
+		List<User> users = userDao.findByEnUUAndUserUU(enuu, emcode);
+		String[] days = workdata.getWd_day().split(",");
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+		Date today = null;
+		try {
+			today = sdf.parse(date);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		Calendar c = Calendar.getInstance();
+		c.setTime(today);
+		int weekday = c.get(Calendar.DAY_OF_WEEK) - 1;
+		boolean isWork = false;
+		for (String day : days) {
+			if (Integer.valueOf(day).equals(weekday)) {
+				isWork = true;
+			}
+		}
+		if (!CollectionUtils.isEmpty(users) && isWork) {// 用户与企业有绑定关系, 并且今天上班
+			if (workdata != null) {
+				if (wd != null) {
+					List<ClockAddress> address = clockAddressDao.getAddressByEnuu(enuu);
+					List<SignCardAddressInfo> addrs = new ArrayList<SignCardAddressInfo>();
+					for (ClockAddress add : address) {
+						SignCardAddressInfo addr = new SignCardAddressInfo();
+						addr.setCS_CODE(add.getCs_code());
+						addr.setCS_ID(add.getCs_id());
+						addr.setCS_INNERDISTANCE(add.getCs_innerdistance());
+						addr.setCS_LATITUDE(add.getCs_latitude());
+						addr.setCS_LONGITUDE(add.getCs_longitude());
+						addr.setCS_RECORDATE(add.getCs_recorddate());
+						addr.setCS_RECORDER(add.getCs_recorder());
+						addr.setCS_VALIDRANGE(add.getCs_validrange());
+						addr.setCS_WORKADDR(add.getCs_workaddr());
+						addr.setEMCODE(add.getEmcode());
+						addr.setENUU(add.getEnuu());
+						addr.setSHORTNAME(add.getShortname());
+						addrs.add(addr);
+					}
+					wd.setComAddressdata(addrs);
+					ClassObject obj1 = new ClassObject();
+					ClassObject obj2 = new ClassObject();
+					ClassObject obj3 = new ClassObject();
+					obj1.setWd_onduty(workdata.getWd_ondutyone());
+					obj1.setWd_offduty(workdata.getWd_offdutyone());
+					wd.setClass1(obj1);
+					obj2.setWd_onduty(workdata.getWd_ondutytwo());
+					obj2.setWd_offduty(workdata.getWd_offdutytwo());
+					wd.setClass2(obj2);
+					obj3.setWd_onduty(workdata.getWd_ondutythree());
+					obj3.setWd_offduty(workdata.getWd_offdutythree());
+					wd.setClass3(obj3);
+					wd.setDay(workdata.getWd_day());
+					wd.setCode(workdata.getWd_code());
+					wd.setDefaultor(workdata.getWd_defaultor());
+					wd.setDefaultorCode(workdata.getWd_defaultorCode());
+					wd.setDegree(workdata.getWd_degree());
+					wd.setEarlytime(workdata.getWd_earlytime());
+					wd.setEmcode(workdata.getEmcode());
+					wd.setEnuu(workdata.getEnuu());
+					wd.setHours(workdata.getWd_hours());
+					wd.setId(workdata.getWd_id());
+					wd.setMan(workdata.getWd_man());
+					wd.setName(workdata.getWd_name());
+					wd.setPcount(workdata.getWd_pcount());
+					wd.setRecorddate(workdata.getWd_recorddate());
+					wd.setRecorder(workdata.getWd_recorder());
 				}
-				wd.setComAddressdata(addrs);
-				ClassObject obj1 = new ClassObject();
-				ClassObject obj2 = new ClassObject();
-				ClassObject obj3 = new ClassObject();
-				obj1.setWd_onduty(workdata.getWd_ondutyone());
-				obj1.setWd_offduty(workdata.getWd_offdutyone());
-				wd.setClass1(obj1);
-				obj2.setWd_onduty(workdata.getWd_ondutytwo());
-				obj2.setWd_offduty(workdata.getWd_offdutytwo());
-				wd.setClass2(obj2);
-				obj3.setWd_onduty(workdata.getWd_ondutythree());
-				obj3.setWd_offduty(workdata.getWd_offdutythree());
-				wd.setClass3(obj3);
-				wd.setDay(workdata.getWd_day());
-				wd.setCode(workdata.getWd_code());
-				wd.setDefaultor(workdata.getWd_defaultor());
-				wd.setDefaultorCode(workdata.getWd_defaultorCode());
-				wd.setDegree(workdata.getWd_degree());
-				wd.setEarlytime(workdata.getWd_earlytime());
-				wd.setEmcode(workdata.getEmcode());
-				wd.setEnuu(workdata.getEnuu());
-				wd.setHours(workdata.getWd_hours());
-				wd.setId(workdata.getWd_id());
-				wd.setMan(workdata.getWd_man());
-				wd.setName(workdata.getWd_name());
-				wd.setPcount(workdata.getWd_pcount());
-				wd.setRecorddate(workdata.getWd_recorddate());
-				wd.setRecorder(workdata.getWd_recorder());
 			}
 		}
 		return wd;

+ 51 - 49
src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java

@@ -99,63 +99,65 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 					}
 				}
 			}
+			map.put("fp_id", id);
 			map.put("success", false);
 		}
 		String appName = "出差单";
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(feePlease.getEnuu(),
 				feePlease.getEmcode(), appName);
-
-			if (node.getNodelev() == null || node.getNodelev() < approvalFlowService
-					.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(), appName)) {
-				AppLog log = new AppLog();
-				log.setStatus(MobileStatus.ENTERING.getPhrase());
-				log.setStatusCode(MobileStatus.ENTERING.name());
-				log.setSourceid(feePlease.getFp_id());
-				log.setSourcedate(new Date());
-				log.setKeyvalue(feePlease.getFp_id());
-				log.setCaller("出差单");
-				log.setEmcode(feePlease.getEmcode());
-				log.setEnuu(feePlease.getEnuu());
-				for (int i = 0; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(),
-						appName); i++) {
-					ApprovalLog applog = new ApprovalLog(log);
-					applog.setNodedealman(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getEmcode());
-					applog.setNodename(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getNodename());
-					applog.setProcessid(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getId());
-					applog = approvalLogDao.save(applog);
-					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName,
-							node.getNodelev());
-					if (applog.getId() != null) {
-						if (id != null) {
-							feePlease = feePleaseDao.findOne(id);
-							System.out.println("id :" + id);
-							feePlease.setFp_status(MobileStatus.COMMITED.getPhrase());
-							feePlease.setFp_statuscode(MobileStatus.COMMITED.name());
-							feePleaseDao.save(feePlease);
-						}
-
-						// 新增待审批
-						AppFlowOperation operation = new AppFlowOperation();
-						operation.setCaller(appName);
-						operation.setCaller(appName);
-						operation.setDealname(feePlease.getFp_people2());
-						operation.setDealuu(feePlease.getEmcode());
-						operation.setKeyvalue(applog.getId());
-						operation.setNodedealname(node.getEmname());
-						operation.setRecorddate(new Date());
-						operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
-						operation.setStatuscode(MobileStatus.UNAUDIT.name());
-						operation.setEnuu(feePlease.getEnuu());
-						operation.setNodedealuu(node.getEmcode());
-						operation.setNodelevel(node.getNodelev());
-						operation.setSourceid(feePlease.getFp_id());
-						appFlowOperationDao.save(operation);
+		Integer nodelevel = 0;
+		if (node != null) {
+			nodelevel = node.getNodelev();
+		}
+		if (nodelevel < approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(), appName)) {
+			AppLog log = new AppLog();
+			log.setStatus(MobileStatus.ENTERING.getPhrase());
+			log.setStatusCode(MobileStatus.ENTERING.name());
+			log.setSourceid(feePlease.getFp_id());
+			log.setSourcedate(new Date());
+			log.setKeyvalue(feePlease.getFp_id());
+			log.setCaller("出差单");
+			log.setEmcode(feePlease.getEmcode());
+			log.setEnuu(feePlease.getEnuu());
+			for (int i = nodelevel; i < approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(),
+					appName); i++) {
+				ApprovalLog applog = new ApprovalLog(log);
+				applog.setNodedealman(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getEmcode());
+				applog.setNodename(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getNodename());
+				applog.setProcessid(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName, i).getId());
+				applog = approvalLogDao.save(applog);
+				node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName,
+						nodelevel + 1);
+				if (applog.getId() != null) {
+					if (id != null) {
+						feePlease = feePleaseDao.findOne(id);
+						feePlease.setFp_status(MobileStatus.COMMITED.getPhrase());
+						feePlease.setFp_statuscode(MobileStatus.COMMITED.name());
+						feePleaseDao.save(feePlease);
 					}
+
+					// 新增待审批
+					AppFlowOperation operation = new AppFlowOperation();
+					operation.setCaller(appName);
+					operation.setCaller(appName);
+					operation.setDealname(feePlease.getFp_people2());
+					operation.setDealuu(feePlease.getEmcode());
+					operation.setKeyvalue(applog.getId());
+					operation.setNodedealname(node.getEmname());
+					operation.setRecorddate(new Date());
+					operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
+					operation.setStatuscode(MobileStatus.UNAUDIT.name());
+					operation.setEnuu(feePlease.getEnuu());
+					operation.setNodedealuu(node.getEmcode());
+					operation.setNodelevel(node.getNodelev());
+					operation.setSourceid(feePlease.getFp_id());
+					appFlowOperationDao.save(operation);
 				}
 			}
+		}
 		return map;
 	}
 

+ 44 - 41
src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java

@@ -99,6 +99,8 @@ public class VacationServiceImpl implements VacationService {
 			va.setVa_emname(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			va.setVa_recorder(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			va = vacationDao.save(va);
+			map.put("success", true);
+			map.put("va_id", va.getVa_id());
 		}
 
 		// 审批流
@@ -111,52 +113,53 @@ public class VacationServiceImpl implements VacationService {
 			nodelevel = node.getNodelev();
 		}
 		if (nodelevel <= approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName)) {
-				AppLog log = new AppLog();
-				log.setStatus(MobileStatus.ENTERING.getPhrase());
-				log.setStatusCode(MobileStatus.ENTERING.name());
-				log.setSourceid(vacation.getVa_id());
-				log.setSourcedate(new Date());
-				log.setKeyvalue(vacation.getVa_id());
-				log.setCaller("请假单");
-				log.setEmcode(vacation.getEmcode());
-				log.setEnuu(vacation.getEnuu());
-				for (int i = 0; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName); i++) {
-					ApprovalLog applog = new ApprovalLog(log);
-					applog.setNodedealman(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getEmcode());
-					applog.setNodename(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getNodename());
-					applog.setProcessid(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getId());
-					applog = approvalLogDao.save(applog);
+			AppLog log = new AppLog();
+			log.setStatus(MobileStatus.ENTERING.getPhrase());
+			log.setStatusCode(MobileStatus.ENTERING.name());
+			log.setSourceid(vacation.getVa_id());
+			log.setSourcedate(new Date());
+			log.setKeyvalue(vacation.getVa_id());
+			log.setCaller("请假单");
+			log.setEmcode(vacation.getEmcode());
+			log.setEnuu(vacation.getEnuu());
+			for (int i = nodelevel; i < approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(),
+					appName); i++) {
+				ApprovalLog applog = new ApprovalLog(log);
+				applog.setNodedealman(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getEmcode());
+				applog.setNodename(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getNodename());
+				applog.setProcessid(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getId());
+				applog = approvalLogDao.save(applog);
 				node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName,
-						nodelevel);
-					if (applog.getId() != null) {
-						// 新增待审批
-						AppFlowOperation operation = new AppFlowOperation();
-						operation.setCaller(appName);
-						operation.setDealname(vacation.getVa_recorder());
-						operation.setDealuu(vacation.getEmcode());
-						operation.setKeyvalue(applog.getId());
-						operation.setNodedealname(node.getEmname());
-						operation.setRecorddate(new Date());
-						operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
-						operation.setStatuscode(MobileStatus.UNAUDIT.name());
-						operation.setEnuu(vacation.getEnuu());
-						operation.setNodedealuu(node.getEmcode());
-						operation.setNodelevel(node.getNodelev());
-						operation.setSourceid(vacation.getVa_id());
-						appFlowOperationDao.save(operation);
+						nodelevel + 1);
+				if (applog.getId() != null) {
+					// 新增待审批
+					AppFlowOperation operation = new AppFlowOperation();
+					operation.setCaller(appName);
+					operation.setDealname(vacation.getVa_recorder());
+					operation.setDealuu(vacation.getEmcode());
+					operation.setKeyvalue(applog.getId());
+					operation.setNodedealname(node.getEmname());
+					operation.setRecorddate(new Date());
+					operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
+					operation.setStatuscode(MobileStatus.UNAUDIT.name());
+					operation.setEnuu(vacation.getEnuu());
+					operation.setNodedealuu(node.getEmcode());
+					operation.setNodelevel(node.getNodelev());
+					operation.setSourceid(vacation.getVa_id());
+					appFlowOperationDao.save(operation);
 
-						if (va.getVa_id() != null) {// 更新单据状态
-							vacation = vacationDao.findOne(va.getVa_id());
-							vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
-							vacation.setVa_statuscode(MobileStatus.COMMITED.name());
-							vacationDao.save(vacation);
-						}
+					if (va.getVa_id() != null) {// 更新单据状态
+						vacation = vacationDao.findOne(va.getVa_id());
+						vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
+						vacation.setVa_statuscode(MobileStatus.COMMITED.name());
+						vacationDao.save(vacation);
 					}
 				}
 			}
+		}
 		return map;
 	}
 

+ 2 - 2
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkDailyServiceImpl.java

@@ -99,7 +99,7 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 				log.setCaller("工作日报");
 				log.setEmcode(workDaily.getEmcode());
 				log.setEnuu(workDaily.getEnuu());
-				for (int i = 0; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(),
+				for (int i = nodelevel; i < approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(),
 						appName); i++) {
 					ApprovalLog applog = new ApprovalLog(log);
 					applog.setNodedealman(approvalFlowService
@@ -110,7 +110,7 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 							.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName,
-							nodelevel);
+							nodelevel + 1);
 					if (applog.getId() != null) {
 						workDaily = workDailyDao.findOne(workDaily.getWd_id());
 						workDaily.setWd_status(MobileStatus.COMMITED.getPhrase());

+ 3 - 2
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkOvertimeServiceImpl.java

@@ -111,6 +111,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 						}
 					}
 				}
+				map.put("wo_id", id);
 				map.put("success", true);
 			}
 		}
@@ -134,7 +135,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 				log.setCaller("加班单");
 				log.setEmcode(workOvertime.getEmcode());
 				log.setEnuu(workOvertime.getEnuu());
-				for (int i = 0; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(),
+				for (int i = nodelevel; i < approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(),
 						appName); i++) {
 					ApprovalLog applog = new ApprovalLog(log);
 					applog.setNodedealman(approvalFlowService
@@ -145,7 +146,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 							.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName,
-							nodelevel);
+							nodelevel + 1);
 					if (applog.getId() != null) {
 						workOvertime = workOvertimeDao.findOne(id);
 						workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());