Browse Source

审核单据时进行判断,审核结果为空或者状态是未审批的才能进行审批操作

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

+ 74 - 72
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileFlowServiceImpl.java

@@ -214,85 +214,87 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 	public ModelMap auditDocuments(Long id, String description, Integer dealtype) {
 	public ModelMap auditDocuments(Long id, String description, Integer dealtype) {
 		ModelMap map = new ModelMap();
 		ModelMap map = new ModelMap();
 		AppFlowOperation op = appFlowOperationDao.findOne(id);
 		AppFlowOperation op = appFlowOperationDao.findOne(id);
-		op.setStatus(MobileStatus.AUDITED.getPhrase());
-		op.setStatuscode(MobileStatus.AUDITED.name());
-		op.setDescription(description);
-		op.setDealtime(new Date());
-		ApprovalLog applog = approvalLogDao.findOne(op.getKeyvalue());
-		applog.setStatus(MobileStatus.AUDITED.getPhrase());
-		applog.setStatuscode(MobileStatus.AUDITED.name());
-		if (dealtype.equals(MobileStatus.AGREED.getValue())) {
-			op.setResult(MobileStatus.AGREED.getPhrase());
-		}
-		if (dealtype.equals(MobileStatus.NOTAGREED.getValue())) {
-			op.setResult(MobileStatus.NOTAGREED.getPhrase());
-		}
-		op = appFlowOperationDao.save(op);
+		if (op.getResult() == null || !op.getResult().equals(MobileStatus.AUDITED.getPhrase())) {
+			op.setStatus(MobileStatus.AUDITED.getPhrase());
+			op.setStatuscode(MobileStatus.AUDITED.name());
+			op.setDescription(description);
+			op.setDealtime(new Date());
+			ApprovalLog applog = approvalLogDao.findOne(op.getKeyvalue());
+			applog.setStatus(MobileStatus.AUDITED.getPhrase());
+			applog.setStatuscode(MobileStatus.AUDITED.name());
+			if (dealtype.equals(MobileStatus.AGREED.getValue())) {
+				op.setResult(MobileStatus.AGREED.getPhrase());
+			}
+			if (dealtype.equals(MobileStatus.NOTAGREED.getValue())) {
+				op.setResult(MobileStatus.NOTAGREED.getPhrase());
+			}
+			op = appFlowOperationDao.save(op);
 
 
-		// 生成日志记录
-		MobileAuditLog log = new MobileAuditLog();
-		log.setDealname(op.getNodedealname());
-		log.setDealresult(op.getResult());
-		log.setDealtime(log.getDealtime());
-		log.setDealuu(op.getNodedealuu());
-		log.setInstanceid(op.getId());
-		log.setEnuu(op.getEnuu());
-		mobileAuditLogDao.save(log);
+			// 生成日志记录
+			MobileAuditLog log = new MobileAuditLog();
+			log.setDealname(op.getNodedealname());
+			log.setDealresult(op.getResult());
+			log.setDealtime(log.getDealtime());
+			log.setDealuu(op.getNodedealuu());
+			log.setInstanceid(op.getId());
+			log.setEnuu(op.getEnuu());
+			mobileAuditLogDao.save(log);
 
 
-		// 如果后面有其他节点,继续生成单据,通向下一个,并且记录审核记录(已通过才继续)
-		if (op.getResult().equals(MobileStatus.AGREED.getPhrase())) {
-			Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(op.getEnuu(), op.getCaller());
-			if (maxNode != null) {
-				if (op.getNodelevel() < maxNode) {
-					FlowNode node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(op.getEnuu(),
-							op.getCaller(), op.getNodelevel() + 1);
-					AppFlowOperation oper = new AppFlowOperation();
-					oper.setCaller(op.getCaller());
-					oper.setDealname(op.getDealname());
-					oper.setDealuu(op.getDealuu());
-					oper.setEnuu(op.getEnuu());
-					oper.setKeyvalue(op.getKeyvalue());
-					oper.setNodedealname(node.getEmname());
-					oper.setNodedealuu(node.getEmcode());
-					oper.setNodelevel(node.getNodelev());
-					oper.setNodename(node.getNodename());
-					oper.setProcessnote(
-							"[" + op.getNodedealname() + "]" + op.getResult() + "备注:" + op.getDescription());
-					oper.setRecorddate(op.getRecorddate());
-					oper.setSourceid(op.getSourceid());
-					oper.setStatus(MobileStatus.UNAUDIT.getPhrase());
-					oper.setStatuscode(MobileStatus.UNAUDIT.name());
-					appFlowOperationDao.save(oper);
-				}
-				if (op.getNodelevel() == maxNode) { // 如果为最后一个,原单据状态变为已审批
-					if (op.getCaller().equals(MobileStatus.VACATION.getPhrase())) {// 请假单
-						Vacation va = vacationDao.findOne(op.getSourceid());
-						va.setVa_statuscode(MobileStatus.AUDITED.name());
-						va.setVa_status(MobileStatus.AUDITED.getPhrase());
-						vacationDao.save(va);
+			// 如果后面有其他节点,继续生成单据,通向下一个,并且记录审核记录(已通过才继续)
+			if (op.getResult().equals(MobileStatus.AGREED.getPhrase())) {
+				Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(op.getEnuu(), op.getCaller());
+				if (maxNode != null) {
+					if (op.getNodelevel() < maxNode) {
+						FlowNode node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(op.getEnuu(),
+								op.getCaller(), op.getNodelevel() + 1);
+						AppFlowOperation oper = new AppFlowOperation();
+						oper.setCaller(op.getCaller());
+						oper.setDealname(op.getDealname());
+						oper.setDealuu(op.getDealuu());
+						oper.setEnuu(op.getEnuu());
+						oper.setKeyvalue(op.getKeyvalue());
+						oper.setNodedealname(node.getEmname());
+						oper.setNodedealuu(node.getEmcode());
+						oper.setNodelevel(node.getNodelev());
+						oper.setNodename(node.getNodename());
+						oper.setProcessnote(
+								"[" + op.getNodedealname() + "]" + op.getResult() + "备注:" + op.getDescription());
+						oper.setRecorddate(op.getRecorddate());
+						oper.setSourceid(op.getSourceid());
+						oper.setStatus(MobileStatus.UNAUDIT.getPhrase());
+						oper.setStatuscode(MobileStatus.UNAUDIT.name());
+						appFlowOperationDao.save(oper);
 					}
 					}
-					if (op.getCaller().equals(MobileStatus.WORKDAILY.getPhrase())) {// 工作日报
-						WorkDaily wo = workDailyDao.findOne(op.getSourceid());
-						wo.setWd_statuscode(MobileStatus.AUDITED.name());
-						wo.setWd_status(MobileStatus.AUDITED.getPhrase());
-						workDailyDao.save(wo);
-					}
-					if (op.getCaller().equals(MobileStatus.WORKOVERTIME.getPhrase())) {// 加班申请
-						WorkOvertime wot = workOvertimeDao.findOne(op.getSourceid());
-						wot.setWo_statuscode(MobileStatus.AUDITED.name());
-						wot.setWo_status(MobileStatus.AUDITED.getPhrase());
-						workOvertimeDao.save(wot);
-					}
-					if (op.getCaller().equals(MobileStatus.FEEPLEASE.getPhrase())) {// 出差单
-						FeePlease fee = feePleaseDao.findOne(op.getSourceid());
-						fee.setFp_statuscode(MobileStatus.AUDITED.name());
-						fee.setFp_status(MobileStatus.AUDITED.getPhrase());
-						feePleaseDao.save(fee);
+					if (op.getNodelevel() == maxNode) { // 如果为最后一个,原单据状态变为已审批
+						if (op.getCaller().equals(MobileStatus.VACATION.getPhrase())) {// 请假单
+							Vacation va = vacationDao.findOne(op.getSourceid());
+							va.setVa_statuscode(MobileStatus.AUDITED.name());
+							va.setVa_status(MobileStatus.AUDITED.getPhrase());
+							vacationDao.save(va);
+						}
+						if (op.getCaller().equals(MobileStatus.WORKDAILY.getPhrase())) {// 工作日报
+							WorkDaily wo = workDailyDao.findOne(op.getSourceid());
+							wo.setWd_statuscode(MobileStatus.AUDITED.name());
+							wo.setWd_status(MobileStatus.AUDITED.getPhrase());
+							workDailyDao.save(wo);
+						}
+						if (op.getCaller().equals(MobileStatus.WORKOVERTIME.getPhrase())) {// 加班申请
+							WorkOvertime wot = workOvertimeDao.findOne(op.getSourceid());
+							wot.setWo_statuscode(MobileStatus.AUDITED.name());
+							wot.setWo_status(MobileStatus.AUDITED.getPhrase());
+							workOvertimeDao.save(wot);
+						}
+						if (op.getCaller().equals(MobileStatus.FEEPLEASE.getPhrase())) {// 出差单
+							FeePlease fee = feePleaseDao.findOne(op.getSourceid());
+							fee.setFp_statuscode(MobileStatus.AUDITED.name());
+							fee.setFp_status(MobileStatus.AUDITED.getPhrase());
+							feePleaseDao.save(fee);
+						}
 					}
 					}
 				}
 				}
 			}
 			}
+			map.put("success", true);
 		}
 		}
-		map.put("success", true);
 		return map;
 		return map;
 	}
 	}