Browse Source

更新移动端接口

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7420 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 years ago
parent
commit
577f46798e
20 changed files with 190 additions and 43 deletions
  1. 12 0
      src/main/java/com/uas/platform/b2b/mobile/dao/VisitRecordDao.java
  2. 0 1
      src/main/java/com/uas/platform/b2b/mobile/model/OutPlan.java
  3. 28 0
      src/main/java/com/uas/platform/b2b/mobile/model/OutPlanDetail.java
  4. 7 11
      src/main/java/com/uas/platform/b2b/mobile/model/OutSign.java
  5. 5 0
      src/main/java/com/uas/platform/b2b/mobile/model/WorkDaily.java
  6. 31 7
      src/main/java/com/uas/platform/b2b/mobile/service/impl/ClockAddressServiceImpl.java
  7. 4 3
      src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java
  8. 4 0
      src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileFlowServiceImpl.java
  9. 1 0
      src/main/java/com/uas/platform/b2b/mobile/service/impl/OutAddressServiceImpl.java
  10. 3 1
      src/main/java/com/uas/platform/b2b/mobile/service/impl/OutPlanServiceImpl.java
  11. 25 0
      src/main/java/com/uas/platform/b2b/mobile/service/impl/OutSignServiceImpl.java
  12. 0 2
      src/main/java/com/uas/platform/b2b/mobile/service/impl/PublicInterForDetailServiceImpl.java
  13. 6 4
      src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java
  14. 13 2
      src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkDailyServiceImpl.java
  15. 6 2
      src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkOvertimeServiceImpl.java
  16. 6 2
      src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkScheduleServiceImpl.java
  17. 2 6
      src/main/java/com/uas/platform/b2b/service/impl/ApprovalFlowServiceImpl.java
  18. 6 1
      src/main/java/com/uas/platform/b2b/temporary/model/AuditInfoDone.java
  19. 6 1
      src/main/java/com/uas/platform/b2b/temporary/model/AuditInfoTodo.java
  20. 25 0
      src/main/java/com/uas/platform/b2b/temporary/model/OutPlanInfo.java

+ 12 - 0
src/main/java/com/uas/platform/b2b/mobile/dao/VisitRecordDao.java

@@ -0,0 +1,12 @@
+package com.uas.platform.b2b.mobile.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.mobile.model.VisitRecord;
+
+@Repository
+public interface VisitRecordDao extends JpaRepository<VisitRecord, Long>, JpaSpecificationExecutor<VisitRecord> {
+
+}

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

@@ -176,5 +176,4 @@ public class OutPlan implements Serializable {
 	public void setOutPlanDetails(Set<OutPlanDetail> outPlanDetails) {
 		this.outPlanDetails = outPlanDetails;
 	}
-
 }

+ 28 - 0
src/main/java/com/uas/platform/b2b/mobile/model/OutPlanDetail.java

@@ -162,6 +162,18 @@ public class OutPlanDetail implements Serializable {
 	@Column(name = "opd_company")
 	private String mpd_company;
 
+	/**
+	 * 第一次签到时间
+	 */
+	@Column(name = "opd_firsttime")
+	private Date mpd_firsttime;
+
+	/**
+	 * 最后一次签到时间
+	 */
+	@Column(name = "opd_lasttime")
+	private Date mpd_lasttime;
+
 	public Long getMpd_id() {
 		return mpd_id;
 	}
@@ -332,4 +344,20 @@ public class OutPlanDetail implements Serializable {
 		this.mpd_company = mpd_company;
 	}
 
+	public Date getMpd_firsttime() {
+		return mpd_firsttime;
+	}
+
+	public void setMpd_firsttime(Date mpd_firsttime) {
+		this.mpd_firsttime = mpd_firsttime;
+	}
+
+	public Date getMpd_lasttime() {
+		return mpd_lasttime;
+	}
+
+	public void setMpd_lasttime(Date mpd_lasttime) {
+		this.mpd_lasttime = mpd_lasttime;
+	}
+
 }

+ 7 - 11
src/main/java/com/uas/platform/b2b/mobile/model/OutSign.java

