Browse Source

升级2.0.0

master
陈裕财 2 years ago
parent
commit
5fbf1de68b
  1. 4
      mdp-form/src/main/java/com/mdp/form/ctrl/FormDataController.java
  2. 87
      mdp-form/src/main/java/com/mdp/form/service/FormDataService.java
  3. 9
      mdp-form/src/main/java/com/mdp/form/service/FormDefService.java

4
mdp-form/src/main/java/com/mdp/form/ctrl/FormDataController.java

@ -180,7 +180,7 @@ public class FormDataController {
return Result.error("field-required","%s不能为空",field.getTitle()); return Result.error("field-required","%s不能为空",field.getTitle());
} }
} }
String bizKey=formDataService.createBizKey(formFields,formData);
String bizKey=formDataService.createBizKey(formDefVo,formData);
if(ObjectTools.isNotEmpty(bizKey) && formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){ if(ObjectTools.isNotEmpty(bizKey) && formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){
return Result.error("biz-key-exists","%s已存在",bizKey); return Result.error("biz-key-exists","%s已存在",bizKey);
}; };
@ -243,7 +243,7 @@ public class FormDataController {
} }
} }
String bizKey= formDataService.createBizKey(formFields,formData);
String bizKey= formDataService.createBizKey(formDefVo,formData);
formData.setBizKey(ObjectTools.isNotEmpty(bizKey)?bizKey:formDataDb.getId()); formData.setBizKey(ObjectTools.isNotEmpty(bizKey)?bizKey:formDataDb.getId());
if(ObjectTools.isNotEmpty(bizKey) && !bizKey.equals(formDataDb.getBizKey())){ if(ObjectTools.isNotEmpty(bizKey) && !bizKey.equals(formDataDb.getBizKey())){
if(formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){ if(formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){

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

@ -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"));

9
mdp-form/src/main/java/com/mdp/form/service/FormDefService.java

@ -102,15 +102,12 @@ public class FormDefService extends BaseService<FormDefMapper,FormDef> {
List<FormField> formFields=formDefVo.getFormFields(); List<FormField> formFields=formDefVo.getFormFields();
for (FormField formField : formFields) { for (FormField formField : formFields) {
String fieldBizKey=formField.getBkey();
if(StringUtils.isEmpty(fieldBizKey) ) {
throw new BizException("is-biz-key-err-001", "isBizKey", "表单字段定义的主键编码错误,长度应为3位 格式位 111 第一位代表创建人是否为主键,第二位代表创建部门是否为主键,第三位代表该字段是否为主键");
}else if( fieldBizKey.length()!=3) {
throw new BizException("is-biz-key-err-001", "isBizKey", "表单字段定义的主键编码错误,长度应为3位 格式位 111 第一位代表创建人是否为主键,第二位代表创建部门是否为主键,第三位代表该字段是否为主键");
}
formField.setFormId(formDef.getId()); formField.setFormId(formDef.getId());
if(ObjectTools.isEmpty(formField.getId())){
throw new BizException("id-required","字段编码id不能为空"); throw new BizException("id-required","字段编码id不能为空");
} }
}
super.save(formDef); super.save(formDef);
this.ffs.saveBatch(formFields); this.ffs.saveBatch(formFields);
formFieldCacheService.putFormFields(formId, formDefVo); formFieldCacheService.putFormFields(formId, formDefVo);

Loading…
Cancel
Save