Kaynağa Gözat

[审批流][修改][添加审批类型判断]

release_toaliyun_real
luozukai 7 yıl önce
ebeveyn
işleme
be961b7031
1 değiştirilmiş dosya ile 31 ekleme ve 2 silme
  1. +31
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java

+ 31
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java Dosyayı Görüntüle

@@ -779,7 +779,6 @@ public class WxFlowServiceImpl implements WxFlowService {
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.setTenantId(tenantId);
Map<String,Object> userMap = (Map<String,Object>)mapInfo.get("starter");
List<Map<String,String>> taskAssigneeList = (List)mapInfo.get("taskAssignee");
Long businessId = Long.parseLong(mapInfo.get("businessId").toString());
String email = (String)userMap.get("email");
List<Map<String,Object>> variables = (List)mapInfo.get("variables");
@@ -787,7 +786,18 @@ public class WxFlowServiceImpl implements WxFlowService {

// 判断下个节点是否有设置审批人,没有,直接通过,有,发短信通知
if(!isEnded(processInstanceId)){
if(hasAssignee(taskAssigneeList,taskKey,processInstanceId)){
boolean hasAssignee;
if(flowType.intValue() <= EnumFlowKey.END_CONTRACT.getCode().intValue()) {
//老数据
List<Map<String, String>> taskAssigneeList = (List) mapInfo.get("taskAssignee");
hasAssignee = hasAssignee(taskAssigneeList,taskKey,processInstanceId);
}else{
WxFlowModel flowModel = (WxFlowModel)JsonUtil.readValue((String)mapInfo.get("taskAssignee"),WxFlowModel.class);
List<UserTaskVo> taskAssigneeList = flowModel.getLists();
hasAssignee = hasAssigneeForNew(taskAssigneeList,taskKey,processInstanceId);
}

if(hasAssignee){
// 给代办人发送通知短信
String assignee = "";
List<MallUserInfo> mallUserInfoList = getUserByProcessInstanceId(processInstanceId);
@@ -895,6 +905,25 @@ public class WxFlowServiceImpl implements WxFlowService {
* @param taskKey
* @param processInstanceId
*/
public boolean hasAssigneeForNew(List<UserTaskVo> taskAssigneeList,String taskKey,String processInstanceId){
boolean has = true;
for (int i = 0; i < taskAssigneeList.size(); i++) {
UserTaskVo taskAssignee = taskAssigneeList.get(i);
if(taskAssignee.getKey().equals(taskKey)){
if(i != taskAssigneeList.size() -1){
UserTaskVo nextTaskAssignee = taskAssigneeList.get(i+1);
if(CollectionUtils.isEmpty(nextTaskAssignee.getUserList())){
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
taskService.complete(task.getId());
has = false;
break;
}
}
}
}
return has;
}

public boolean hasAssignee(List<Map<String,String>> taskAssigneeList,String taskKey,String processInstanceId){
boolean has = true;
for (int i = 0; i < taskAssigneeList.size(); i++) {


Yükleniyor…
İptal
Kaydet