@@ -3,14 +3,11 @@ package com.uas.platform.b2b.mobile.model;
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
@@ -72,11 +69,10 @@ public class OutSign implements Serializable {
 	private Long emcode;
 
 	/**
-	 * 外勤计划
+	 * 外勤计划id
 	 */
-	@OneToOne(cascade = { CascadeType.REFRESH })
-	@JoinColumn(name = "sign_opid", insertable = false, updatable = false)
-	private OutPlan outplan;
+	@Column(name = "sign_mpdid")
+	private Long mpd_id;
 
 	public Long getMo_id() {
 		return mo_id;
@@ -134,12 +130,12 @@ public class OutSign implements Serializable {
 		this.emcode = emcode;
 	}
 
-	public OutPlan getOutplan() {
-		return outplan;
+	public Long getMpd_id() {
+		return mpd_id;
 	}
 
-	public void setOutplan(OutPlan outplan) {
-		this.outplan = outplan;
+	public void setMpd_id(Long mpd_id) {
+		this.mpd_id = mpd_id;
 	}
 
 }

+ 5 - 0
src/main/java/com/uas/platform/b2b/mobile/model/WorkDaily.java

@@ -11,6 +11,8 @@ import javax.persistence.Id;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
 
+import org.hibernate.validator.constraints.Length;
+
 /**
  * 工作日报
  * 
@@ -57,18 +59,21 @@ public class WorkDaily implements Serializable {
 	 * 工作总结
 	 */
 	@Column(name = "wd_comment")
+	@Length(max = 4000)
 	private String wd_comment;
 
 	/**
 	 * 工作计划
 	 */
 	@Column(name = "wd_plan")
+	@Length(max = 4000)
 	private String wd_plan;
 
 	/**
 	 * 工作心得
 	 */
 	@Column(name = "wd_experience")
+	@Length(max = 4000)
 	private String wd_experience;
 
 	/**

+ 31 - 7
src/main/java/com/uas/platform/b2b/mobile/service/impl/ClockAddressServiceImpl.java

@@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.mobile.dao.ClockAddressDao;
 import com.uas.platform.b2b.mobile.model.ClockAddress;
 import com.uas.platform.b2b.mobile.service.ClockAddressService;
@@ -17,6 +19,9 @@ public class ClockAddressServiceImpl implements ClockAddressService {
 	@Autowired
 	private ClockAddressDao clockAddressDao;
 
+	@Autowired
+	private UserBaseInfoDao userBaseInfoDao;
+
 	@Override
 	public ModelMap getSignCardAddress(Long enuu) {
 		ModelMap map = new ModelMap();
@@ -26,15 +31,34 @@ public class ClockAddressServiceImpl implements ClockAddressService {
 
 	@Override
 	public ModelMap saveSignCardAddress(ClockAddress address) {
+		System.out.println("address " + JSON.toJSON(address));
 		ModelMap map = new ModelMap();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyMMHHss");
-		address.setCs_code(sdf.format(new Date()));
-		address.setCs_recorddate(new Date());
-		address = clockAddressDao.save(address);
-		if (address.getCs_id() != null) {
-			map.put("success", true);
+		if (address.getCs_id() == null) {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyMMHHss");
+			address.setCs_code(sdf.format(new Date()));
+			address.setCs_recorddate(new Date());
+			address.setCs_recorder(userBaseInfoDao.findByUserUU(address.getEmcode()).getUserName());
+			address = clockAddressDao.save(address);
+			if (address.getCs_id() != null) {
+				map.put("success", true);
+			} else {
+				map.put("success", false);
+			}
 		} else {
-			map.put("success", false);
+			ClockAddress addr = clockAddressDao.findOne(address.getCs_id());
+			addr.setCs_recorddate(new Date());
+			addr.setCs_recorder(userBaseInfoDao.findByUserUU(address.getEmcode()).getUserName());
+			addr.setCs_validrange(address.getCs_validrange());
+			addr.setCs_innerdistance(address.getCs_innerdistance());
+			addr.setCs_latitude(address.getCs_latitude());
+			addr.setCs_longitude(address.getCs_longitude());
+			addr.setShortname(address.getShortname());
+			addr.setCs_workaddr(address.getCs_workaddr());
+			addr.setEmcode(address.getEmcode());
+			addr.setEnuu(address.getEnuu());
+			System.out.println("addr " + JSON.toJSON(addr));
+			clockAddressDao.save(addr);
+			map.put("success", true);
 		}
 		return map;
 	}

+ 4 - 3
src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java

@@ -104,8 +104,9 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 		String appName = "出差单";
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(feePlease.getEnuu(),
 				feePlease.getEmcode(), appName);
-		if (node != null) {
-			if (node.getNodelev() < approvalFlowService.getMaxNodeByEnuuAndAppName(feePlease.getEnuu(), 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());
@@ -130,6 +131,7 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 					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);
@@ -154,7 +156,6 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 					}
 				}
 			}
-		}
 		return map;
 	}
 

+ 4 - 0
src/main/java/com/uas/platform/b2b/mobile/service/impl/MobileFlowServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.mobile.service.impl;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -114,6 +115,7 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 				todo.setJp_nodename(op.getNodename());
 				todo.setJp_status(op.getStatus());
 				autodos.add(todo);
+				Collections.sort(autodos);
 			}
 		}
 		map.put("data", autodos);
@@ -153,6 +155,7 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 				done.setJp_name(log.getNodename());
 				done.setJp_nodeid(log.getSourceid());
 				dones.add(done);
+				Collections.sort(dones);
 			}
 		}
 		map.put("data", dones);
@@ -316,4 +319,5 @@ public class MobileFlowServiceImpl implements MobileFlowService {
 		return map;
 	}
 
+	
 }

+ 1 - 0
src/main/java/com/uas/platform/b2b/mobile/service/impl/OutAddressServiceImpl.java

@@ -22,6 +22,7 @@ public class OutAddressServiceImpl implements OutAddressService {
 
 	@Autowired
 	private OutAddressDao outAddressDao;
+
 	@Override
 	public ModelMap saveOutAddress(OutAddress outAddress) {
 		ModelMap map = new ModelMap();

+ 3 - 1
src/main/java/com/uas/platform/b2b/mobile/service/impl/OutPlanServiceImpl.java

@@ -73,7 +73,7 @@ public class OutPlanServiceImpl implements OutPlanService {
 		for (OutPlan outPlan : outPlans) {
 			String detailSql = "select p.opd_id mpd_id, p.opd_code mpd_code, p.opd_recordercode mpd_recordercode, p.opd_recorder mpd_recorder, p.opd_address mpd_address,"
 					+ "p.opd_kind mpd_kind, p.opd_detno mpd_detno, p.opd_remark mpd_remark, p.opd_location mpd_location, p.opd_enuu mpd_enuu, p.opd_arrivedate mpd_arrivedate,"
-					+ "p.opd_actdate mpd_actdate, p.opd_outdate mpd_outdate, p.opd_recorddate mpd_recorddate, p.opd_status mpd_status, p.opd_statuscode mpd_statuscode, p.opd_longitude longitude,p.opd_latitude latitude, p.opd_distance mpd_distance, p.opd_company mpd_company from mobile$outplandetail p where opd_opid = ?"
+					+ "p.opd_actdate mpd_actdate, p.opd_outdate mpd_outdate, p.opd_recorddate mpd_recorddate, p.opd_status mpd_status, p.opd_statuscode mpd_statuscode, p.opd_longitude longitude,p.opd_latitude latitude, p.opd_distance mpd_distance, p.opd_company mpd_company, p.opd_firsttime mpd_firsttime, p.opd_lasttime mpd_lasttime from mobile$outplandetail p where opd_opid = ?"
 					+ " and opd_arrivedate>=to_char(sysdate) and opd_arrivedate<to_char(sysdate+1) order by opd_id desc";
 			List<OutPlanDetail> details = commonDao.query(detailSql, OutPlanDetail.class, outPlan.getMp_id());
 			for (OutPlanDetail detail : details) {
@@ -99,6 +99,8 @@ public class OutPlanServiceImpl implements OutPlanService {
 				info.setMpd_remark(detail.getMpd_remark());
 				info.setMpd_status(detail.getMpd_status());
 				info.setMpd_company(detail.getMpd_company());
+				info.setMp_firsttime(detail.getMpd_firsttime());
+				info.setMp_lasttime(detail.getMpd_lasttime());
 				infos.add(info);
 			}
 			Set<OutPlanDetail> planDetails = new HashSet<OutPlanDetail>();

+ 25 - 0
src/main/java/com/uas/platform/b2b/mobile/service/impl/OutSignServiceImpl.java

@@ -1,10 +1,15 @@
 package com.uas.platform.b2b.mobile.service.impl;
 
+import java.util.Date;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
+import com.uas.platform.b2b.mobile.dao.OutPlanDetailDao;
 import com.uas.platform.b2b.mobile.dao.OutSignDao;
+import com.uas.platform.b2b.mobile.model.OutPlanDetail;
 import com.uas.platform.b2b.mobile.model.OutSign;
 import com.uas.platform.b2b.mobile.service.OutSignService;
 
@@ -14,10 +19,30 @@ public class OutSignServiceImpl implements OutSignService {
 	@Autowired
 	private OutSignDao outSignDao;
 
+	@Autowired
+	private OutPlanDetailDao outPlanDetailDao;
+
+	@Autowired
+	private UserBaseInfoDao userBaseInfoDao;
+
 	@Override
 	public ModelMap saveOutSign(OutSign outSign) {
 		ModelMap map = new ModelMap();
+		outSign.setMo_signtime(new Date());
+		outSign.setMo_man(userBaseInfoDao.findByUserUU(outSign.getEmcode()).getUserName());
 		outSignDao.save(outSign);
+		if (outSign.getMpd_id() != null) { // 更新外勤计划中的签到时间
+			OutPlanDetail detail = outPlanDetailDao.findOne(outSign.getMpd_id());
+			if (detail != null) {
+				if (detail.getMpd_firsttime() == null) {// 更新第一次和最后一次签到时间,如果第一次存在,则只更新最后一次时间
+					detail.setMpd_firsttime(new Date());
+					detail.setMpd_lasttime(new Date());
+				} else {
+					detail.setMpd_lasttime(new Date());
+				}
+				outPlanDetailDao.save(detail);
+			}
+		}
 		map.put("success", true);
 		return map;
 	}

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

@@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
-import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.mobile.dao.AppFlowOperationDao;
 import com.uas.platform.b2b.mobile.dao.ApprovalLogDao;
@@ -142,7 +141,6 @@ public class PublicInterForDetailServiceImpl implements PublicInterForDetailServ
 					}
 				}
 				List<AppFlowOperation> operations = appFlowOperationDao.findBySourceid(id);
-				System.out.println("operations->" + JSON.toJSON(operations));
 				if (!CollectionUtils.isEmpty(operations)) {
 					for (AppFlowOperation op : operations) {
 						appFlowOperationDao.delete(op.getId());

+ 6 - 4
src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java

@@ -106,8 +106,11 @@ public class VacationServiceImpl implements VacationService {
 		String appName = "请假单";
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(vacation.getEnuu(),
 				vacation.getEmcode(), appName);
+		Integer nodelevel = 0;
 		if (node != null) {
-			if (node.getNodelev() <= approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName)) {
+			nodelevel = node.getNodelev();
+		}
+		if (nodelevel <= approvalFlowService.getMaxNodeByEnuuAndAppName(vacation.getEnuu(), appName)) {
 				AppLog log = new AppLog();
 				log.setStatus(MobileStatus.ENTERING.getPhrase());
 				log.setStatusCode(MobileStatus.ENTERING.name());
@@ -126,8 +129,8 @@ public class VacationServiceImpl implements VacationService {
 					applog.setProcessid(approvalFlowService
 							.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
-					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName,
-							node.getNodelev());
+				node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(vacation.getEnuu(), appName,
+						nodelevel);
 					if (applog.getId() != null) {
 						// 新增待审批
 						AppFlowOperation operation = new AppFlowOperation();
@@ -154,7 +157,6 @@ public class VacationServiceImpl implements VacationService {
 					}
 				}
 			}
-		}
 		return map;
 	}
 

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

@@ -14,6 +14,7 @@ import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
+import com.uas.platform.b2b.dao.ApprovalFlowDao;
 import com.uas.platform.b2b.dao.UserBaseInfoDao;
 import com.uas.platform.b2b.mobile.dao.AppFlowOperationDao;
 import com.uas.platform.b2b.mobile.dao.ApprovalLogDao;
@@ -24,6 +25,7 @@ import com.uas.platform.b2b.mobile.model.AppLog;
 import com.uas.platform.b2b.mobile.model.ApprovalLog;
 import com.uas.platform.b2b.mobile.model.WorkDaily;
 import com.uas.platform.b2b.mobile.service.WorkDailyService;
+import com.uas.platform.b2b.model.ApprovalFlow;
 import com.uas.platform.b2b.model.FlowNode;
 import com.uas.platform.b2b.service.ApprovalFlowService;
 import com.uas.platform.core.model.PageInfo;
@@ -47,6 +49,9 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 	@Autowired
 	private UserBaseInfoDao userBaseInfoDao;
 
+	@Autowired
+	private ApprovalFlowDao approvalFlowDao;
+
 	@Override
 	public ModelMap saveWorkDaily(WorkDaily workDaily) {
 		ModelMap map = new ModelMap();
@@ -69,16 +74,22 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 			daily.setWd_comment(workDaily.getWd_comment());
 			daily.setWd_plan(workDaily.getWd_plan());
 			daily.setWd_experience(workDaily.getWd_experience());
+			daily.setWd_emp(userBaseInfoDao.findByUserUU(workDaily.getEmcode()).getUserName());
 			daily = workDailyDao.save(daily);
 		}
 		map.put("data", daily);
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		String appName = "工作日报";
+		ApprovalFlow flow = approvalFlowDao.findByEnuuAndAppname(workDaily.getEnuu(), appName);
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(workDaily.getEnuu(),
 				workDaily.getEmcode(), appName);
+		Integer nodelevel = 0;
 		if (node != null) {
-			if (node.getNodelev() < approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(), appName)) {
+			nodelevel = node.getNodelev();
+		}
+		if (flow != null) { // 该企业的该单据的审批流存在
+			if (nodelevel <= approvalFlowService.getMaxNodeByEnuuAndAppName(workDaily.getEnuu(), appName)) {
 				AppLog log = new AppLog();
 				log.setStatus(MobileStatus.ENTERING.getPhrase());
 				log.setStatusCode(MobileStatus.ENTERING.name());
@@ -99,7 +110,7 @@ public class WorkDailyServiceImpl implements WorkDailyService {
 							.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workDaily.getEnuu(), appName,
-							node.getNodelev());
+							nodelevel);
 					if (applog.getId() != null) {
 						workDaily = workDailyDao.findOne(workDaily.getWd_id());
 						workDaily.setWd_status(MobileStatus.COMMITED.getPhrase());

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

@@ -119,8 +119,12 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 		String appName = "加班单";
 		FlowNode node = approvalFlowService.getNodeInfoByEnuuAndEmcodeAndAppName(workOvertime.getEnuu(),
 				workOvertime.getEmcode(), appName);
+		Integer nodelevel = 0;
 		if (node != null) {
-			if (node.getNodelev() < approvalFlowService.getMaxNodeByEnuuAndAppName(workOvertime.getEnuu(), appName)) {
+			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());
@@ -141,7 +145,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 							.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName, i).getId());
 					applog = approvalLogDao.save(applog);
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName,
-							node.getNodelev());
+							nodelevel);
 					if (applog.getId() != null) {
 						workOvertime = workOvertimeDao.findOne(id);
 						workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());

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

@@ -13,10 +13,10 @@ import org.springframework.ui.ModelMap;
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.OfficeTaskDao;
 import com.uas.platform.b2b.dao.UserBaseInfoDao;
-import com.uas.platform.b2b.mobile.VisitRecordDao;
 import com.uas.platform.b2b.mobile.dao.OutPlanDao;
 import com.uas.platform.b2b.mobile.dao.OutSignDao;
 import com.uas.platform.b2b.mobile.dao.UserCenterDao;
+import com.uas.platform.b2b.mobile.dao.VisitRecordDao;
 import com.uas.platform.b2b.mobile.enumeration.MobileStatus;
 import com.uas.platform.b2b.mobile.model.OutPlan;
 import com.uas.platform.b2b.mobile.model.OutPlanDetail;
@@ -78,6 +78,8 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 							info.setMpd_status(detail.getMpd_status());
 							info.setMpd_outdate(detail.getMpd_outdate());
 							info.setMpd_arrivedate(detail.getMpd_arrivedate());
+							info.setMp_firsttime(detail.getMpd_firsttime());
+							info.setMp_lasttime(detail.getMpd_lasttime());
 						}
 					}
 					planInfos.add(info);
@@ -111,6 +113,8 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 									info.setMpd_status(detail.getMpd_status());
 									info.setMpd_outdate(detail.getMpd_outdate());
 									info.setMpd_arrivedate(detail.getMpd_arrivedate());
+									info.setMp_firsttime(detail.getMpd_firsttime());
+									info.setMp_lasttime(detail.getMpd_lasttime());
 									othOutPlans.add(info);
 								}
 							}
@@ -185,7 +189,7 @@ public class WorkScheduleServiceImpl implements WorkScheduleService {
 				+ "p.vr_title vr_title, p.vr_enddate vr_enddate, p.vr_cucontact vr_cucontact, p.vr_cuname vr_cuname from mobile$visitrecord p where "
 				+ "vr_emuu = " + emuu + " and vr_enuu = " + enuu
 				+ " and p.vr_date between add_months(sysdate,-1) and sysdate ";
-		List<VisitRecord> records = commonDao.queryForList(sql, VisitRecord.class);
+		List<VisitRecord> records = commonDao.query(sql, VisitRecord.class);
 		return records;
 	}
 

+ 2 - 6
src/main/java/com/uas/platform/b2b/service/impl/ApprovalFlowServiceImpl.java

@@ -80,12 +80,8 @@ public class ApprovalFlowServiceImpl implements ApprovalFlowService {
 				node.setNodelev(appNode.getLevel());
 				node.setPosition(appNode.getPosition());
 				node.setAppname(flowInfo.getAppName());
-				if (appNode.getLevel() == 0 && appNode.getLevel() == 0) {
-					node.setAuditor(Constant.NO);
-				} else {
-					node.setAuditor(Constant.YES);
-				}
-				if (appNode.getUseruu() != null && appNode.getLevel() != 0) {
+				node.setAuditor(Constant.YES);
+				if (appNode.getUseruu() != null) {
 					node.setNodename(userBaseInfoDao.findByUserUU(appNode.getUseruu()).getUserName() + "审批节点");
 				}
 				if (appNode.getPosition() != null) {

+ 6 - 1
src/main/java/com/uas/platform/b2b/temporary/model/AuditInfoDone.java

@@ -9,7 +9,7 @@ import java.util.Date;
  * @author hejq
  * @time 创建时间:2017年3月17日
  */
-public class AuditInfoDone implements Serializable {
+public class AuditInfoDone implements Serializable, Comparable<AuditInfoDone> {
 
 	/**
 	 * 
@@ -124,4 +124,9 @@ public class AuditInfoDone implements Serializable {
 		this.jp_launchername = jp_launchername;
 	}
 
+	@Override
+	public int compareTo(AuditInfoDone o) {
+		return o.jp_keyvalue.compareTo(this.jp_keyvalue);
+	}
+
 }

+ 6 - 1
src/main/java/com/uas/platform/b2b/temporary/model/AuditInfoTodo.java

@@ -9,7 +9,7 @@ import java.util.Date;
  * @author hejq
  * @time 创建时间:2017年3月17日
  */
-public class AuditInfoTodo implements Serializable {
+public class AuditInfoTodo implements Serializable, Comparable<AuditInfoTodo> {
 
 	/**
 	 * 
@@ -125,4 +125,9 @@ public class AuditInfoTodo implements Serializable {
 		this.jp_codevalue = jp_codevalue;
 	}
 
+	@Override
+	public int compareTo(AuditInfoTodo o) {
+		return o.jp_id.compareTo(this.jp_id);
+	}
+
 }

+ 25 - 0
src/main/java/com/uas/platform/b2b/temporary/model/OutPlanInfo.java

@@ -111,6 +111,15 @@ public class OutPlanInfo implements Serializable {
 	 */
 	private Long mp_recordercode;
 
+	/**
+	 * 第一次打卡时间
+	 */
+	private Date mp_firsttime;
+
+	/**
+	 * 最后一次打卡时间
+	 */
+	private Date mp_lasttime;
 
 	public Long getMpd_id() {
 		return mpd_id;
@@ -272,4 +281,20 @@ public class OutPlanInfo implements Serializable {
 		this.mp_recordercode = mp_recordercode;
 	}
 
+	public Date getMp_firsttime() {
+		return mp_firsttime;
+	}
+
+	public void setMp_firsttime(Date mp_firsttime) {
+		this.mp_firsttime = mp_firsttime;
+	}
+
+	public Date getMp_lasttime() {
+		return mp_lasttime;
+	}
+
+	public void setMp_lasttime(Date mp_lasttime) {
+		this.mp_lasttime = mp_lasttime;
+	}
+
 }