diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormDataService.java b/mdp-form/src/main/java/com/mdp/form/service/FormDataService.java index 8b69f56..719400a 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormDataService.java +++ b/mdp-form/src/main/java/com/mdp/form/service/FormDataService.java @@ -125,15 +125,13 @@ public class FormDataService extends BaseService { public int insertOrUpdate(FormDataVo formData, boolean checkFlowState) { String formId=formData.getFormId(); 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())){ formData.setId(this.createKey("id")); formData.setCreateTime(new Date()); formData.setLastTime(new Date()); - FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); + FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); if(fd!=null) { throw new BizException("exists-form-data-biz-key","bizKey","数据已经存在不能再添加"); }else { @@ -141,10 +139,10 @@ public class FormDataService extends BaseService { } }else{ formData.setLastTime(new Date()); - FormData fd=this.getDbFormDataByBizKey(formData.getBizKey()); + FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); if(fd==null) {//如果通过bizKey查不出来 - FormData fdObject=this.selectOneObject(formData); + FormData fdObject=getById(formData.getId()); if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 if(checkFlowState) { if("0".equals(fdObject.getFlowState())) { @@ -220,13 +218,11 @@ public class FormDataService extends BaseService { List needUpdateList=new ArrayList<>(); 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查不出来 - FormData fdObject=this.selectOneObject(formData); + FormData fdObject=this.getById(formData.getId()); if(fdObject!=null) {//通过id可以查出来,通过bizKey查不出来,说明是修改了bizKey,可以更新 formData.setLastTime(new Date()); needUpdateList.add(formData); @@ -297,27 +293,22 @@ public class FormDataService extends BaseService { if(FormUtil.TASK_COMPLETED_FORM_DATA_UPDATE.equals(eventName) || FormUtil.TASK_COMPLETED.equals(eventName)) { Map formDatasMap=( Map) flowVars.get("formData"); if(formDatasMap!=null) { - List fieldIds=(List) flowVars.get(FormUtil.NEED_UPDATE_FORM_DATA_FIELD_ID_LIST); + String fieldIds= (String) flowVars.get(FormUtil.NEED_UPDATE_FORM_DATA_FIELD_ID_LIST); Map 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); 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); - } - } - + String bizKey=this.createBizKey(formDefVo.getFormFields(), formDataVo); + formDataVo.setBizKey(bizKey); + needUpdateFormDataMap.put("procInstId", procInstId); + needUpdateFormDataMap.put("bizKey", formDataVo.getBizKey()); + this.updateSomeFieldsByProcInstId(needUpdateFormDataMap); + } } }else { @@ -327,6 +318,9 @@ public class FormDataService extends BaseService { List approvas=new ArrayList<>(); if(formDatasMap!=null && formDatasMap.size()>0) { 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())) { formDataVo.setId(this.createKey("id")); } @@ -341,8 +335,6 @@ public class FormDataService extends BaseService { approva.setFlowState("1"); approva.setId(this.createKey("id")); approvas.add(approva); - - this.batchInsertOrUpdate(formDatas, true); this.formDataProcessApprovaService.batchInsert(approvas); } @@ -365,62 +357,11 @@ public class FormDataService extends BaseService { return super.update(BaseUtils.fromMap(needUpdateFormDataMap,FormData.class),uw)?1:0; } - /** - * 检查表单主键是否已经存在,并返回bizKey - * @param formFields - * @param formId - * @param formData - * @return - */ - public Tips createFormDataBizKey(List 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 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 qw=new QueryWrapper<>(); + qw.eq("form_Id",formId); qw.eq("biz_key",bizKey); List formDatas= super.list(qw); if(formDatas!=null && formDatas.size()>0){