Browse Source

处理移动端接口bug

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

+ 0 - 13
src/main/java/com/uas/platform/b2b/mobile/controller/WorkDailyController.java

@@ -53,19 +53,6 @@ public class WorkDailyController {
 		return workDailyService.getWorkDaily(emcode, pageNumber, pageSize, enuu);
 		return workDailyService.getWorkDaily(emcode, pageNumber, pageSize, enuu);
 	}
 	}
 
 
-	/**
-	 * 更新工作日报
-	 * 
-	 * @param formStore
-	 * @return
-	 */
-	@RequestMapping(value = "/updateWorkDaily", method = RequestMethod.GET)
-	@ResponseBody
-	private ModelMap updateWorkDaily(String formStore) {
-		WorkDaily workDaily = JSONObject.parseObject(formStore, WorkDaily.class);
-		return workDailyService.updateWorkDaily(workDaily);
-	}
-
 	/**
 	/**
 	 * 删除工作日报
 	 * 删除工作日报
 	 * 
 	 * 

+ 1 - 1
src/main/java/com/uas/platform/b2b/mobile/model/MobileAuditLog.java

@@ -18,7 +18,7 @@ import javax.persistence.Table;
  * @time 创建时间:2017年3月18日
  * @time 创建时间:2017年3月18日
  */
  */
 @Entity
 @Entity
