Browse Source

审批节点,如果提交人为最后一级不产生审批流,单据变成已审核状态

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

+ 10 - 1
src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java

@@ -114,7 +114,8 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 		if (node != null) {
 			nodelevel = node.getNodelev();
 		}
-		if (nodelevel < approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(), appName)) {
+		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(), appName);
+		if (nodelevel < maxNode) {
 			AppLog log = new AppLog();
 			log.setStatus(MobileStatus.ENTERING.getPhrase());
 			log.setStatusCode(MobileStatus.ENTERING.name());
@@ -163,6 +164,14 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 				}
 			}
 		}
+		if (nodelevel == maxNode) {
+			if (id != null) {
+				feePlease = feePleaseDao.findOne(id);
+				feePlease.setFp_status(MobileStatus.AUDITED.getPhrase());
+				feePlease.setFp_statuscode(MobileStatus.AUDITED.name());
+				feePleaseDao.save(feePlease);
+			}
+		}
 		return map;
 	}
 

+ 17 - 5
src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java

@@ -71,6 +71,7 @@ public class VacationServiceImpl implements VacationService {
 	public ModelMap saveVacation(Vacation vacation) {
 		ModelMap map = new ModelMap();
 		Vacation va = new Vacation();
+		Long id = 0L;
 		if (vacation.getVa_id() == null) {// 新增单据
 			vacation.setVa_statuscode(MobileStatus.ENTERING.name());
 			vacation.setVa_status(MobileStatus.ENTERING.getPhrase());
@@ -81,9 +82,10 @@ public class VacationServiceImpl implements VacationService {
 			vacation.setVa_emname(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			vacation.setVa_recorder(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			va = vacationDao.save(vacation);
-			if (va.getVa_id() != null) {
+			id = va.getVa_id();
+			if (id != null) {
 				map.put("success", true);
-				map.put("va_id", va.getVa_id());
+				map.put("va_id", id);
 			} else {
 				map.put("success", false);
 			}
@@ -99,8 +101,9 @@ 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);
+			id = va.getVa_id();
 			map.put("success", true);
-			map.put("va_id", va.getVa_id());
+			map.put("va_id", id);
 		}
 
 		// 审批流
@@ -112,7 +115,8 @@ public class VacationServiceImpl implements VacationService {
 		if (node != null) {
 			nodelevel = node.getNodelev();
 		}
-		if (nodelevel < approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName)) {
+		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName);
+		if (nodelevel < maxNode) {
 			AppLog log = new AppLog();
 			log.setStatus(MobileStatus.ENTERING.getPhrase());
 			log.setStatusCode(MobileStatus.ENTERING.name());
@@ -151,7 +155,7 @@ public class VacationServiceImpl implements VacationService {
 					operation.setSourceid(vacation.getVa_id());
 					appFlowOperationDao.save(operation);
 
-					if (va.getVa_id() != null) {// 更新单据状态
+					if (id != null) {// 更新单据状态
 						vacation = vacationDao.findOne(va.getVa_id());
 						vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
 						vacation.setVa_statuscode(MobileStatus.COMMITED.name());
@@ -160,6 +164,14 @@ public class VacationServiceImpl implements VacationService {
 				}
 			}
 		}
+		if (node.getNodelev() == maxNode) {
+			if (id != null) {// 更新单据状态
+				vacation = vacationDao.findOne(id);
+				vacation.setVa_status(MobileStatus.AUDITED.getPhrase());
+				vacation.setVa_statuscode(MobileStatus.AUDITED.name());
+				vacationDao.save(vacation);
+			}
+		}
 		return map;
 	}
 

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

@@ -88,8 +88,9 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 		if (node != null) {
 			nodelevel = node.getNodelev();
 		}
+		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(), appName);
 		if (flow != null) { // 该企业的该单据的审批流存在
-			if (nodelevel < approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(), appName)) {
+			if (nodelevel < maxNode) {
 				AppLog log = new AppLog();
 				log.setStatus(MobileStatus.ENTERING.getPhrase());
 				log.setStatusCode(MobileStatus.ENTERING.name());
@@ -136,6 +137,12 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 
 				}
 			}
+			if (nodelevel == maxNode) {
+				workDaily = workDailyDao.findOne(workDaily.getWd_id());
+				workDaily.setWd_status(MobileStatus.AUDITED.getPhrase());
+				workDaily.setWd_statuscode(MobileStatus.AUDITED.name());
+				workDailyDao.save(workDaily);
+			}
 		}
 		return map;
 	}

+ 50 - 45
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkOvertimeServiceImpl.java

@@ -124,55 +124,60 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 		if (node != null) {
 			nodelevel = node.getNodelev();
 		}
-		if (node != null) {
-			if (nodelevel < approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(), appName)) {
-				AppLog log = new AppLog();
-				log.setStatus(MobileStatus.ENTERING.getPhrase());
-				log.setStatusCode(MobileStatus.ENTERING.name());
-				log.setSourceid(workOvertime.getWo_id());
-				log.setSourcedate(new Date());
-				log.setKeyvalue(workOvertime.getWo_id());
-				log.setCaller("加班单");
-				log.setEmcode(workOvertime.getEmcode());
-				log.setEnuu(workOvertime.getEnuu());
-				for (int i = nodelevel + 1; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(),
-						appName); i++) {
-					ApprovalLog applog = new ApprovalLog(log);
-					applog.setNodedealman(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getEmcode());
-					applog.setNodename(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getNodename());
-					applog.setProcessid(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getId());
-					applog = approvalLogDao.save(applog);
-					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName,
-							nodelevel + 1);
-					if (applog.getId() != null) {
-						workOvertime = workOvertimeDao.findOne(id);
-						workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());
-						workOvertime.setWo_statuscode(MobileStatus.COMMITED.name());
-						workOvertimeDao.save(workOvertime);
+		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(), appName);
+		if (nodelevel < maxNode) {
+			AppLog log = new AppLog();
+			log.setStatus(MobileStatus.ENTERING.getPhrase());
+			log.setStatusCode(MobileStatus.ENTERING.name());
+			log.setSourceid(workOvertime.getWo_id());
+			log.setSourcedate(new Date());
+			log.setKeyvalue(workOvertime.getWo_id());
+			log.setCaller("加班单");
+			log.setEmcode(workOvertime.getEmcode());
+			log.setEnuu(workOvertime.getEnuu());
+			for (int i = nodelevel + 1; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(),
+					appName); i++) {
+				ApprovalLog applog = new ApprovalLog(log);
+				applog.setNodedealman(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getEmcode());
+				applog.setNodename(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getNodename());
+				applog.setProcessid(approvalFlowService
+						.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getId());
+				applog = approvalLogDao.save(applog);
+				node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName,
+						nodelevel + 1);
+				if (applog.getId() != null) {
+					workOvertime = workOvertimeDao.findOne(id);
+					workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());
+					workOvertime.setWo_statuscode(MobileStatus.COMMITED.name());
+					workOvertimeDao.save(workOvertime);
 
-						// 新增待审批
-						AppFlowOperation operation = new AppFlowOperation();
-						operation.setCaller(appName);
-						operation.setCaller(appName);
-						operation.setDealname(workOvertime.getWo_recorder());
-						operation.setDealuu(workOvertime.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(workOvertime.getEnuu());
-						operation.setNodedealuu(node.getEmcode());
-						operation.setNodelevel(node.getNodelev());
-						operation.setSourceid(workOvertime.getWo_id());
-						appFlowOperationDao.save(operation);
-					}
+					// 新增待审批
+					AppFlowOperation operation = new AppFlowOperation();
+					operation.setCaller(appName);
+					operation.setCaller(appName);
+					operation.setDealname(workOvertime.getWo_recorder());
+					operation.setDealuu(workOvertime.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(workOvertime.getEnuu());
+					operation.setNodedealuu(node.getEmcode());
+					operation.setNodelevel(node.getNodelev());
+					operation.setSourceid(workOvertime.getWo_id());
+					appFlowOperationDao.save(operation);
 				}
 			}
 		}
+		if (nodelevel == maxNode) {
+			workOvertime = workOvertimeDao.findOne(id);
+			workOvertime.setWo_status(MobileStatus.AUDITED.getPhrase());
+			workOvertime.setWo_statuscode(MobileStatus.AUDITED.name());
+			workOvertimeDao.save(workOvertime);
+		}
 		return map;
 	}