Browse Source

重新生成form_field

master
陈裕财 3 years ago
parent
commit
13f94ae8ad
  1. 30
      mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java
  2. 6
      mdp-form/src/main/java/com/mdp/form/entity/FormField.java
  3. 21
      mdp-form/src/main/java/com/mdp/form/service/FormDataService.java
  4. 4
      mdp-form/src/main/java/com/mdp/form/service/FormDefService.java
  5. 16
      mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java
  6. 21
      mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java
  7. 12
      mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml

30
mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java

@ -4,7 +4,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.form.entity.FormDef;
import com.mdp.form.entity.FormDefVo;
import com.mdp.form.entity.FormField;
import com.mdp.form.service.FormDefService;
import com.mdp.form.service.FormFieldCacheService;
import com.mdp.form.service.FormFieldService;
@ -13,6 +17,7 @@ import jdk.nashorn.internal.ir.annotations.Ignore;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -51,6 +56,9 @@ public class FormFieldController {
@Autowired
private FormFieldService formFieldService;
@Autowired
private FormDefService formDefService;
@Autowired
FormFieldCacheService formFieldCacheService;
@ -65,16 +73,26 @@ public class FormFieldController {
public Map<String,Object> listFormField(@Ignore @RequestParam Map<String,Object> formField){
Map<String,Object> m = new HashMap<>();
String formId=(String) formField.get("formId");
List<FormField> formFields=this.formFieldCacheService.getFromFields(formId);
if(formFields==null || formFields.size()==0) {
if(!StringUtils.hasText(formId)){
return ResponseHelper.failed("formId-0","formId不能为空");
}
FormDefVo formDefVo=this.formFieldCacheService.getFromFields(formId);
if(formDefVo==null ) {
FormDef formDef=this.formDefService.selectOneById(formId);
if(formDef==null){
return ResponseHelper.failed("formDef-0","表单不存在");
}
FormField formFieldQuery=new FormField();
formFieldQuery.setFormId(formId);
formFields = formFieldService.selectListByWhere(formFieldQuery); //列出FormField列表
formFieldCacheService.putFormFields(formId, formFields);
List<FormField> formFields = formFieldService.selectListByWhere(formFieldQuery); //列出FormField列表
formDefVo=new FormDefVo();
formDefVo.setFormDef(formDef);
formDefVo.setFormFields(formFields);
formFieldCacheService.putFormFields(formId, formDefVo);
}
PageUtils.responePage(m, formFields);
m.put("data",formFields);
m.put("data",formDefVo.getFormFields());
m.put("formDef",formDefVo.getFormDef());
Tips tips=new Tips("查询成功");
m.put("tips", tips);
return m;

6
mdp-form/src/main/java/com/mdp/form/entity/FormField.java

@ -8,7 +8,7 @@ import java.math.BigDecimal;
/**
* 组织 com 顶级模块 mdp 大模块 form 小模块 <br>
* 实体 FormField所有属性名: <br>
* "formId","表单编号","id","主键","fieldId","字段编号对应数据库","fieldTitle","字段显示内容","dictCode","下拉时候关联的分组","fieldType","字段类型","fieldLength","字段长度","defaultValue","默认值","isMultiple","是否多选","placeholder","输入框占位文本","isRequired","是否必输","isDict","是否关联基础数据","fieldIdCamel","字段驼峰命名","remark","字段备注","extFieldType","扩展信息","toFlow","是否提交到工作流","flowFieldId","提交到工作流的变量编号","isBizKey","是否是业务主键111前面两个1代表创建人及创建部门,后面一个1代表字段本身,0为不是主键,如000代表该表单不设置主键,001代表字段本身作为主键,创建人创建部门不是主键,100代表创建人为唯一主键,110代表创建人创建部门为主键,其它字段联合主键的话,按字段顺序排序","seqNo","显示顺序","groupName","归属组名-用于解决多个tab页,或者多个子页面的问题";<br>
* "formId","表单编号","id","主键","fieldId","字段编号对应数据库","fieldTitle","字段显示内容","dictCode","下拉时候关联的分组","fieldType","字段类型","fieldLength","字段长度","defaultValue","默认值","isMultiple","是否多选","placeholder","输入框占位文本","isRequired","是否必输","isDict","是否关联基础数据","fieldIdCamel","字段驼峰命名","remark","字段备注","extFieldType","扩展信息","toFlow","是否提交到工作流","flowFieldId","提交到工作流的变量编号","isBizKey","是否是业务主键111前面两个1代表创建人及创建部门,后面一个1代表字段本身,0为不是主键,如000代表该表单不设置主键,001代表字段本身作为主键,创建人创建部门不是主键,100代表创建人为唯一主键,110代表创建人创建部门为主键,其它字段联合主键的话,按字段顺序排序","seqNo","显示顺序","groupId","归属组编号-用于解决多个tab页,或者多个子页面的问题";<br>
* 当前主键(包括多主键):<br>
* id;<br>
*/
@ -76,8 +76,8 @@ public class FormField implements java.io.Serializable {
@ApiModelProperty(notes="显示顺序",allowEmptyValue=true,example="",allowableValues="")
BigDecimal seqNo;
@ApiModelProperty(notes="归属组-用于解决多个tab页,或者多个子页面的问题",allowEmptyValue=true,example="",allowableValues="")
String groupName;
@ApiModelProperty(notes="归属组编号-用于解决多个tab页,或者多个子页面的问题",allowEmptyValue=true,example="",allowableValues="")
String groupId;
/**
*主键

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

@ -6,6 +6,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mdp.form.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -15,10 +16,7 @@ import com.mdp.core.err.BizException;
import com.mdp.core.service.BaseService;
import com.mdp.core.utils.BaseUtils;
import com.mdp.form.FormUtil;
import com.mdp.form.entity.FormData;
import com.mdp.form.entity.FormDataProcessApprova;
import com.mdp.form.entity.FormDataVo;
import com.mdp.form.entity.FormField;
/**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br>
* 组织 com.qqkj 顶级模块 mdp 大模块 form 小模块 <br>
@ -74,7 +72,8 @@ public class FormDataService extends BaseService {
*/
public int insertOrUpdate(FormDataVo formData,boolean checkFlowState) {
String formId=formData.getFormId();
Tips tips=this.createFormDataBizKey(formFieldService.getFormFieldFromCache(formId), formId, formData);
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formId);
Tips tips=this.createFormDataBizKey(formDefVo.getFormFields(), formId, formData);
if(tips.isOk()==false) {
throw new BizException(tips);
}
@ -158,12 +157,12 @@ public class FormDataService extends BaseService {
*/
public void batchInsertOrUpdate(List<FormDataVo> formDatas,boolean updateFlowState) {
String formId=formDatas.get(0).getFormId();
List<FormField> formFields=this.formFieldService.getFormFieldFromCache(formId);
if(formFields==null || formFields.size()==0) {
throw new BizException("表单字段不存在,无法完成表单数据保存");
FormDefVo fromDefVo=this.formFieldService.getFormFieldFromCache(formId);
if(fromDefVo==null) {
throw new BizException("表单字段不存在,无法完成表单数据保存");
}
List<FormField> formFields=fromDefVo.getFormFields();
Tips tips=new Tips("表单检验成功");
List<FormDataVo> needInsertList=new ArrayList<>();
List<FormDataVo> needUpdateList=new ArrayList<>();
@ -250,8 +249,8 @@ public class FormDataService extends BaseService {
needUpdateFormDataMap.put(fieldId, value);
}
FormDataVo formDataVo=BaseUtils.fromMap(needUpdateFormDataMap, FormDataVo.class);
Tips tips=this.createFormDataBizKey(this.formFieldService.getFormFieldFromCache(formId), formId, formDataVo);
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());

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

@ -77,7 +77,7 @@ public class FormDefService extends BaseService {
}
this.insert("insert",formDef);
this.ffs.batchInsert("insert",formFields);
formFieldCacheService.putFormFields(formId, formFields);
formFieldCacheService.putFormFields(formId, formDefVo);
}
@Transactional
@ -109,7 +109,7 @@ public class FormDefService extends BaseService {
this.ffs.batchDelete( formFields);
this.ffs.batchInsert(formFields);
formFieldCacheService.putFormFields(formDef.getId(), formFields);
formFieldCacheService.putFormFields(formDef.getId(), formDefVo);
}

16
mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java

@ -1,29 +1,27 @@
package com.mdp.form.service;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.mdp.form.entity.FormDefVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import com.mdp.form.entity.FormField;
@Service
public class FormFieldCacheService {
@Autowired
RedisTemplate redisTemplate;
String cachKey="form_field";
String cachKey="form_def_fields";
public void putFormFields(String formId,List<FormField> formFields) {
redisTemplate.opsForHash().put(cachKey+formId, formId, formFields);
redisTemplate.expire(cachKey+formId, 100, TimeUnit.DAYS);
public void putFormFields(String formId, FormDefVo formFields) {
redisTemplate.opsForHash().put(cachKey+"_"+formId, formId, formFields);
redisTemplate.expire(cachKey+"_"+formId, 100, TimeUnit.DAYS);
}
public List<FormField> getFromFields(String formId) {
return (List<FormField>) redisTemplate.opsForHash().get(cachKey+formId, formId);
public FormDefVo getFromFields(String formId) {
return (FormDefVo) redisTemplate.opsForHash().get(cachKey+"_"+formId, formId);
}

21
mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java

@ -2,6 +2,8 @@ package com.mdp.form.service;
import java.util.List;
import com.mdp.form.entity.FormDef;
import com.mdp.form.entity.FormDefVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +20,9 @@ public class FormFieldService extends BaseService {
@Autowired
FormFieldCacheService formFieldCacheService;
@Autowired
FormDefService formDefService;
public void deleteByFormId(String formId) {
@ -26,15 +31,19 @@ public class FormFieldService extends BaseService {
public List<FormField> getFormFieldFromCache(String formId){
List<FormField> formFields=this.formFieldCacheService.getFromFields(formId);
if(formFields==null) {
public FormDefVo getFormFieldFromCache(String formId){
FormDefVo formDefVo=this.formFieldCacheService.getFromFields(formId);
if(formDefVo==null) {
formDefVo=new FormDefVo();
FormDef formDef=formDefService.selectOneById(formId);
FormField formFieldQuery=new FormField();
formFieldQuery.setFormId(formId);
formFields = this.selectListByWhere(formFieldQuery); //列出FormField列表
formFieldCacheService.putFormFields(formId, formFields);
List<FormField> formFields = this.selectListByWhere(formFieldQuery); //列出FormField列表
formDefVo.setFormDef(formDef);
formDefVo.setFormFields(formFields);
formFieldCacheService.putFormFields(formId, formDefVo);
}
return formFields;
return formDefVo;
}
/** 请在此类添加自定义函数 */

12
mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml

@ -71,7 +71,7 @@
insert into form_field(
<include refid="columns"/>
) values (
#{formId},#{id},#{fieldId},#{fieldTitle},#{dictCode},#{fieldType},#{fieldLength},#{defaultValue},#{isMultiple},#{placeholder},#{isRequired},#{isDict},#{fieldIdCamel},#{remark},#{extFieldType},#{toFlow},#{flowFieldId},#{isBizKey},#{seqNo},#{groupName}
#{formId},#{id},#{fieldId},#{fieldTitle},#{dictCode},#{fieldType},#{fieldLength},#{defaultValue},#{isMultiple},#{placeholder},#{isRequired},#{isDict},#{fieldIdCamel},#{remark},#{extFieldType},#{toFlow},#{flowFieldId},#{isBizKey},#{seqNo},#{groupId}
)
</insert>
@ -146,7 +146,7 @@
<!--sql片段 列-->
<sql id="columns">
form_id,id,field_id,field_title,dict_code,field_type,field_length,default_value,is_multiple,placeholder,is_required,is_dict,field_id_camel,remark,ext_field_type,to_flow,flow_field_id,is_biz_key,seq_no,group_name
form_id,id,field_id,field_title,dict_code,field_type,field_length,default_value,is_multiple,placeholder,is_required,is_dict,field_id_camel,remark,ext_field_type,to_flow,flow_field_id,is_biz_key,seq_no,group_id
</sql>
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS-->
@ -170,7 +170,7 @@
<if test="flowFieldId != null and flowFieldId != ''"> and res.flow_field_id = #{flowFieldId} </if>
<if test="isBizKey != null and isBizKey != ''"> and res.is_biz_key = #{isBizKey} </if>
<if test="seqNo != null and seqNo != ''"> and res.seq_no = #{seqNo} </if>
<if test="groupName != null and groupName != ''"> and res.group_name = #{groupName} </if>
<if test="groupId != null and groupId != ''"> and res.group_id = #{groupId} </if>
</sql>
<!--sql片段 更新字段 -->
<sql id="set">
@ -192,7 +192,7 @@
flow_field_id = #{flowFieldId},
is_biz_key = #{isBizKey},
seq_no = #{seqNo},
group_name = #{groupName}
group_id = #{groupId}
</sql>
<sql id="someFieldSet">
<if test="formId != null and formId != ''"> form_id = #{formId}, </if>
@ -213,7 +213,7 @@
<if test="flowFieldId != null and flowFieldId != ''"> flow_field_id = #{flowFieldId}, </if>
<if test="isBizKey != null and isBizKey != ''"> is_biz_key = #{isBizKey}, </if>
<if test="seqNo != null and seqNo != ''"> seq_no = #{seqNo}, </if>
<if test="groupName != null and groupName != ''"> group_name = #{groupName}, </if>
<if test="groupId != null and groupId != ''"> group_id = #{groupId}, </if>
</sql>
<!--sql片段 批量更新 -->
<sql id="batchSet">
@ -235,6 +235,6 @@
flow_field_id = #{item.flowFieldId},
is_biz_key = #{item.isBizKey},
seq_no = #{item.seqNo},
group_name = #{item.groupName}
group_id = #{item.groupId}
</sql>
</mapper>
Loading…
Cancel
Save