|
|
@ -1,13 +1,17 @@ |
|
|
package com.mdp.form.service; |
|
|
package com.mdp.form.service; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.mdp.core.entity.LangTips; |
|
|
import com.mdp.core.entity.LangTips; |
|
|
import com.mdp.core.utils.BaseUtils; |
|
|
import com.mdp.core.utils.BaseUtils; |
|
|
|
|
|
import com.mdp.core.utils.DateUtils; |
|
|
import com.mdp.core.utils.ObjectTools; |
|
|
import com.mdp.core.utils.ObjectTools; |
|
|
import com.mdp.form.FormUtil; |
|
|
import com.mdp.form.FormUtil; |
|
|
import com.mdp.form.entity.*; |
|
|
import com.mdp.form.entity.*; |
|
|
|
|
|
import com.mdp.safe.client.entity.User; |
|
|
|
|
|
import com.mdp.safe.client.utils.LoginUtils; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
@ -70,34 +74,71 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 创建业务主键 |
|
|
* 创建业务主键 |
|
|
* @param formFields |
|
|
|
|
|
|
|
|
* @param formDefVo |
|
|
* @param formData |
|
|
* @param formData |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
public String createBizKey(List<FormField> formFields,FormData formData){ |
|
|
|
|
|
|
|
|
|
|
|
List<String> pks=new ArrayList<>(); |
|
|
|
|
|
List<FormField> pkFields=formFields.stream().filter(k->k.getBkey().endsWith("1")).collect(Collectors.toList()); |
|
|
|
|
|
if(pkFields==null || pkFields.size()==0){//没有业务主键,则取id |
|
|
|
|
|
|
|
|
public String createBizKey(FormDefVo formDefVo,FormData formData){ |
|
|
|
|
|
User user= LoginUtils.getCurrentUserInfo(); |
|
|
|
|
|
FormDef formDef=formDefVo.getFormDef(); |
|
|
|
|
|
if(ObjectTools.isEmpty(formDef.getPks())){ |
|
|
return ""; |
|
|
return ""; |
|
|
} |
|
|
} |
|
|
Map<String,Object> formDataMap= BaseUtils.toMap(formData); |
|
|
|
|
|
FormField pk=pkFields.get(0); |
|
|
|
|
|
String isBizKey=pk.getBkey(); |
|
|
|
|
|
if(isBizKey.startsWith("1")){ |
|
|
|
|
|
pks.add(formData.getCuserid()); |
|
|
|
|
|
|
|
|
String[] pkIds1=formDef.getPks().split(":"); |
|
|
|
|
|
String ctimeFormat=""; |
|
|
|
|
|
if(pkIds1.length>1){ |
|
|
|
|
|
ctimeFormat=pkIds1[1]; |
|
|
|
|
|
} |
|
|
|
|
|
String[] pkIds=pkIds1[0].split(","); |
|
|
|
|
|
List<String> extInfosPkIds= Arrays.stream(pkIds).filter(k->k.indexOf(".")>=0).collect(Collectors.toList()); |
|
|
|
|
|
Map<String,Object> extInfos=new HashMap<>(); |
|
|
|
|
|
if(extInfosPkIds.size()>0){ |
|
|
|
|
|
extInfos= JSONObject.parseObject(formData.getExtInfos()); |
|
|
|
|
|
} |
|
|
|
|
|
List<String> bizKeys=new ArrayList<>(); |
|
|
|
|
|
Map<String,Object> formDataMap=null; |
|
|
|
|
|
for (String pkId : pkIds) { |
|
|
|
|
|
if(pkId.indexOf(".")<0){ |
|
|
|
|
|
if(pkId.equals("ctime")){ |
|
|
|
|
|
String formate=transNum2String(ctimeFormat); |
|
|
|
|
|
String ctime=DateUtils.format(formData.getCtime(),formate); |
|
|
|
|
|
bizKeys.add(ctime); |
|
|
|
|
|
}else if("cuserid".equals(pkId)){ |
|
|
|
|
|
bizKeys.add(formData.getCuserid()); |
|
|
|
|
|
}else if("deptid".equals(pkId)){ |
|
|
|
|
|
bizKeys.add(formData.getDeptid()); |
|
|
|
|
|
}else{ |
|
|
|
|
|
if(formDataMap==null){ |
|
|
|
|
|
formDataMap=BaseUtils.toMap(formData); |
|
|
} |
|
|
} |
|
|
if(isBizKey.charAt(1)=='1'){ |
|
|
|
|
|
pks.add(formData.getDeptid()); |
|
|
|
|
|
|
|
|
String val= (String) formDataMap.get(pkId); |
|
|
|
|
|
if(ObjectTools.isEmpty(val)){ |
|
|
|
|
|
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkId)); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
for (FormField pkField : pkFields) { |
|
|
|
|
|
Object pkValue= formDataMap.get(pkField.getIdCamel()); |
|
|
|
|
|
if(ObjectTools.isEmpty(pkValue)){ |
|
|
|
|
|
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkField.getTitle())); |
|
|
|
|
|
} |
|
|
} |
|
|
pks.add((String) formDataMap.get(pkField.getIdCamel())); |
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
String pkIdTrim=pkId.replaceAll("\\w*[.]",""); |
|
|
|
|
|
|
|
|
|
|
|
String v= (String) extInfos.get(pkIdTrim); |
|
|
|
|
|
if(ObjectTools.isEmpty(v)){ |
|
|
|
|
|
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkId)); |
|
|
} |
|
|
} |
|
|
return pks.stream().collect(Collectors.joining(",")); |
|
|
|
|
|
|
|
|
bizKeys.add(v); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return bizKeys.stream().collect(Collectors.joining(",")); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String transNum2String(String num){ |
|
|
|
|
|
Map<String,String> m=new HashMap<>(); |
|
|
|
|
|
m.put("1","yyyy"); |
|
|
|
|
|
m.put("2","yyyy-MM"); |
|
|
|
|
|
m.put("3","yyyy-MM-dd"); |
|
|
|
|
|
m.put("4","yyyy-MM-dd HH"); |
|
|
|
|
|
m.put("5","yyyy-MM-dd HH:mm"); |
|
|
|
|
|
m.put("6","yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
return m.get(num); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -122,7 +163,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
public int insertOrUpdate(FormDataVo formData, boolean checkFstate) { |
|
|
public int insertOrUpdate(FormDataVo formData, boolean checkFstate) { |
|
|
String formId=formData.getFormId(); |
|
|
String formId=formData.getFormId(); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId); |
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formData); |
|
|
|
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo, formData); |
|
|
formData.setBizKey(bizKey); |
|
|
formData.setBizKey(bizKey); |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
if(StringUtils.isEmpty(formData.getId())){ |
|
|
formData.setId(this.createKey("id")); |
|
|
formData.setId(this.createKey("id")); |
|
|
@ -215,7 +256,7 @@ 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) { |
|
|
String bizKey=createBizKey(formFields,formData); |
|
|
|
|
|
|
|
|
String bizKey=createBizKey(fromDefVo,formData); |
|
|
formData.setBizKey(bizKey); |
|
|
formData.setBizKey(bizKey); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
FormData fd=this.getDbFormDataByBizKey(formId,formData.getBizKey()); |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
if(fd==null) {//如果通过bizKey查不出来 |
|
|
@ -309,7 +350,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if(!needUpdateFormDataMap.isEmpty()){ |
|
|
if(!needUpdateFormDataMap.isEmpty()){ |
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(), formDataOrigin); |
|
|
|
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo, formDataOrigin); |
|
|
if(needUpdateBizKey){ |
|
|
if(needUpdateBizKey){ |
|
|
needUpdateFormDataMap.put("bizKey", bizKey); |
|
|
needUpdateFormDataMap.put("bizKey", bizKey); |
|
|
} |
|
|
} |
|
|
@ -326,7 +367,7 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> { |
|
|
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); |
|
|
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId); |
|
|
String bizKey=this.createBizKey(formDefVo.getFormFields(),formDataVo); |
|
|
|
|
|
|
|
|
String bizKey=this.createBizKey(formDefVo,formDataVo); |
|
|
formDataVo.setBizKey(bizKey); |
|
|
formDataVo.setBizKey(bizKey); |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
if(StringUtils.isEmpty(formDataVo.getId())) { |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
formDataVo.setId(this.createKey("id")); |
|
|
|