-@Table(name = "mobile$auditLog")
+@Table(name = "mobile$auditlog")
 public class MobileAuditLog implements Serializable {
 public class MobileAuditLog implements Serializable {
 
 
 	/**
 	/**

+ 0 - 8
src/main/java/com/uas/platform/b2b/mobile/service/WorkDailyService.java

@@ -25,14 +25,6 @@ public interface WorkDailyService {
 	 */
 	 */
 	public ModelMap getWorkDaily(Long emcode, Integer pageNumber, Integer pageSize, Long enuu);
 	public ModelMap getWorkDaily(Long emcode, Integer pageNumber, Integer pageSize, Long enuu);
 
 
-	/**
-	 * 更新工作日报
-	 * 
-	 * @param workDaily
-	 * @return
-	 */
-	public ModelMap updateWorkDaily(WorkDaily workDaily);
-
 	/**
 	/**
 	 * 通过id删除
 	 * 通过id删除
 	 * 
 	 * 

+ 61 - 52
src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java

@@ -91,6 +91,11 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 				fee.setFp_statuscode(MobileStatus.ENTERING.name());
 				fee.setFp_statuscode(MobileStatus.ENTERING.name());
 				fee.setFp_recorddate(new Date());
 				fee.setFp_recorddate(new Date());
 				fee.setOrderdate(new Date());
 				fee.setOrderdate(new Date());
+				fee.setFp_v3(feePlease.getFp_v3());
+				fee.setFp_prestartdate(feePlease.getFp_prestartdate());
+				fee.setFp_preenddate(feePlease.getFp_preenddate());
+				fee.setEmcode(feePlease.getEmcode());
+				fee.setFp_people2(userBaseInfoDao.findByUserUU(feePlease.getEmcode()).getUserName());
 				feePleaseDao.save(fee);
 				feePleaseDao.save(fee);
 				if (!CollectionUtils.isEmpty(feePleaseDetails)) {
 				if (!CollectionUtils.isEmpty(feePleaseDetails)) {
 					for (FeePleaseDetail feedetail : feePleaseDetails) {
 					for (FeePleaseDetail feedetail : feePleaseDetails) {
@@ -107,7 +112,7 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 			map.put("fp_id", id);
 			map.put("fp_id", id);
 			map.put("success", false);
 			map.put("success", false);
 		}
 		}
-		String appName = "出差单";
+		String appName = MobileStatus.FEEPLEASE.getPhrase();
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(feePlease.getEnuu(),
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(feePlease.getEnuu(),
 				feePlease.getEmcode(), appName);
 				feePlease.getEmcode(), appName);
 		Integer nodelevel = -1;
 		Integer nodelevel = -1;
@@ -115,60 +120,64 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 			nodelevel = node.getNodelev();
 			nodelevel = node.getNodelev();
 		}
 		}
 		Integer maxNode = 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());
-			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 + 1; 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, i);
-				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);
+		if (maxNode != null) {// 审批流存在才进行生产审批流任务
+			if (nodelevel < maxNode) {
+				AppLog log = new AppLog();
+				log.setStatus(MobileStatus.ENTERING.getPhrase());
+				log.setStatusCode(MobileStatus.ENTERING.name());
+				log.setSourceid(id);
+				log.setSourcedate(new Date());
+				log.setKeyvalue(id);
+				log.setCaller(appName);
+				log.setEmcode(feePlease.getEmcode());
+				log.setEnuu(feePlease.getEnuu());
+				for (int i = nodelevel + 1; i <= maxNode; 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, i);
+					if (applog.getId() != null) {
+						// 新增待审批
+						AppFlowOperation operation = new AppFlowOperation();
+						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(id);
+						operation = appFlowOperationDao.save(operation);
+						if (operation.getId() != null) {
+							if (id != null) {
+								feePlease = feePleaseDao.findOne(id);
+								feePlease.setFp_status(MobileStatus.COMMITED.getPhrase());
+								feePlease.setFp_statuscode(MobileStatus.COMMITED.name());
+								feePleaseDao.save(feePlease);
+							}
+							map.put("success", true);
+						} else {
+							map.put("success", false);
+						}
 					}
 					}
-
-					// 新增待审批
-					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);
 				}
 				}
 			}
 			}
-		}
-		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);
+			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;
 		return map;

+ 7 - 3
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileFlowServiceImpl.java

@@ -258,12 +258,17 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 						oper.setNodelevel(node.getNodelev());
 						oper.setNodelevel(node.getNodelev());
 						oper.setNodename(node.getNodename());
 						oper.setNodename(node.getNodename());
 						oper.setProcessnote(
 						oper.setProcessnote(
-								"[" + op.getNodedealname() + "]" + op.getResult() + "备注:" + op.getDescription());
+								"[" + op.getNodedealname() + "]" + op.getResult() + " 备注:" + op.getDescription());
 						oper.setRecorddate(op.getRecorddate());
 						oper.setRecorddate(op.getRecorddate());
 						oper.setSourceid(op.getSourceid());
 						oper.setSourceid(op.getSourceid());
 						oper.setStatus(MobileStatus.UNAUDIT.getPhrase());
 						oper.setStatus(MobileStatus.UNAUDIT.getPhrase());
 						oper.setStatuscode(MobileStatus.UNAUDIT.name());
 						oper.setStatuscode(MobileStatus.UNAUDIT.name());
-						appFlowOperationDao.save(oper);
+						oper = appFlowOperationDao.save(oper);
+						if (oper.getId() != null) {
+							map.put("success", true);
+						} else {
+							map.put("success", false);
+						}
 					}
 					}
 					if (op.getNodelevel() == maxNode) { // 如果为最后一个,原单据状态变为已审批
 					if (op.getNodelevel() == maxNode) { // 如果为最后一个,原单据状态变为已审批
 						if (op.getCaller().equals(MobileStatus.VACATION.getPhrase())) {// 请假单
 						if (op.getCaller().equals(MobileStatus.VACATION.getPhrase())) {// 请假单
@@ -323,5 +328,4 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 		return map;
 		return map;
 	}
 	}
 
 
-	
 }
 }

+ 21 - 0
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileTaskServiceImpl.java

@@ -2,12 +2,14 @@ package com.uas.platform.b2b.mobile.service.impl;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
 
 
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.domain.Specification;
@@ -114,8 +116,27 @@ public class MobileTaskServiceImpl implements MobileTaskService {
 				+ " and ta_statuscode = 'unconfirmed'";
 				+ " and ta_statuscode = 'unconfirmed'";
 		Integer processcount = commonDao.queryForObject(todo, Integer.class);
 		Integer processcount = commonDao.queryForObject(todo, Integer.class);
 		Integer taskcount = commonDao.queryForObject(doing, Integer.class);
 		Integer taskcount = commonDao.queryForObject(doing, Integer.class);
+		List<OfficeTask> lasttask = commonDao.query(
+				"select * from ( select t.ta_taskname taskname from office$task t where t.ta_statuscode = 'start' and t.ta_domancode = '"
+						+ emcode + "' and t.ta_uu = " + enuu + " order by t.ta_id desc ) where rownum < 2",
+				OfficeTask.class);
+		List<OfficeTask> lastProcess = commonDao.query(
+				"select * from ( select t.ta_taskname taskname from office$task t where t.ta_statuscode = 'unconfirmed' and t.ta_domancode = '"
+						+ emcode + "' and t.ta_uu = " + enuu + " order by t.ta_id desc ) where rownum < 2",
+				OfficeTask.class);
+
 		map.put("processcount", processcount);
 		map.put("processcount", processcount);
 		map.put("taskcount", taskcount);
 		map.put("taskcount", taskcount);
+		if (!CollectionUtils.isEmpty(lasttask)) {
+			map.put("lasttask", lasttask.get(0).getTaskname());
+		} else {
+			map.put("lasttask", null);
+		}
+		if (!CollectionUtils.isEmpty(lastProcess)) {
+			map.put("lastProcess", lastProcess.get(0).getTaskname());
+		} else {
+			map.put("lastProcess", null);
+		}
 		return map;
 		return map;
 	}
 	}
 }
 }

+ 5 - 0
src/main/java/com/uas/platform/b2b/mobile/service/impl/PublicInterForDetailServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.mobile.service.impl;
 package com.uas.platform.b2b.mobile.service.impl;
 
 
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
@@ -141,6 +142,7 @@ public class PublicInterForDetailServiceImpl implements PublicInterForDetailServ
 				}
 				}
 				fee.setFp_status(MobileStatus.ENTERING.getPhrase());
 				fee.setFp_status(MobileStatus.ENTERING.getPhrase());
 				fee.setFp_statuscode(MobileStatus.ENTERING.name());
 				fee.setFp_statuscode(MobileStatus.ENTERING.name());
+				fee.setFp_recorddate(new Date());
 				feePleaseDao.save(fee);
 				feePleaseDao.save(fee);
 				map.put("success", true);
 				map.put("success", true);
 			}
 			}
@@ -163,6 +165,7 @@ public class PublicInterForDetailServiceImpl implements PublicInterForDetailServ
 				}
 				}
 				va.setVa_status(MobileStatus.ENTERING.getPhrase());
 				va.setVa_status(MobileStatus.ENTERING.getPhrase());
 				va.setVa_statuscode(MobileStatus.ENTERING.name());
 				va.setVa_statuscode(MobileStatus.ENTERING.name());
+				va.setVa_date(new Date());
 				vacationDao.save(va);
 				vacationDao.save(va);
 				map.put("success", true);
 				map.put("success", true);
 			}
 			}
@@ -185,6 +188,7 @@ public class PublicInterForDetailServiceImpl implements PublicInterForDetailServ
 				}
 				}
 				wo.setWd_status(MobileStatus.ENTERING.getPhrase());
 				wo.setWd_status(MobileStatus.ENTERING.getPhrase());
 				wo.setWd_statuscode(MobileStatus.ENTERING.name());
 				wo.setWd_statuscode(MobileStatus.ENTERING.name());
+				wo.setWd_date(new Date());
 				workDailyDao.save(wo);
 				workDailyDao.save(wo);
 				map.put("success", true);
 				map.put("success", true);
 			}
 			}
@@ -207,6 +211,7 @@ public class PublicInterForDetailServiceImpl implements PublicInterForDetailServ
 				}
 				}
 				wo.setWo_status(MobileStatus.ENTERING.getPhrase());
 				wo.setWo_status(MobileStatus.ENTERING.getPhrase());
 				wo.setWo_statuscode(MobileStatus.ENTERING.name());
 				wo.setWo_statuscode(MobileStatus.ENTERING.name());
+				wo.setWo_date(new Date());
 				workOvertimeDao.save(wo);
 				workOvertimeDao.save(wo);
 				map.put("success", true);
 				map.put("success", true);
 			}
 			}

+ 56 - 51
src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java

@@ -109,7 +109,7 @@ public class VacationServiceImpl implements VacationService {
 
 
 		// 审批流
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		// TODO 暂时这里先只做人员的线路
-		String appName = "请假单";
+		String appName = MobileStatus.VACATION.getPhrase();
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(vacation.getEnuu(),
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(vacation.getEnuu(),
 				vacation.getEmcode(), appName);
 				vacation.getEmcode(), appName);
 		Integer nodelevel = -1;
 		Integer nodelevel = -1;
@@ -117,59 +117,64 @@ public class VacationServiceImpl implements VacationService {
 			nodelevel = node.getNodelev();
 			nodelevel = node.getNodelev();
 		}
 		}
 		Integer maxNode = 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());
-			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 + 1; 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, i);
-				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 (id != null) {// 更新单据状态
-						vacation = vacationDao.findOne(va.getVa_id());
-						vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
-						vacation.setVa_statuscode(MobileStatus.COMMITED.name());
-						vacationDao.save(vacation);
+		if (maxNode != null) {// 审批流存在才创建审批流任务
+			if (nodelevel < maxNode) {
+				AppLog log = new AppLog();
+				log.setStatus(MobileStatus.ENTERING.getPhrase());
+				log.setStatusCode(MobileStatus.ENTERING.name());
+				log.setSourceid(id);
+				log.setSourcedate(new Date());
+				log.setKeyvalue(id);
+				log.setCaller(appName);
+				log.setEmcode(vacation.getEmcode());
+				log.setEnuu(vacation.getEnuu());
+				for (int i = nodelevel + 1; i <= maxNode; 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, i);
+					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());
+						operation = appFlowOperationDao.save(operation);
+						if (operation.getId() != null) {
+							if (id != null) {// 更新单据状态
+								vacation = vacationDao.findOne(id);
+								vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
+								vacation.setVa_statuscode(MobileStatus.COMMITED.name());
+								vacationDao.save(vacation);
+							}
+							map.put("success", true);
+						} else {
+							map.put("success", false);
+						}
 					}
 					}
 				}
 				}
 			}
 			}
-		}
-		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);
+			if (nodelevel == 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;
 		return map;

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

@@ -80,67 +80,70 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 		map.put("data", daily);
 		map.put("data", daily);
 		// 审批流
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		// TODO 暂时这里先只做人员的线路
-		String appName = "工作日报";
-		ApprovalFlow flow = approvalFlowDao.findByEnuuAndAppname(workDaily.getEnuu(), appName);
-		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(workDaily.getEnuu(),
-				workDaily.getEmcode(), appName);
+		String appName = MobileStatus.WORKDAILY.getPhrase();
+		ApprovalFlow flow = approvalFlowDao.findByEnuuAndAppname(daily.getEnuu(), appName);
+		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(daily.getEnuu(), daily.getEmcode(),
+				appName);
 		Integer nodelevel = -1;
 		Integer nodelevel = -1;
 		if (node != null) {
 		if (node != null) {
 			nodelevel = node.getNodelev();
 			nodelevel = node.getNodelev();
 		}
 		}
-		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(), appName);
+		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(daily.getEnuu(), appName);
 		if (flow != null) { // 该企业的该单据的审批流存在
 		if (flow != null) { // 该企业的该单据的审批流存在
 			if (nodelevel < maxNode) {
 			if (nodelevel < maxNode) {
 				AppLog log = new AppLog();
 				AppLog log = new AppLog();
 				log.setStatus(MobileStatus.ENTERING.getPhrase());
 				log.setStatus(MobileStatus.ENTERING.getPhrase());
 				log.setStatusCode(MobileStatus.ENTERING.name());
 				log.setStatusCode(MobileStatus.ENTERING.name());
-				log.setSourceid(workDaily.getWd_id());
+				log.setSourceid(daily.getWd_id());
 				log.setSourcedate(new Date());
 				log.setSourcedate(new Date());
-				log.setKeyvalue(workDaily.getWd_id());
-				log.setCaller("工作日报");
-				log.setEmcode(workDaily.getEmcode());
-				log.setEnuu(workDaily.getEnuu());
-				for (int i = nodelevel + 1; i <= approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(),
-						appName); i++) {
+				log.setKeyvalue(daily.getWd_id());
+				log.setCaller(appName);
+				log.setEmcode(daily.getEmcode());
+				log.setEnuu(daily.getEnuu());
+				for (int i = nodelevel + 1; i <= maxNode; i++) {
 					ApprovalLog applog = new ApprovalLog(log);
 					ApprovalLog applog = new ApprovalLog(log);
 					applog.setNodedealman(approvalFlowService
 					applog.setNodedealman(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i).getEmcode());
+							.getNodeInfoByEnuuAndAppNameAndNodelev(daily.getEnuu(), appName, i).getEmcode());
 					applog.setNodename(approvalFlowService
 					applog.setNodename(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i).getNodename());
+							.getNodeInfoByEnuuAndAppNameAndNodelev(daily.getEnuu(), appName, i).getNodename());
 					applog.setProcessid(approvalFlowService
 					applog.setProcessid(approvalFlowService
-							.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i).getId());
+							.getNodeInfoByEnuuAndAppNameAndNodelev(daily.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
 					applog = approvalLogDao.save(applog);
-					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i);
+					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(daily.getEnuu(), appName, i);
 					if (applog.getId() != null) {
 					if (applog.getId() != null) {
-						workDaily = workDailyDao.findOne(workDaily.getWd_id());
-						workDaily.setWd_status(MobileStatus.COMMITED.getPhrase());
-						workDaily.setWd_statuscode(MobileStatus.COMMITED.name());
-						workDailyDao.save(workDaily);
-
 						// 新增待审批
 						// 新增待审批
 						AppFlowOperation operation = new AppFlowOperation();
 						AppFlowOperation operation = new AppFlowOperation();
 						operation.setCaller(appName);
 						operation.setCaller(appName);
-						operation.setDealname(workDaily.getWd_emp());
-						operation.setDealuu(workDaily.getEmcode());
+						operation.setDealname(daily.getWd_emp());
+						operation.setDealuu(daily.getEmcode());
 						operation.setKeyvalue(applog.getId());
 						operation.setKeyvalue(applog.getId());
 						operation.setNodedealname(node.getEmname());
 						operation.setNodedealname(node.getEmname());
 						operation.setRecorddate(new Date());
 						operation.setRecorddate(new Date());
 						operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
 						operation.setStatus(MobileStatus.UNAUDIT.getPhrase());
 						operation.setStatuscode(MobileStatus.UNAUDIT.name());
 						operation.setStatuscode(MobileStatus.UNAUDIT.name());
-						operation.setEnuu(workDaily.getEnuu());
+						operation.setEnuu(daily.getEnuu());
 						operation.setNodedealuu(node.getEmcode());
 						operation.setNodedealuu(node.getEmcode());
 						operation.setNodelevel(node.getNodelev());
 						operation.setNodelevel(node.getNodelev());
-						operation.setSourceid(workDaily.getWd_id());
-						appFlowOperationDao.save(operation);
+						operation.setSourceid(daily.getWd_id());
+						operation = appFlowOperationDao.save(operation);
+						if (operation.getId() != null) {
+							daily = workDailyDao.findOne(daily.getWd_id());
+							daily.setWd_status(MobileStatus.COMMITED.getPhrase());
+							daily.setWd_statuscode(MobileStatus.COMMITED.name());
+							workDailyDao.save(daily);
+							map.put("success", true);
+						} else {
+							map.put("success", false);
+						}
 					}
 					}
 
 
 				}
 				}
 			}
 			}
 			if (nodelevel == maxNode) {
 			if (nodelevel == maxNode) {
-				workDaily = workDailyDao.findOne(workDaily.getWd_id());
-				workDaily.setWd_status(MobileStatus.AUDITED.getPhrase());
-				workDaily.setWd_statuscode(MobileStatus.AUDITED.name());
-				workDailyDao.save(workDaily);
+				daily = workDailyDao.findOne(daily.getWd_id());
+				daily.setWd_status(MobileStatus.AUDITED.getPhrase());
+				daily.setWd_statuscode(MobileStatus.AUDITED.name());
+				workDailyDao.save(daily);
 			}
 			}
 		}
 		}
 		return map;
 		return map;
@@ -166,20 +169,6 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 		return map;
 		return map;
 	}
 	}
 
 
-	@Override
-	public ModelMap updateWorkDaily(WorkDaily workDaily) {
-		ModelMap map = new ModelMap();
-		WorkDaily oldDaily = workDailyDao.findOne(workDaily.getWd_id());
-		oldDaily.setEmcode(workDaily.getEmcode());
-		oldDaily.setWd_comment(workDaily.getWd_comment());
-		oldDaily.setWd_experience(workDaily.getWd_experience());
-		oldDaily.setWd_plan(workDaily.getWd_plan());
-		oldDaily.setWd_date(new Date());
-		workDailyDao.save(oldDaily);
-		map.put("success", true);
-		return map;
-	}
-
 	@Override
 	@Override
 	public ModelMap deleteById(Long id) {
 	public ModelMap deleteById(Long id) {
 		ModelMap map = new ModelMap();
 		ModelMap map = new ModelMap();

+ 59 - 52
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkOvertimeServiceImpl.java

@@ -96,15 +96,13 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 				wo.setWo_worktask(workOvertime.getWo_worktask());
 				wo.setWo_worktask(workOvertime.getWo_worktask());
 				wo.setWo_date(new Date());
 				wo.setWo_date(new Date());
 				wo.setOrderdate(new Date());
 				wo.setOrderdate(new Date());
+				wo.setWo_recorder(userBaseInfoDao.findByUserUU(workOvertime.getEmcode()).getUserName());
 				workOvertimeDao.save(wo);// 更新主表
 				workOvertimeDao.save(wo);// 更新主表
 				if (!CollectionUtils.isEmpty(workOvertimeDets)) {
 				if (!CollectionUtils.isEmpty(workOvertimeDets)) {
 					for (WorkOvertimeDet det : workOvertimeDets) {
 					for (WorkOvertimeDet det : workOvertimeDets) {
 						if (det.getWod_id() != null) {
 						if (det.getWod_id() != null) {
 							WorkOvertimeDet wodet = workOvertimeDetDao.findOne(det.getWod_id());
 							WorkOvertimeDet wodet = workOvertimeDetDao.findOne(det.getWod_id());
 							wodet.setWod_count(det.getWod_count());
 							wodet.setWod_count(det.getWod_count());
-							wodet.setWod_detno(det.getWod_detno());
-							wodet.setEmcode(det.getEmcode());
-							wodet.setWod_empname(userBaseInfoDao.findByUserUU(det.getEmcode()).getUserName());
 							wodet.setWod_enddate(det.getWod_enddate());
 							wodet.setWod_enddate(det.getWod_enddate());
 							wodet.setWod_startdate(det.getWod_startdate());
 							wodet.setWod_startdate(det.getWod_startdate());
 							workOvertimeDetDao.save(wodet);
 							workOvertimeDetDao.save(wodet);
@@ -117,7 +115,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 		}
 		}
 		// 审批流
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		// TODO 暂时这里先只做人员的线路
-		String appName = "加班单";
+		String appName = MobileStatus.WORKOVERTIME.getPhrase();
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(workOvertime.getEnuu(),
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(workOvertime.getEnuu(),
 				workOvertime.getEmcode(), appName);
 				workOvertime.getEmcode(), appName);
 		Integer nodelevel = -1;
 		Integer nodelevel = -1;
@@ -125,57 +123,66 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 			nodelevel = node.getNodelev();
 			nodelevel = node.getNodelev();
 		}
 		}
 		Integer maxNode = approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(), appName);
 		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, i);
-				if (applog.getId() != null) {
-					workOvertime = workOvertimeDao.findOne(id);
-					workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());
-					workOvertime.setWo_statuscode(MobileStatus.COMMITED.name());
-					workOvertimeDao.save(workOvertime);
+		if (maxNode != null) {
+			if (nodelevel < maxNode) {
+				AppLog log = new AppLog();
+				log.setStatus(MobileStatus.ENTERING.getPhrase());
+				log.setStatusCode(MobileStatus.ENTERING.name());
+				log.setSourceid(id);
+				log.setSourcedate(new Date());
+				log.setKeyvalue(id);
+				log.setCaller(appName);
+				log.setEmcode(workOvertime.getEmcode());
+				log.setEnuu(workOvertime.getEnuu());
+				for (int i = nodelevel + 1; i <= maxNode; 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,
+							i);
+					if (applog.getId() != null) {
 
 
-					// 新增待审批
-					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());
+						operation = appFlowOperationDao.save(operation);
+						if (operation.getId() != null) {
+							if (id != null) {// 更新单据状态
+								workOvertime = workOvertimeDao.findOne(id);
+								workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());
+								workOvertime.setWo_statuscode(MobileStatus.COMMITED.name());
+								workOvertimeDao.save(workOvertime);
+							}
+							map.put("success", true);
+						} else {
+							map.put("success", false);
+						}
+					}
 				}
 				}
 			}
 			}
-		}
-		if (nodelevel == maxNode) {
-			workOvertime = workOvertimeDao.findOne(id);
-			workOvertime.setWo_status(MobileStatus.AUDITED.getPhrase());
-			workOvertime.setWo_statuscode(MobileStatus.AUDITED.name());
-			workOvertimeDao.save(workOvertime);
+			if (nodelevel == maxNode) {
+				workOvertime = workOvertimeDao.findOne(id);
+				workOvertime.setWo_status(MobileStatus.AUDITED.getPhrase());
+				workOvertime.setWo_statuscode(MobileStatus.AUDITED.name());
+				workOvertimeDao.save(workOvertime);
+			}
 		}
 		}
 		return map;
 		return map;
 	}
 	}

+ 28 - 14
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkScheduleServiceImpl.java

@@ -12,7 +12,6 @@ import org.springframework.ui.ModelMap;
 
 
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.dao.UserBaseInfoDao;
-import com.uas.platform.b2b.mobile.dao.OutPlanDao;
 import com.uas.platform.b2b.mobile.dao.OutPlanDetailDao;
 import com.uas.platform.b2b.mobile.dao.OutPlanDetailDao;
 import com.uas.platform.b2b.mobile.dao.UserCenterDao;
 import com.uas.platform.b2b.mobile.dao.UserCenterDao;
 import com.uas.platform.b2b.mobile.dao.VisitRecordDao;
 import com.uas.platform.b2b.mobile.dao.VisitRecordDao;
@@ -33,9 +32,6 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 	@Autowired
 	@Autowired
 	private UserCenterDao userCenterDao;
 	private UserCenterDao userCenterDao;
 
 
-	@Autowired
-	private OutPlanDao outPlanDao;
-
 	@Autowired
 	@Autowired
 	private UserBaseInfoDao userBaseInfoDao;
 	private UserBaseInfoDao userBaseInfoDao;
 
 
@@ -46,7 +42,7 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 	private CommonDao commonDao;
 	private CommonDao commonDao;
 
 
 	@Autowired
 	@Autowired
-	private OutPlanDetailDao OutPlanDetailDao;
+	private OutPlanDetailDao outPlanDetailDao;
 
 
 	@Override
 	@Override
 	public ModelMap getWorkSchedule(Long emcode, Long enuu, String date) {
 	public ModelMap getWorkSchedule(Long emcode, Long enuu, String date) {
@@ -56,8 +52,14 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 			WorkSchedule workSchedule = new WorkSchedule();
 			WorkSchedule workSchedule = new WorkSchedule();
 			String sql = "select o.op_id mp_id, o.op_recorder mp_recorder, o.op_recordercode recordercode, o.op_code mp_code, "
 			String sql = "select o.op_id mp_id, o.op_recorder mp_recorder, o.op_recordercode recordercode, o.op_code mp_code, "
 					+ "o.op_address mp_address, o.op_visittime mp_visittime, o.op_enuu enuu, o.op_recorddate mp_recorddate, "
 					+ "o.op_address mp_address, o.op_visittime mp_visittime, o.op_enuu enuu, o.op_recorddate mp_recorddate, "
-					+ "o.op_arrivedate mp_arrivedate from mobile$outplan o where op_enuu = " + enuu
-					+ " and op_recordercode = " + emcode + " and to_char(op_visittime,'yyyymm') = '" + date + "'";
+					+ "o.op_arrivedate mp_arrivedate from mobile$outplan o where exists (select d.opd_id mpd_id, d.opd_code pd_code, "
+					+ "d.opd_recordercode mpd_recordercode, d.opd_recorder mpd_recorder, d.opd_address mpd_address, d.opd_kind mpd_kind, "
+					+ "d.opd_detno mpd_detno, d.opd_remark mpd_remark, d.opd_location mpd_location, d.opd_enuu enuu, d.opd_arrivedate mpd_arrivedate, "
+					+ "d.opd_actdate mpd_actdate, d.opd_outdate mpd_outdate, d.opd_recorddate mpd_recorddate, d.opd_status mpd_status, d.opd_statuscode mpd_statuscode, "
+					+ "d.opd_distance mpd_distance, d.opd_longitude mpd_longitude, d.opd_latitude mpd_latitude, d.opd_company mpd_company, d.opd_firsttime mpd_firsttime, "
+					+ "d.opd_lasttime mpd_lasttime from mobile$outplandetail d where d.opd_opid = o.op_id and o.op_enuu = "
+					+ enuu + " and o.op_recordercode = " + emcode + " and to_char(d.opd_arrivedate,'yyyymm') = '" + date
+					+ "')";
 			List<OutPlan> meOutPlans = commonDao.query(sql, OutPlan.class);
 			List<OutPlan> meOutPlans = commonDao.query(sql, OutPlan.class);
 			List<OutPlanInfo> planInfos = new ArrayList<OutPlanInfo>();
 			List<OutPlanInfo> planInfos = new ArrayList<OutPlanInfo>();
 			if (!CollectionUtils.isEmpty(meOutPlans)) {
 			if (!CollectionUtils.isEmpty(meOutPlans)) {
@@ -66,7 +68,7 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 					info.setMp_recorder(ou.getMp_recorder());
 					info.setMp_recorder(ou.getMp_recorder());
 					info.setMp_code(ou.getMp_code());
 					info.setMp_code(ou.getMp_code());
 					info.setMp_recordercode(ou.getRecorderCode());
 					info.setMp_recordercode(ou.getRecorderCode());
-					List<OutPlanDetail> details = OutPlanDetailDao.findByOutPlan(ou);
+					List<OutPlanDetail> details = outPlanDetailDao.findByOutPlan(ou);
 					if (!CollectionUtils.isEmpty(details)) {
 					if (!CollectionUtils.isEmpty(details)) {
 						for (OutPlanDetail detail : details) {
 						for (OutPlanDetail detail : details) {
 							info.setMpd_distance(detail.getMpd_distance());
 							info.setMpd_distance(detail.getMpd_distance());
@@ -89,7 +91,7 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 					+ "t.ta_doman doman, t.ta_domancode domancode, t.ta_startdate startdate, t.ta_enddate enddate, t.ta_status status, "
 					+ "t.ta_doman doman, t.ta_domancode domancode, t.ta_startdate startdate, t.ta_enddate enddate, t.ta_status status, "
 					+ "t.ta_statuscode statuscode, t.ta_recorddate recorddate, t.ta_uu uu, t.ta_taskname taskname  from office$task t where "
 					+ "t.ta_statuscode statuscode, t.ta_recorddate recorddate, t.ta_uu uu, t.ta_taskname taskname  from office$task t where "
 					+ "ta_uu = " + enuu + " and ta_recordercode = " + emcode
 					+ "ta_uu = " + enuu + " and ta_recordercode = " + emcode
-					+ " and  to_char(ta_recorddate,'yyyymm') = '" + date + "'";
+					+ " and  to_char(ta_startdate,'yyyymm') = '" + date + "'";
 			List<OfficeTask> task = commonDao.query(taskSql, OfficeTask.class);
 			List<OfficeTask> task = commonDao.query(taskSql, OfficeTask.class);
 			List<VisitRecord> records = getRecordsInOneMonth(emcode, enuu, date);
 			List<VisitRecord> records = getRecordsInOneMonth(emcode, enuu, date);
 			workSchedule.setTask(task);
 			workSchedule.setTask(task);
@@ -98,7 +100,16 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 			map.put("me", workSchedule);
 			map.put("me", workSchedule);
 			if (user.getIsAdmin().equals(Constant.YES)) {// 管理员,获取下属任务等
 			if (user.getIsAdmin().equals(Constant.YES)) {// 管理员,获取下属任务等
 				WorkSchedule workSchedules = new WorkSchedule();
 				WorkSchedule workSchedules = new WorkSchedule();
-				List<OutPlan> outPlans = outPlanDao.findByEnuu(enuu);
+				String outsql = "select o.op_id mp_id, o.op_recorder mp_recorder, o.op_recordercode recordercode, o.op_code mp_code, "
+						+ "o.op_address mp_address, o.op_visittime mp_visittime, o.op_enuu enuu, o.op_recorddate mp_recorddate, "
+						+ "o.op_arrivedate mp_arrivedate from mobile$outplan o where exists (select d.opd_id mpd_id, d.opd_code pd_code, "
+						+ "d.opd_recordercode mpd_recordercode, d.opd_recorder mpd_recorder, d.opd_address mpd_address, d.opd_kind mpd_kind, "
+						+ "d.opd_detno mpd_detno, d.opd_remark mpd_remark, d.opd_location mpd_location, d.opd_enuu enuu, d.opd_arrivedate mpd_arrivedate, "
+						+ "d.opd_actdate mpd_actdate, d.opd_outdate mpd_outdate, d.opd_recorddate mpd_recorddate, d.opd_status mpd_status, d.opd_statuscode mpd_statuscode, "
+						+ "d.opd_distance mpd_distance, d.opd_longitude mpd_longitude, d.opd_latitude mpd_latitude, d.opd_company mpd_company, d.opd_firsttime mpd_firsttime, "
+						+ "d.opd_lasttime mpd_lasttime from mobile$outplandetail d where d.opd_opid = o.op_id and o.op_enuu = "
+						+ enuu + " and to_char(d.opd_arrivedate,'yyyymm') = '" + date + "')";
+				List<OutPlan> outPlans = commonDao.query(outsql, OutPlan.class);
 				List<OutPlanInfo> othOutPlans = new ArrayList<OutPlanInfo>();
 				List<OutPlanInfo> othOutPlans = new ArrayList<OutPlanInfo>();
 				if (!CollectionUtils.isEmpty(outPlans)) {
 				if (!CollectionUtils.isEmpty(outPlans)) {
 					for (OutPlan plan : outPlans) {
 					for (OutPlan plan : outPlans) {
@@ -107,8 +118,9 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 							info.setMp_recorder(plan.getMp_recorder());
 							info.setMp_recorder(plan.getMp_recorder());
 							info.setMp_code(plan.getMp_code());
 							info.setMp_code(plan.getMp_code());
 							info.setMp_recordercode(plan.getRecorderCode());
 							info.setMp_recordercode(plan.getRecorderCode());
-							if (!CollectionUtils.isEmpty(plan.getOutPlanDetails())) {
-								for (OutPlanDetail detail : plan.getOutPlanDetails()) {
+							List<OutPlanDetail> outplandetails = outPlanDetailDao.findByOutPlan(plan);
+							if (!CollectionUtils.isEmpty(outplandetails)) {
+								for (OutPlanDetail detail : outplandetails) {
 									info.setMpd_distance(detail.getMpd_distance());
 									info.setMpd_distance(detail.getMpd_distance());
 									info.setMpd_address(detail.getMpd_address());
 									info.setMpd_address(detail.getMpd_address());
 									info.setMpd_actdate(detail.getMpd_actdate());
 									info.setMpd_actdate(detail.getMpd_actdate());
@@ -134,8 +146,10 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 				List<OfficeTask> othTasks = new ArrayList<OfficeTask>();
 				List<OfficeTask> othTasks = new ArrayList<OfficeTask>();
 				if (!CollectionUtils.isEmpty(tasks)) {
 				if (!CollectionUtils.isEmpty(tasks)) {
 					for (OfficeTask ta : tasks) {
 					for (OfficeTask ta : tasks) {
-						if (!ta.getDomancode().equals(emcode)) {
-							othTasks.add(ta);
+						if (ta.getDomancode() != null) {
+							if (!ta.getDomancode().equals(emcode)) {
+								othTasks.add(ta);
+							}
 						}
 						}
 					}
 					}
 				}
 				}