|
|
@ -125,15 +125,13 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
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); |
|
|
|
|
|
if(tips.isOk()==false) { |
|
|
|
|
|
throw new BizException(tips); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formData); |
|
|
|
|
|
formData.setBizKey(bizKey); |
|
|
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(formId,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 { |
|
|
@ -141,10 +139,10 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
} |
|
|
} |
|
|
}else{ |
|
|
}else{ |
|
|
formData.setLastTime(new Date()); |
|
|
formData.setLastTime(new Date()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
|
|
|
|
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
|
|
|
|
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
|
|
|
|
|
|
FormData fdObject=getById(formData.getId()); |
|
|
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())) { |
|
|
@ -220,13 +218,11 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
List<FormDataVo> needUpdateList=new ArrayList<>(); |
|
|
List<FormDataVo> needUpdateList=new ArrayList<>(); |
|
|
|
|
|
|
|
|
for (FormDataVo formData : formDatas) { |
|
|
for (FormDataVo formData : formDatas) { |
|
|
tips=this.createFormDataBizKey(formFields, formId, formData); |
|
|
|
|
|
if(tips.isOk()==false) { |
|
|
|
|
|
throw new BizException(tips); |
|
|
|
|
|
} |
|
|
|
|
|
FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); |
|
|
|
|
|
|
|
|
String bizKey=createBizKey(formFields,formData); |
|
|
|
|
|
formData.setBizKey(bizKey); |
|
|
|
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
FormData fdObject=this.selectOneObject(formData); |
|
|
|
|
|
|
|
|
FormData fdObject=this.getById(formData.getId()); |
|
|
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); |
|
|
@ -297,28 +293,23 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
if(FormUtil.TASK_COMPLETED_FORM_DATA_UPDATE.equals(eventName) || FormUtil.TASK_COMPLETED.equals(eventName)) { |
|
|
if(FormUtil.TASK_COMPLETED_FORM_DATA_UPDATE.equals(eventName) || FormUtil.TASK_COMPLETED.equals(eventName)) { |
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
Map<String,Object> formDatasMap=( Map<String,Object>) flowVars.get("formData"); |
|
|
if(formDatasMap!=null) { |
|
|
if(formDatasMap!=null) { |
|
|
List<String> fieldIds=(List<String>) flowVars.get(FormUtil.NEED_UPDATE_FORM_DATA_FIELD_ID_LIST); |
|
|
|
|
|
|
|
|
String fieldIds= (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) { |
|
|
|
|
|
for (String fieldId : fieldIds) { |
|
|
|
|
|
|
|
|
if(ObjectTools.isNotEmpty(fieldIds)) { |
|
|
|
|
|
for (String fieldId : fieldIds.split(",")) { |
|
|
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); |
|
|
FormDataVo formDataVo=BaseUtils.fromMap(needUpdateFormDataMap, FormDataVo.class); |
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formDataVo); |
|
|
|
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formDataVo); |
|
|
|
|
|
formDataVo.setBizKey(bizKey); |
|
|
needUpdateFormDataMap.put("procInstId", procInstId); |
|
|
needUpdateFormDataMap.put("procInstId", procInstId); |
|
|
if(tips.isOk()) { |
|
|
|
|
|
needUpdateFormDataMap.put("bizKey", formDataVo.getBizKey()); |
|
|
needUpdateFormDataMap.put("bizKey", formDataVo.getBizKey()); |
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
}else { |
|
|
|
|
|
//formData.setBizKey(formDataVo.getBizKey()); |
|
|
|
|
|
this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
}else { |
|
|
}else { |
|
|
|
|
|
|
|
|
if("PROCESS_STARTED".equals(eventName)) { |
|
|
if("PROCESS_STARTED".equals(eventName)) { |
|
|
@ -327,6 +318,9 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
List<FormDataProcessApprova> approvas=new ArrayList<>(); |
|
|
List<FormDataProcessApprova> approvas=new ArrayList<>(); |
|
|
if(formDatasMap!=null && formDatasMap.size()>0) { |
|
|
if(formDatasMap!=null && formDatasMap.size()>0) { |
|
|
FormDataVo formDataVo=BaseUtils.fromMap(formDatasMap, FormDataVo.class); |
|
|
FormDataVo formDataVo=BaseUtils.fromMap(formDatasMap, FormDataVo.class); |
|
|
|
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(),formDataVo); |
|
|
|
|
|
formDataVo.setBizKey(bizKey); |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
} |
|
|
} |
|
|
@ -341,8 +335,6 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
approva.setFlowState("1"); |
|
|
approva.setFlowState("1"); |
|
|
approva.setId(this.createKey("id")); |
|
|
approva.setId(this.createKey("id")); |
|
|
approvas.add(approva); |
|
|
approvas.add(approva); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.batchInsertOrUpdate(formDatas, true); |
|
|
this.batchInsertOrUpdate(formDatas, true); |
|
|
this.formDataProcessApprovaService.batchInsert(approvas); |
|
|
this.formDataProcessApprovaService.batchInsert(approvas); |
|
|
} |
|
|
} |
|
|
@ -365,62 +357,11 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
return super.update(BaseUtils.fromMap(needUpdateFormDataMap,FormData.class),uw)?1:0; |
|
|
return super.update(BaseUtils.fromMap(needUpdateFormDataMap,FormData.class),uw)?1:0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 检查表单主键是否已经存在,并返回bizKey |
|
|
|
|
|
* @param formFields |
|
|
|
|
|
* @param formId |
|
|
|
|
|
* @param formData |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public Tips createFormDataBizKey(List<FormField> formFields,String formId,FormDataVo formData) { |
|
|
|
|
|
Tips tips=new Tips("检查通过"); |
|
|
|
|
|
String fieldBizKey=formFields.get(0).getIsBizKey(); |
|
|
|
|
|
String bizKey=""; |
|
|
|
|
|
if(StringUtils.isEmpty(fieldBizKey) ) { |
|
|
|
|
|
return tips; |
|
|
|
|
|
}else if( fieldBizKey.length()!=3) { |
|
|
|
|
|
tips.setErrMsg("is-biz-key-err-001", "表单字段定义的主键编码错误"); |
|
|
|
|
|
return tips; |
|
|
|
|
|
} |
|
|
|
|
|
boolean hasPrefix=false; |
|
|
|
|
|
if("1".equals(""+fieldBizKey.charAt(0))) { |
|
|
|
|
|
hasPrefix=true; |
|
|
|
|
|
bizKey=formData.getUserid(); |
|
|
|
|
|
} |
|
|
|
|
|
if("1".equals(""+fieldBizKey.charAt(1))) { |
|
|
|
|
|
if(hasPrefix) { |
|
|
|
|
|
bizKey=bizKey+","+formData.getDeptid(); |
|
|
|
|
|
}else { |
|
|
|
|
|
hasPrefix=true; |
|
|
|
|
|
bizKey=formData.getDeptid(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
Map<String,Object> formDataMap= BaseUtils.toMap(formData); |
|
|
|
|
|
for (FormField formField : formFields) { |
|
|
|
|
|
String fkey=formField.getIsBizKey(); |
|
|
|
|
|
String fieldIdCamel=formField.getFieldIdCamel(); |
|
|
|
|
|
String fieldValue= (String) formDataMap.get(fieldIdCamel) ; |
|
|
|
|
|
if("1".equals(""+fkey.charAt(2))) { |
|
|
|
|
|
if(hasPrefix) { |
|
|
|
|
|
bizKey=bizKey+","+fieldValue; |
|
|
|
|
|
}else { |
|
|
|
|
|
hasPrefix=true; |
|
|
|
|
|
bizKey=fieldValue; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(hasPrefix==false) { |
|
|
|
|
|
bizKey=formData.getId(); |
|
|
|
|
|
} |
|
|
|
|
|
formData.setBizKey(bizKey); |
|
|
|
|
|
return tips; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public FormData getDbFormDataByBizKey(String bizKey){ |
|
|
|
|
|
|
|
|
public FormData getDbFormDataByBizKey(String formId,String bizKey){ |
|
|
QueryWrapper<FormData> qw=new QueryWrapper<>(); |
|
|
QueryWrapper<FormData> qw=new QueryWrapper<>(); |
|
|
|
|
|
qw.eq("form_Id",formId); |
|
|
qw.eq("biz_key",bizKey); |
|
|
qw.eq("biz_key",bizKey); |
|
|
List<FormData> formDatas= super.list(qw); |
|
|
List<FormData> formDatas= super.list(qw); |
|
|
if(formDatas!=null && formDatas.size()>0){ |
|
|
if(formDatas!=null && formDatas.size()>0){ |
|
|
|