Bladeren bron

Merge remote-tracking branch 'origin/master'

zhengqiang 4 jaren geleden
bovenliggende
commit
b68b9d4e2e
21 gewijzigde bestanden met toevoegingen van 110 en 96 verwijderingen
  1. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/BusinessOutServiceImpl.java
  2. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/CustomerDiningRecordServiceImpl.java
  3. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/WorkOverServiceImpl.java
  4. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/business/service/RequestForLeaveInfoService.java
  5. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/AdjustShiftServiceImpl.java
  6. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/CarryThingsOutFactoryServiceImpl.java
  7. 3 3
      common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/RequestForLeaveInfoServiceImpl.java
  8. 2 2
      common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/SupplementWorkServiceImpl.java
  9. 15 17
      common/src/main/java/com/jpsoft/shinestar/modules/common/utils/StringUtils.java
  10. 3 1
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/dao/ProcessActivityDAO.java
  11. 3 1
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcessActivityService.java
  12. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcessSetService.java
  13. 1 1
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcinstService.java
  14. 6 1
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcessActivityServiceImpl.java
  15. 33 50
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcessSetServiceImpl.java
  16. 12 3
      common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcinstServiceImpl.java
  17. 10 0
      common/src/main/resources/mapper/workflow/ProcessActivity.xml
  18. 3 2
      web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/AdjustShiftApiController.java
  19. 4 3
      web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/RequestForLeaveController.java
  20. 7 4
      web/src/main/java/com/jpsoft/shinestar/modules/workflow/ProcessActivityController.java
  21. 1 1
      web/src/main/java/com/jpsoft/shinestar/scheduled/CancelLeaveTask.java

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/BusinessOutServiceImpl.java

