Browse Source

升级2.0.0

master
陈裕财 2 years ago
parent
commit
e2f4286f9a
  1. 99
      mdp-form/src/main/java/com/mdp/form/service/FormDataService.java

99
mdp-form/src/main/java/com/mdp/form/service/FormDataService.java

@ -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){

Loading…
Cancel
Save