|
|
@ -1,57 +1,71 @@ |
|
|
package com.mdp.form.service; |
|
|
package com.mdp.form.service; |
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
|
import java.util.Date; |
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
|
import com.mdp.core.utils.BaseUtils; |
|
|
|
|
|
import com.mdp.form.FormUtil; |
|
|
import com.mdp.form.entity.*; |
|
|
import com.mdp.form.entity.*; |
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.mdp.core.service.BaseService; |
|
|
|
|
|
import static com.mdp.core.utils.BaseUtils.*; |
|
|
import com.mdp.core.entity.Tips; |
|
|
import com.mdp.core.entity.Tips; |
|
|
import com.mdp.core.err.BizException; |
|
|
import com.mdp.core.err.BizException; |
|
|
import com.mdp.core.service.BaseService; |
|
|
|
|
|
import com.mdp.core.utils.BaseUtils; |
|
|
|
|
|
import com.mdp.form.FormUtil; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.mdp.form.mapper.FormDataMapper; |
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> |
|
|
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> |
|
|
* 组织 com.qqkj 顶级模块 mdp 大模块 form 小模块 <br> |
|
|
|
|
|
* 实体 FormData 表 FORM.form_data 当前主键(包括多主键): id; |
|
|
|
|
|
|
|
|
* 组织 com 顶级模块 mdp 大模块 form 小模块 <br> |
|
|
|
|
|
* 实体 FormData 表 form_data 当前主键(包括多主键): id; |
|
|
***/ |
|
|
***/ |
|
|
@Service("mdp.form.formDataService") |
|
|
|
|
|
public class FormDataService extends BaseService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
|
public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
|
|
|
static Logger logger =LoggerFactory.getLogger(FormDataService.class); |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 自定义查询,支持多表关联 |
|
|
|
|
|
* @param page 分页条件 |
|
|
|
|
|
* @param ew 一定要,并且必须加@Param("ew")注解 |
|
|
|
|
|
* @param ext 如果xml中需要根据某些值进行特殊处理,可以通过这个进行传递,非必须,注解也可以不加 |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public List<Map<String,Object>> selectListMapByWhere(IPage page, QueryWrapper ew, Map<String,Object> ext){ |
|
|
|
|
|
return baseMapper.selectListMapByWhere(page,ew,ext); |
|
|
|
|
|
} |
|
|
/** 请在此类添加自定义函数 */ |
|
|
/** 请在此类添加自定义函数 */ |
|
|
@Autowired |
|
|
@Autowired |
|
|
FormDataTagService tagService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FormDataTagService tagService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
FormFieldService formFieldService; |
|
|
FormFieldService formFieldService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
FormDataProcessApprovaService formDataProcessApprovaService; |
|
|
FormDataProcessApprovaService formDataProcessApprovaService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 更新tagIds,tagNames两个字段为最新的值 |
|
|
* 更新tagIds,tagNames两个字段为最新的值 |
|
|
* @param dataId |
|
|
|
|
|
|
|
|
* @param dataId |
|
|
* @param tagIds |
|
|
* @param tagIds |
|
|
* @param tagNames |
|
|
* @param tagNames |
|
|
*/ |
|
|
*/ |
|
|
public void updateTagsByDataId(String dataId, String tagIds, String tagNames) { |
|
|
public void updateTagsByDataId(String dataId, String tagIds, String tagNames) { |
|
|
// TODO Auto-generated method stub |
|
|
|
|
|
|
|
|
// TODO Auto-generated method stub |
|
|
Map<String,Object> p=new HashMap<>(); |
|
|
Map<String,Object> p=new HashMap<>(); |
|
|
p.put("id", dataId); |
|
|
|
|
|
|
|
|
p.put("id", dataId); |
|
|
p.put("tagIds", tagIds); |
|
|
p.put("tagIds", tagIds); |
|
|
p.put("tagNames", tagNames); |
|
|
|
|
|
|
|
|
p.put("tagNames", tagNames); |
|
|
this.update("updateTagsById", p); |
|
|
this.update("updateTagsById", p); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 流程结束时调用更新数据状态未2 审核结束 |
|
|
* 流程结束时调用更新数据状态未2 审核结束 |
|
|
* @param flowState |
|
|
* @param flowState |
|
|
@ -70,7 +84,7 @@ public class FormDataService extends BaseService { |
|
|
* @param formData |
|
|
* @param formData |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
public int insertOrUpdate(FormDataVo formData,boolean checkFlowState) { |
|
|
|
|
|
|
|
|
public int insertOrUpdate(FormDataVo formData, boolean checkFlowState) { |
|
|
String formId=formData.getFormId(); |
|
|
String formId=formData.getFormId(); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formData); |
|
|
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formData); |
|
|
@ -80,34 +94,34 @@ public class FormDataService extends BaseService { |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
formData.setId(this.createKey("id")); |
|
|
formData.setId(this.createKey("id")); |
|
|
formData.setCreateTime(new Date()); |
|
|
formData.setCreateTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
if(fd!=null) { |
|
|
if(fd!=null) { |
|
|
throw new BizException("exists-form-data-biz-key","bizKey","数据已经存在不能再添加"); |
|
|
throw new BizException("exists-form-data-biz-key","bizKey","数据已经存在不能再添加"); |
|
|
}else { |
|
|
}else { |
|
|
return this.insert(formData); |
|
|
return this.insert(formData); |
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(checkFlowState) { |
|
|
|
|
|
|
|
|
if(checkFlowState) { |
|
|
if("0".equals(fdObject.getFlowState())) { |
|
|
if("0".equals(fdObject.getFlowState())) { |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
}else { |
|
|
|
|
|
|
|
|
}else { |
|
|
if("1".equals(fdObject.getFlowState())) { |
|
|
if("1".equals(fdObject.getFlowState())) { |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-001","审核中的数据不允许修改"); |
|
|
}else if("2".equals(fdObject.getFlowState())) { |
|
|
}else if("2".equals(fdObject.getFlowState())) { |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
throw new BizException("flow-state-error-002","审核完毕的数据不允许修改"); |
|
|
}else { |
|
|
}else { |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
throw new BizException("flow-state-error-003","数据状态不正确"); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
@ -117,15 +131,15 @@ public class FormDataService extends BaseService { |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
if(StringUtils.isEmpty(formData.getFlowState())) { |
|
|
if(StringUtils.isEmpty(formData.getFlowState())) { |
|
|
formData.setFlowState("0"); |
|
|
formData.setFlowState("0"); |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
return this.insert(formData); |
|
|
return this.insert(formData); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else {//如果通过bizKey查得出来 |
|
|
}else {//如果通过bizKey查得出来 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//如果id相同,说明是同一条数据 |
|
|
//如果id相同,说明是同一条数据 |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(checkFlowState) { |
|
|
|
|
|
|
|
|
if(checkFlowState) { |
|
|
if("0".equals(fd.getFlowState())) { |
|
|
if("0".equals(fd.getFlowState())) { |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
return super.updateByPk(formData); |
|
|
return super.updateByPk(formData); |
|
|
@ -145,7 +159,7 @@ public class FormDataService extends BaseService { |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -166,27 +180,27 @@ public class FormDataService extends BaseService { |
|
|
Tips tips=new Tips("表单检验成功"); |
|
|
Tips tips=new Tips("表单检验成功"); |
|
|
List<FormDataVo> needInsertList=new ArrayList<>(); |
|
|
List<FormDataVo> needInsertList=new ArrayList<>(); |
|
|
List<FormDataVo> needUpdateList=new ArrayList<>(); |
|
|
List<FormDataVo> needUpdateList=new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (FormDataVo formData : formDatas) { |
|
|
for (FormDataVo formData : formDatas) { |
|
|
tips=this.createFormDataBizKey(formFields, formId, formData); |
|
|
tips=this.createFormDataBizKey(formFields, formId, formData); |
|
|
if(tips.isOk()==false) { |
|
|
if(tips.isOk()==false) { |
|
|
throw new BizException(tips); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
throw new BizException(tips); |
|
|
|
|
|
} |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 |
|
|
formData.setLastTime(new Date()); |
|
|
|
|
|
|
|
|
formData.setLastTime(new Date()); |
|
|
needUpdateList.add(formData); |
|
|
needUpdateList.add(formData); |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
}else {//通过id也查不出来,通过bizKey查不出来,说明是新增 |
|
|
formData.setCreateTime(new Date()); |
|
|
formData.setCreateTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setFlowState("1"); |
|
|
|
|
|
|
|
|
formData.setFlowState("1"); |
|
|
needInsertList.add(formData); |
|
|
needInsertList.add(formData); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else {//如果通过bizKey查得出来 |
|
|
}else {//如果通过bizKey查得出来 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//如果id相同,说明是同一条数据 |
|
|
//如果id相同,说明是同一条数据 |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
if(fd.getId().equals(formData.getId())) { |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
@ -194,9 +208,9 @@ public class FormDataService extends BaseService { |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
}else {//如果id不相同,说明不是同一条数据 |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
throw new BizException("form-data-biz-key-exists","数据已经存在,不能继续添加,请检查是否关键数据错误"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
if(needInsertList.size()>0) { |
|
|
if(needInsertList.size()>0) { |
|
|
this.batchInsert(needInsertList); |
|
|
this.batchInsert(needInsertList); |
|
|
@ -208,10 +222,10 @@ public class FormDataService extends BaseService { |
|
|
}else { |
|
|
}else { |
|
|
this.update("batchUpdateWithoutFlowState", formDatas); |
|
|
this.update("batchUpdateWithoutFlowState", formDatas); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -221,73 +235,73 @@ public class FormDataService extends BaseService { |
|
|
* PROCESS_COMPLETED 流程正常结束 全局 |
|
|
* PROCESS_COMPLETED 流程正常结束 全局 |
|
|
* PROCESS_CANCELLED 流程删除 全局 |
|
|
* PROCESS_CANCELLED 流程删除 全局 |
|
|
* create 人工任务启动 |
|
|
* create 人工任务启动 |
|
|
* complete 人工任务完成 |
|
|
|
|
|
|
|
|
* complete 人工任务完成 |
|
|
* assignment 人工任务分配给了具体的人 |
|
|
* assignment 人工任务分配给了具体的人 |
|
|
* delete 人工任务被删除 |
|
|
* delete 人工任务被删除 |
|
|
* TASK_COMPLETED_FORM_DATA_UPDATE 人工任务提交完成后,智能表单数据更新 |
|
|
* TASK_COMPLETED_FORM_DATA_UPDATE 人工任务提交完成后,智能表单数据更新 |
|
|
* |
|
|
|
|
|
|
|
|
* |
|
|
* 其中 create/complete/assignment/delete事件是需要在模型中人工节点上配置了委托代理表达式 ${taskBizCallListener}才会推送过来。 |
|
|
* 其中 create/complete/assignment/delete事件是需要在模型中人工节点上配置了委托代理表达式 ${taskBizCallListener}才会推送过来。 |
|
|
* 在人工任务节点上配置 任务监听器 建议事件为 complete,其它assignment/create/complete/delete也可以,一般建议在complete,委托代理表达式 ${taskBizCallListener} |
|
|
* 在人工任务节点上配置 任务监听器 建议事件为 complete,其它assignment/create/complete/delete也可以,一般建议在complete,委托代理表达式 ${taskBizCallListener} |
|
|
* |
|
|
|
|
|
* @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey} 等 |
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
* @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey} 等 |
|
|
* @return 如果tips.isOk==false,将影响流程提交 |
|
|
* @return 如果tips.isOk==false,将影响流程提交 |
|
|
**/ |
|
|
**/ |
|
|
public void processApprova(Map<String, Object> flowVars) { |
|
|
public void processApprova(Map<String, Object> flowVars) { |
|
|
String procInstId=(String) flowVars.get("procInstId"); |
|
|
String procInstId=(String) flowVars.get("procInstId"); |
|
|
String eventName=(String) flowVars.get("eventName"); |
|
|
String eventName=(String) flowVars.get("eventName"); |
|
|
String formId=(String) flowVars.get("formId"); |
|
|
String formId=(String) flowVars.get("formId"); |
|
|
String agree=(String) flowVars.get("agree"); |
|
|
|
|
|
|
|
|
|
|
|
if(FormUtil.TASK_COMPLETED_FORM_DATA_UPDATE.equals(eventName) || FormUtil.TASK_COMPLETED.equals(eventName)) { |
|
|
|
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
|
|
|
if(formDatasMap!=null) { |
|
|
|
|
|
|
|
|
String agree=(String) flowVars.get("agree"); |
|
|
|
|
|
|
|
|
|
|
|
if(FormUtil.TASK_COMPLETED_FORM_DATA_UPDATE.equals(eventName) || FormUtil.TASK_COMPLETED.equals(eventName)) { |
|
|
|
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
|
|
|
if(formDatasMap!=null) { |
|
|
List<String> fieldIds=(List<String>) flowVars.get(FormUtil.NEED_UPDATE_FORM_DATA_FIELD_ID_LIST); |
|
|
List<String> fieldIds=(List<String>) flowVars.get(FormUtil.NEED_UPDATE_FORM_DATA_FIELD_ID_LIST); |
|
|
Map<String,Object> needUpdateFormDataMap=new HashMap<>(); |
|
|
Map<String,Object> needUpdateFormDataMap=new HashMap<>(); |
|
|
if(fieldIds !=null && fieldIds.size() > 0) { |
|
|
|
|
|
|
|
|
if(fieldIds !=null && fieldIds.size() > 0) { |
|
|
for (String fieldId : fieldIds) { |
|
|
for (String fieldId : fieldIds) { |
|
|
Object value=formDatasMap.get(fieldId); |
|
|
Object value=formDatasMap.get(fieldId); |
|
|
needUpdateFormDataMap.put(fieldId, value); |
|
|
needUpdateFormDataMap.put(fieldId, value); |
|
|
} |
|
|
|
|
|
FormDataVo formDataVo=BaseUtils.fromMap(needUpdateFormDataMap, FormDataVo.class); |
|
|
|
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
|
|
|
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formDataVo); |
|
|
|
|
|
needUpdateFormDataMap.put("procInstId", procInstId); |
|
|
|
|
|
if(tips.isOk()) { |
|
|
|
|
|
needUpdateFormDataMap.put("bizKey", formDataVo.getBizKey()); |
|
|
|
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
|
|
|
}else { |
|
|
|
|
|
//formData.setBizKey(formDataVo.getBizKey()); |
|
|
|
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
FormDataVo formDataVo=BaseUtils.fromMap(needUpdateFormDataMap, FormDataVo.class); |
|
|
|
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
|
|
|
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formDataVo); |
|
|
|
|
|
needUpdateFormDataMap.put("procInstId", procInstId); |
|
|
|
|
|
if(tips.isOk()) { |
|
|
|
|
|
needUpdateFormDataMap.put("bizKey", formDataVo.getBizKey()); |
|
|
|
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
|
|
|
}else { |
|
|
|
|
|
//formData.setBizKey(formDataVo.getBizKey()); |
|
|
|
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
|
|
|
|
|
|
if("PROCESS_STARTED".equals(eventName)) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if("PROCESS_STARTED".equals(eventName)) { |
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
List<FormDataVo> formDatas=new ArrayList<>(); |
|
|
List<FormDataVo> formDatas=new ArrayList<>(); |
|
|
List<FormDataProcessApprova> approvas=new ArrayList<>(); |
|
|
|
|
|
if(formDatasMap!=null && formDatasMap.size()>0) { |
|
|
|
|
|
FormDataVo formDataVo=BaseUtils.fromMap(formDatasMap, FormDataVo.class); |
|
|
|
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
|
|
|
formDataVo.setId(this.createKey("id")); |
|
|
|
|
|
} |
|
|
|
|
|
formDataVo.setFlowState("1"); |
|
|
|
|
|
formDatas.add(formDataVo); |
|
|
|
|
|
|
|
|
|
|
|
FormDataProcessApprova approva=BaseUtils.fromMap(flowVars, FormDataProcessApprova.class); |
|
|
|
|
|
approva.setBranchId(approva.getBranchId()); |
|
|
|
|
|
approva.setFormDataId(formDataVo.getId()); |
|
|
|
|
|
approva.setFormId(formDataVo.getFormId()); |
|
|
|
|
|
approva.setFlowLastTime(new Date()); |
|
|
|
|
|
approva.setFlowState("1"); |
|
|
|
|
|
approva.setId(this.createKey("id")); |
|
|
|
|
|
approvas.add(approva); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.batchInsertOrUpdate(formDatas, true); |
|
|
|
|
|
|
|
|
List<FormDataProcessApprova> approvas=new ArrayList<>(); |
|
|
|
|
|
if(formDatasMap!=null && formDatasMap.size()>0) { |
|
|
|
|
|
FormDataVo formDataVo=BaseUtils.fromMap(formDatasMap, FormDataVo.class); |
|
|
|
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
|
|
|
formDataVo.setId(this.createKey("id")); |
|
|
|
|
|
} |
|
|
|
|
|
formDataVo.setFlowState("1"); |
|
|
|
|
|
formDatas.add(formDataVo); |
|
|
|
|
|
|
|
|
|
|
|
FormDataProcessApprova approva=BaseUtils.fromMap(flowVars, FormDataProcessApprova.class); |
|
|
|
|
|
approva.setBranchId(approva.getBranchId()); |
|
|
|
|
|
approva.setFormDataId(formDataVo.getId()); |
|
|
|
|
|
approva.setFormId(formDataVo.getFormId()); |
|
|
|
|
|
approva.setFlowLastTime(new Date()); |
|
|
|
|
|
approva.setFlowState("1"); |
|
|
|
|
|
approva.setId(this.createKey("id")); |
|
|
|
|
|
approvas.add(approva); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.batchInsertOrUpdate(formDatas, true); |
|
|
this.formDataProcessApprovaService.batchInsert(approvas); |
|
|
this.formDataProcessApprovaService.batchInsert(approvas); |
|
|
} |
|
|
} |
|
|
}else if("PROCESS_COMPLETED".equals(eventName)) { |
|
|
}else if("PROCESS_COMPLETED".equals(eventName)) { |
|
|
@ -296,15 +310,15 @@ public class FormDataService extends BaseService { |
|
|
}else { |
|
|
}else { |
|
|
this.updateFlowStateByProcInst("3", formId, procInstId); |
|
|
this.updateFlowStateByProcInst("3", formId, procInstId); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else if("PROCESS_CANCELLED".equals(eventName)) { |
|
|
}else if("PROCESS_CANCELLED".equals(eventName)) { |
|
|
this.updateFlowStateByProcInst("4", formId, procInstId); |
|
|
this.updateFlowStateByProcInst("4", formId, procInstId); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private int updateSomeFieldsByProcInstId(Map<String, Object> needUpdateFormDataMap) { |
|
|
private int updateSomeFieldsByProcInstId(Map<String, Object> needUpdateFormDataMap) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return this.update("updateSomeFieldsByProcInstId", needUpdateFormDataMap); |
|
|
return this.update("updateSomeFieldsByProcInstId", needUpdateFormDataMap); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -337,9 +351,9 @@ public class FormDataService extends BaseService { |
|
|
hasPrefix=true; |
|
|
hasPrefix=true; |
|
|
bizKey=formData.getDeptid(); |
|
|
bizKey=formData.getDeptid(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
Map<String,Object> formDataMap=BaseUtils.toMap(formData); |
|
|
|
|
|
|
|
|
Map<String,Object> formDataMap= BaseUtils.toMap(formData); |
|
|
for (FormField formField : formFields) { |
|
|
for (FormField formField : formFields) { |
|
|
String fkey=formField.getIsBizKey(); |
|
|
String fkey=formField.getIsBizKey(); |
|
|
String fieldIdCamel=formField.getFieldIdCamel(); |
|
|
String fieldIdCamel=formField.getFieldIdCamel(); |
|
|
@ -358,10 +372,10 @@ public class FormDataService extends BaseService { |
|
|
} |
|
|
} |
|
|
formData.setBizKey(bizKey); |
|
|
formData.setBizKey(bizKey); |
|
|
return tips; |
|
|
return tips; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public FormData getDbFormDataByBizKey(String bizKey){ |
|
|
public FormData getDbFormDataByBizKey(String bizKey){ |
|
|
return this.selectOne("getDbFormDataByBizKey", bizKey); |
|
|
return this.selectOne("getDbFormDataByBizKey", bizKey); |
|
|
} |
|
|
} |
|
|
|