@@ -455,7 +455,7 @@ public class BusinessOutServiceImpl implements BusinessOutService {
 
 
 
-        String procinstId = procinstService.addProcinst(businessOut.getId(),"出差",formId,personPopedom);
+        String procinstId = procinstService.addProcinst(businessOut.getId(),null,"出差",formId,personPopedom,null);
 
         businessOut.setProcinstId(procinstId);
 

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/CustomerDiningRecordServiceImpl.java

@@ -131,7 +131,7 @@ public class CustomerDiningRecordServiceImpl implements CustomerDiningRecordServ
         customerDiningRecord.setStatus("0");
         customerDiningRecord.setCreateTime(new Date());
 
-        String procinstId = procinstService.addProcinst(customerDiningRecord.getId(),"接待进餐",formId,personPopedom);
+        String procinstId = procinstService.addProcinst(customerDiningRecord.getId(),null,"接待进餐",formId,personPopedom,null);
 
         customerDiningRecord.setProcinstId(procinstId);
         insert(customerDiningRecord);

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/WorkOverServiceImpl.java

@@ -433,7 +433,7 @@ public class WorkOverServiceImpl implements WorkOverService {
 		if (!"3".equals(type)){
 
 			//创建审核流程id
-			String procinstId =  procinstService.addProcinst(workOver.getId(),"加班",formId,personPopedom);
+			String procinstId =  procinstService.addProcinst(workOver.getId(),null,"加班",formId,personPopedom,null);
 
 
 			workOver.setProcinstId(procinstId);

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/RequestForLeaveInfoService.java

@@ -32,7 +32,7 @@ public interface RequestForLeaveInfoService {
 
     void approvalRequestForLeave(PersonInfo personInfo, String id, String approvalOpinions, String approvalExplain, int status) throws Exception;
 
-    String leaveSubmit(PersonPopedom personPopedom, String type, String startTime, String endTime, String startTimeQuantum, String endTimeQuantum, String imageUrl, String reason, String days, String formId) throws Exception;
+    String leaveSubmit(PersonPopedom personPopedom, String type, String startTime, String endTime, String startTimeQuantum, String endTimeQuantum, String imageUrl, String reason, String days, String formId,String activityId) throws Exception;
 
 	List<RequestForLeaveInfo> findByPersonIdAndAttendanceDate(Long personId, Date attendanceDate);
 

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/AdjustShiftServiceImpl.java

@@ -203,7 +203,7 @@ public class AdjustShiftServiceImpl implements AdjustShiftService {
 
        // String procinstId = ((ProcinstService)AopContext.currentProxy()).addProcinst(adjustShift.getId(),"调班",formId,personPopedom);
 
-            String procinstId =  procinstService.addProcinst(adjustShift.getId(),"调班",formId,personPopedom);
+            String procinstId =  procinstService.addProcinst(adjustShift.getId(),null,"调班",formId,personPopedom,null);
 
 
             adjustShift.setProcinstId(procinstId);

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/CarryThingsOutFactoryServiceImpl.java

@@ -122,7 +122,7 @@ public class CarryThingsOutFactoryServiceImpl implements CarryThingsOutFactorySe
 		carryThingsOutFactory.setCreateTime(new Date());
 
 
-		String procinstId  = procinstService.addProcinst(carryThingsOutFactory.getId(),"携物出厂",formId,personPopedom);
+		String procinstId  = procinstService.addProcinst(carryThingsOutFactory.getId(),null,"携物出厂",formId,personPopedom,null);
 
 		carryThingsOutFactory.setProcinstId(procinstId);
 		insert(carryThingsOutFactory);

+ 3 - 3
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/RequestForLeaveInfoServiceImpl.java

@@ -514,7 +514,7 @@ public class RequestForLeaveInfoServiceImpl implements RequestForLeaveInfoServic
 	}
 
 	@Override
-	public String leaveSubmit(PersonPopedom personPopedom, String leaveType, String startTime, String endTime, String startTimeQuantum, String endTimeQuantum, String imageUrl, String reason, String days,String formId) throws Exception{
+	public String leaveSubmit(PersonPopedom personPopedom, String leaveType, String startTime, String endTime, String startTimeQuantum, String endTimeQuantum, String imageUrl, String reason, String days,String formId,String activity) throws Exception{
 
 
 
@@ -565,7 +565,7 @@ public class RequestForLeaveInfoServiceImpl implements RequestForLeaveInfoServic
 			String id = requestForLeaveInfo.getId();
 
 
-			String procinstId = procinstService.addProcinst(id,"请假",formId,personPopedom);
+			String procinstId = procinstService.addProcinst(id,days,"请假",formId,personPopedom,activity);
 
 
 			requestForLeaveInfo.setProcinstId(procinstId);
@@ -708,7 +708,7 @@ public class RequestForLeaveInfoServiceImpl implements RequestForLeaveInfoServic
 		ProcessTemplate processTemplate = processTemplateService.get(templateDepartment.getProcessTemplateId());
 
 	//	List<ProcessActivity> processActivityList = processActivityService.findByTemplateIdAndRoleId(processTemplate.getId(),personPopedom.getPersonRoleId());
-		ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(requestForLeaveInfo.getProcinstId(), processTemplate.getId(), personPopedom, 1);
+		ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(requestForLeaveInfo.getProcinstId(), processTemplate.getId(), personPopedom, 1,null);
 
 		List<String> personIdList = Arrays.asList(examinePersonDTO.getPersonIds().split(","));
 		if (personIdList.size() > 0) {

+ 2 - 2
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/SupplementWorkServiceImpl.java

@@ -152,7 +152,7 @@ public class SupplementWorkServiceImpl implements SupplementWorkService {
 		workScheduleAttendanceService.update(workScheduleAttendance);
 
 		//创建审核流程id
-		String procinstId =  procinstService.addProcinst(supplementWork.getId(),"补卡",formId,personPopedom);
+		String procinstId =  procinstService.addProcinst(supplementWork.getId(),null,"补卡",formId,personPopedom,null);
 
 		supplementWork.setProcinstId(procinstId);
 		update(supplementWork);
@@ -245,7 +245,7 @@ public class SupplementWorkServiceImpl implements SupplementWorkService {
 		}
 
 		//创建审核流程id
-		String procinstId =  procinstService.addProcinst(supplementWork.getId(),"补卡",formId,personPopedom);
+		String procinstId =  procinstService.addProcinst(supplementWork.getId(),null,"补卡",formId,personPopedom,null);
 
 
 		supplementWork.setProcinstId(procinstId);

+ 15 - 17
common/src/main/java/com/jpsoft/shinestar/modules/common/utils/StringUtils.java

@@ -3,15 +3,18 @@ package com.jpsoft.shinestar.modules.common.utils;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.Week;
 import com.jpsoft.shinestar.modules.base.entity.BusinessOut;
+import com.jpsoft.shinestar.modules.business.entity.RequestForLeaveInfo;
+import com.sun.org.apache.xpath.internal.operations.Bool;
+import org.springframework.expression.EvaluationContext;
+import org.springframework.expression.ExpressionParser;
+import org.springframework.expression.spel.standard.SpelExpressionParser;
+import org.springframework.expression.spel.support.StandardEvaluationContext;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Random;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * 字符串工具类,继承lang3字符串工具类
@@ -182,20 +185,15 @@ public final class StringUtils extends org.apache.commons.lang3.StringUtils {
 
 	public static void main(String[] args) {
 
-		BusinessOut businessOut = new BusinessOut();
-		businessOut.setStartTime(new Date());
-		String estimatedTime = "2";
-
-		if (estimatedTime.contains(".")){
-			Integer n  = estimatedTime.indexOf(".");
-			String days = estimatedTime.substring(0,n);
-			businessOut.setEstimatedDate(DateUtil.offsetDay(businessOut.getStartTime(),Integer.parseInt(days)));
-			businessOut.setEstimatedDate(DateUtil.offsetHour(businessOut.getEstimatedDate(),4));
-		}else {
-			businessOut.setEstimatedDate(DateUtil.offsetDay(businessOut.getStartTime(),Integer.parseInt(estimatedTime)));
-		}
+		ExpressionParser parser = new SpelExpressionParser();
+		Double days = Double.parseDouble("7.5");
+		EvaluationContext ctx = new StandardEvaluationContext();
+		ctx.setVariable("days", days);
+		Boolean value = (Boolean) parser.parseExpression("#days <7 && #days>2").getValue(ctx);
+
+
+		System.out.println(value);
 
 
-		System.out.println(businessOut);
 	}
 }

+ 3 - 1
common/src/main/java/com/jpsoft/shinestar/modules/workflow/dao/ProcessActivityDAO.java

@@ -21,7 +21,9 @@ public interface ProcessActivityDAO {
 	List<ProcessActivity> findByTemplateId(@Param("templateId") String templateId, @Param("personRoleId")String personRoleId);
 	List<ProcessActivity> search(Map<String,Object> searchParams,List<Sort> sortList);
 	ProcessActivity findByActivityOrder(int activityOrder);
-    ProcessActivity findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId);
+    List<ProcessActivity> findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId);
 
 	List<ProcessActivity> findByTemplateIdAndRoleId(String processTemplateId, String personRoleId);
+
+    List<ProcessActivity> findByTemplateIdAndRoleIdAndCondition(String processTemplateId, String personRoleId, String condition);
 }

+ 3 - 1
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcessActivityService.java

@@ -20,7 +20,9 @@ public interface ProcessActivityService {
 	List<ProcessActivity> findByTemplateId(String templateId,String personRoleId);
 	Page<ProcessActivity> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	ProcessActivity findByActivityOrder(int activityOrder);
-    ProcessActivity findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId);
+    List<ProcessActivity> findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId);
 
     List<ProcessActivity> findByTemplateIdAndRoleId(String processTemplateId, String personRoleId);
+
+    List<ProcessActivity> findByTemplateIdAndRoleIdAndCondition(String processTemplateId, String personRoleId, String condition);
 }

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcessSetService.java

@@ -18,5 +18,5 @@ public interface ProcessSetService {
 	List<ProcessSet> list();
 	Page<ProcessSet> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 
-	ExaminePersonDTO getExaminePerson(String procinstId, String processTemplateId, PersonPopedom personPopedom,Integer activityOrder) throws Exception;
+	ExaminePersonDTO getExaminePerson(String procinstId, String processTemplateId, PersonPopedom personPopedom,Integer activityOrder,String days) throws Exception;
 }

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/ProcinstService.java

@@ -19,7 +19,7 @@ public interface ProcinstService {
 
     Procinst findByBusinessKey(String businessKey);
 
-    String addProcinst(String businessKey, String businessName, String formId, PersonPopedom personPopedom) throws Exception;
+    String addProcinst(String businessKey,String days, String businessName, String formId, PersonPopedom personPopedom,String activityId) throws Exception;
 
     void revoke(PersonPopedom personPopedom, String id) throws Exception;
 }

+ 6 - 1
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcessActivityServiceImpl.java

@@ -314,7 +314,7 @@ public class ProcessActivityServiceImpl implements ProcessActivityService {
 	}
 
 	@Override
-	public ProcessActivity findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId) {
+	public List<ProcessActivity> findByActivityOrderProcessTemplateId(String personRoleId,int activityOrder, String processTemplateId) {
 		return processActivityDAO.findByActivityOrderProcessTemplateId(personRoleId,activityOrder,processTemplateId);
 	}
 
@@ -322,4 +322,9 @@ public class ProcessActivityServiceImpl implements ProcessActivityService {
 	public List<ProcessActivity> findByTemplateIdAndRoleId(String processTemplateId, String personRoleId) {
 		return processActivityDAO.findByTemplateIdAndRoleId(processTemplateId,personRoleId);
 	}
+
+	@Override
+	public List<ProcessActivity> findByTemplateIdAndRoleIdAndCondition(String processTemplateId, String personRoleId, String condition) {
+		return processActivityDAO.findByTemplateIdAndRoleIdAndCondition(processTemplateId,personRoleId,condition);
+	}
 }

+ 33 - 50
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcessSetServiceImpl.java

@@ -14,6 +14,10 @@ import com.jpsoft.shinestar.modules.workflow.entity.*;
 import com.jpsoft.shinestar.modules.workflow.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.expression.EvaluationContext;
+import org.springframework.expression.ExpressionParser;
+import org.springframework.expression.spel.standard.SpelExpressionParser;
+import org.springframework.expression.spel.support.StandardEvaluationContext;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import com.jpsoft.shinestar.modules.workflow.dao.ProcessSetDAO;
@@ -96,15 +100,41 @@ public class ProcessSetServiceImpl implements ProcessSetService {
     }
 
     @Override
-    public ExaminePersonDTO getExaminePerson(String procinstId, String processTemplateId, PersonPopedom personPopedom, Integer activityOrder) throws Exception {
+    public ExaminePersonDTO getExaminePerson(String procinstId, String processTemplateId, PersonPopedom personPopedom, Integer activityOrder,String days) throws Exception {
 
 
         ExaminePersonDTO examinePersonDTO = new ExaminePersonDTO();
-        ProcessActivity processActivity = processActivityService.findByActivityOrderProcessTemplateId(personPopedom.getPersonRoleId(), activityOrder, processTemplateId);
-        if (processActivity == null) {
+        List<ProcessActivity> processActivityList = processActivityService.findByActivityOrderProcessTemplateId(personPopedom.getPersonRoleId(), activityOrder, processTemplateId);
+        if (processActivityList.size() == 0) {
             throw new Exception("模板没有相应步骤配置");
         }
 
+        ProcessActivity processActivity = null;
+
+        if (StringUtils.isBlank(days)){
+            processActivity = processActivityList.get(0);
+        }else {
+            for (ProcessActivity processActivity1 : processActivityList){
+                if (StringUtils.isNotBlank(processActivity1.getCondition())){
+                    ExpressionParser parser = new SpelExpressionParser();
+                    Double day = Double.parseDouble(days);
+                    EvaluationContext ctx = new StandardEvaluationContext();
+                    ctx.setVariable("day", day);
+
+                    //#day <7 && #day>2
+                    Boolean value = (Boolean) parser.parseExpression(processActivity1.getCondition()).getValue(ctx);
+                    if (value){
+                        processActivity = processActivity1;
+                        break;
+                    }
+                }
+            }
+        }
+
+        if (processActivity ==null){
+            throw new Exception("模板相应步骤配置错误");
+        }
+
 
         String name = "";
         String personIds = "";
@@ -177,54 +207,7 @@ public class ProcessSetServiceImpl implements ProcessSetService {
                         }
                     }
                 }
-                //   }
-
-                /*else {
-                    if (StringUtils.isNotBlank(procinstId)) {
-                        Map<String, Object> searchParams = new HashMap<>();
-                        searchParams.put("procinstId", procinstId);
-                        searchParams.put("activityOrder", activityOrder);
-                        List<Sort> sortList = new ArrayList<>();
-                        sortList.add(new Sort("a.create_time", "desc"));
-                        Page<ProcinstActUser> page = procinstActUserService.pageSearch(searchParams, 1, 1, false, sortList);
-                        List<ProcinstActUser> procinstActUserList = page.getResult();
-                        if (procinstActUserList.size() == 0) {
-                            throw new Exception("审核第" + activityOrder + "步无对应直属领导审核人");
-                        }
-                        ProcinstActUser procinstActUser = procinstActUserList.get(0);
-                        PersonInfo personInfo = personInfoService.get(Long.parseLong(procinstActUser.getUserId()));
-                        PersonRoleInfo personRoleInfo = personRoleInfoService.get(personPopedom.getPersonRoleId());
-                        if (StringUtils.isBlank(personRoleInfo.getParentId())) {
-                            throw new Exception("审核第" + activityOrder + "步无对应直属领导审核人");
-                        }
-                        //直属上级角色
-                        PersonRoleInfo personRoleInfo1 = personRoleInfoService.get(personRoleInfo.getParentId());
-                        if (personRoleInfo1 != null) {
-                            List<String> roleIdsList = new ArrayList<>();
-                            roleIdsList.add(personRoleInfo1.getId());
-                            List<PersonPopedom> personPopedomList = personPopedomService.findByCompanyIdAndRoleIdList(personPopedom.getCompanyId(), roleIdsList);
-                            if (personPopedomList.size() == 0) {
-                                throw new Exception("审核第" + activityOrder + "步无对应直属领导审核人");
-                            }
-
-                            for (PersonPopedom personPopedom1 : personPopedomList) {
-                                PersonInfo personInfo1 = personInfoService.get(personPopedom1.getPersonId());
-                                if (StringUtils.isBlank(name)) {
-                                    name = personInfo1.getName();
-                                    personIds = personInfo1.getId().toString();
-                                } else {
-                                    name = name + "," + personInfo1.getName();
-                                    personIds = personIds + "," + personInfo1.getId();
-                                }
-                            }
-
-
-                        }
-
-                    }
-
 
-                }*/
             }
 
 

+ 12 - 3
common/src/main/java/com/jpsoft/shinestar/modules/workflow/service/impl/ProcinstServiceImpl.java

@@ -148,7 +148,7 @@ public class ProcinstServiceImpl implements ProcinstService {
 	}
 
 	@Override
-	public String addProcinst(String businessKey, String businessName, String formId, PersonPopedom personPopedom) throws Exception{
+	public String addProcinst(String businessKey,String days, String businessName, String formId, PersonPopedom personPopedom,String activityId) throws Exception{
 
 
 
@@ -171,15 +171,24 @@ public class ProcinstServiceImpl implements ProcinstService {
 		procinst.setCreateTime(new Date());
 		procinstService.insert(procinst);
 
-		List<ProcessActivity> processActivityList = processActivityService.findByTemplateIdAndRoleId(processTemplate.getId(),personPopedom.getPersonRoleId());
 
 
+	//	List<ProcessActivity> processActivityList = processActivityService.findByTemplateIdAndRoleId(processTemplate.getId(),personPopedom.getPersonRoleId());
+
+		List<ProcessActivity> processActivityList = null;
+		if (StringUtils.isNotBlank(activityId)){
+			ProcessActivity processActivity = processActivityService.get(activityId);
+			processActivityList = processActivityService.findByTemplateIdAndRoleIdAndCondition(processTemplate.getId(),personPopedom.getPersonRoleId(),processActivity.getCondition());
+		}else {
+			processActivityList = processActivityService.findByTemplateIdAndRoleId(processTemplate.getId(),personPopedom.getPersonRoleId());
+		}
+
 
 		for (int n = 1; n <= processActivityList.size(); n++) {
 
 
 
-				ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(procinst.getId(), processTemplate.getId(), personPopedom, n);
+				ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(procinst.getId(), processTemplate.getId(), personPopedom, n,days);
 
 
 			//创建流程主表

+ 10 - 0
common/src/main/resources/mapper/workflow/ProcessActivity.xml

@@ -147,4 +147,14 @@
 		and person_role_id = #{personRoleId}
 		]]>
 	</select>
+
+	<select id="findByTemplateIdAndRoleIdAndCondition" resultMap="ProcessActivityMap">
+		<![CDATA[
+		select * from wf_process_activity
+		where del_flag = 0
+		and process_template_id = #{processTemplateId}
+		and person_role_id = #{personRoleId}
+		and condition_ = #{condition}
+		]]>
+	</select>
 </mapper>

+ 3 - 2
web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/AdjustShiftApiController.java

@@ -285,7 +285,7 @@ public class AdjustShiftApiController {
 
     @ApiOperation(value = "根据条件获取审核人")
     @PostMapping(value = "examinePerson")
-    public MessageResult<Map> examinePerson(String token, @RequestAttribute String subject, String formId) {
+    public MessageResult<Map> examinePerson(String token, @RequestAttribute String subject, String formId,String days) {
 
 
         MessageResult<Map> messageResult = new MessageResult<>();
@@ -307,7 +307,7 @@ public class AdjustShiftApiController {
             ProcessTemplate processTemplate = processTemplateService.get(templateDepartment.getProcessTemplateId());
 
 
-            ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(null, processTemplate.getId(), personPopedom, 1);
+            ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(null, processTemplate.getId(), personPopedom, 1,days);
 
 
             if (StringUtils.isBlank(examinePersonDTO.getPersonNames())) {
@@ -322,6 +322,7 @@ public class AdjustShiftApiController {
             Map<String, Object> map = new HashMap<>();
             map.put("operation", operation);
             map.put("name", examinePersonDTO.getPersonNames());
+            map.put("processActivityId",examinePersonDTO.getActivityId());
 
             messageResult.setData(map);
             messageResult.setCode(200);

+ 4 - 3
web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/RequestForLeaveController.java

@@ -354,9 +354,10 @@ public class RequestForLeaveController {
             @ApiImplicitParam(name = "imageUrl", value = "上传照片", required = true, paramType = "form"),
             @ApiImplicitParam(name = "reason", value = "请假理由", required = true, paramType = "form"),
             @ApiImplicitParam(name = "days", value = "天数", required = true, paramType = "form"),
-            @ApiImplicitParam(name = "formId", value = "页面路径", required = true, paramType = "form")
+            @ApiImplicitParam(name = "formId", value = "页面路径", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "activityId", value = "步骤id", required = true, paramType = "form")
     })
-    public MessageResult<Map> leaveSubmit(String leaveType, String startTime, String endTime, String startTimeQuantum,String endTimeQuantum,String imageUrl,String reason,String days,String formId,String token, @RequestAttribute String subject) {
+    public MessageResult<Map> leaveSubmit(String leaveType, String startTime, String endTime, String startTimeQuantum,String endTimeQuantum,String imageUrl,String reason,String days,String formId,String activityId,String token, @RequestAttribute String subject) {
 
 
         MessageResult<Map> messageResult = new MessageResult<>();
@@ -365,7 +366,7 @@ public class RequestForLeaveController {
             PersonInfo person = personInfoService.get(Long.parseLong(subject));
             PersonPopedom personPopedom = personPopedomService.get(person.getPopedom());
 
-            String id = requestForLeaveInfoService.leaveSubmit(personPopedom, leaveType,startTime,endTime, startTimeQuantum, endTimeQuantum, imageUrl,reason,days,formId);
+            String id = requestForLeaveInfoService.leaveSubmit(personPopedom, leaveType,startTime,endTime, startTimeQuantum, endTimeQuantum, imageUrl,reason,days,formId,activityId);
 
             Map<String, Object> map = new HashMap<>();
             map.put("id", id);

+ 7 - 4
web/src/main/java/com/jpsoft/shinestar/modules/workflow/ProcessActivityController.java

@@ -1,5 +1,6 @@
 package com.jpsoft.shinestar.modules.workflow;
 
+import cn.hutool.core.util.StrUtil;
 import com.github.pagehelper.Page;
 import com.jpsoft.shinestar.modules.base.entity.CompanyInfo;
 import com.jpsoft.shinestar.modules.base.entity.PersonInfo;
@@ -79,22 +80,24 @@ public class ProcessActivityController {
         MessageResult<ProcessActivity> msgResult = new MessageResult<>();
 
         try {
+            String condition = processActivity.getCondition();
             processActivity.setId(UUID.randomUUID().toString());
             processActivity.setCreateBy(subject);
             processActivity.setCreateTime(new Date());
             processActivity.setDelFlag(false);
+            processActivity.setCondition(StrUtil.replace(condition," ",""));
 
             String processTemplateId = processActivity.getProcessTemplateId();
             String personRoleId = processActivity.getPersonRoleId();
 
             int activityOrder = 1;
 
-            List<ProcessActivity> list = processActivityService.findByTemplateId(processTemplateId,personRoleId);
-            if(list.size()>0){
+            List<ProcessActivity> list = processActivityService.findByTemplateIdAndRoleIdAndCondition(processTemplateId,personRoleId,processActivity.getCondition());
+            /*if(list.size()>0){
                 ProcessActivity item = list.get(0);
                 activityOrder = item.getActivityOrder() + 1;
-            }
-            processActivity.setActivityOrder(activityOrder);
+            }*/
+            processActivity.setActivityOrder(activityOrder+ list.size());
 
             int affectCount = processActivityService.insertAndActUser(processActivity);
 

+ 1 - 1
web/src/main/java/com/jpsoft/shinestar/scheduled/CancelLeaveTask.java

@@ -109,7 +109,7 @@ public class CancelLeaveTask {
                     if (templateDepartment != null) {
                         ProcessTemplate processTemplate = processTemplateService.get(templateDepartment.getProcessTemplateId());
 
-                        ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(null, processTemplate.getId(), personPopedom, 1);
+                        ExaminePersonDTO examinePersonDTO = processSetService.getExaminePerson(null, processTemplate.getId(), personPopedom, 1,null);
 
                         List<String> personIdList = Arrays.asList(examinePersonDTO.getPersonIds().split(","));
                         if (personIdList.size() > 0) {