From 13f94ae8adf75ce75a9dc5364a5ec82feaf31c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 14 Feb 2023 01:50:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=94=9F=E6=88=90form=5Ffiel?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mdp/form/ctrl/FormFieldController.java | 34 ++++++++++++++----- .../java/com/mdp/form/entity/FormField.java | 6 ++-- .../com/mdp/form/service/FormDataService.java | 21 ++++++------ .../com/mdp/form/service/FormDefService.java | 6 ++-- .../form/service/FormFieldCacheService.java | 16 ++++----- .../mdp/form/service/FormFieldService.java | 21 ++++++++---- .../mapper/mdp/form/dao/FormFieldMapper.xml | 12 +++---- 7 files changed, 70 insertions(+), 46 deletions(-) diff --git a/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java b/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java index b8f0c1e..897bf17 100644 --- a/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java +++ b/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; @@ -63,18 +71,28 @@ public class FormFieldController { }) @RequestMapping(value="/list",method=RequestMethod.GET) public Map listFormField(@Ignore @RequestParam Map formField){ - Map m = new HashMap<>(); + Map m = new HashMap<>(); String formId=(String) formField.get("formId"); - List 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 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; diff --git a/mdp-form/src/main/java/com/mdp/form/entity/FormField.java b/mdp-form/src/main/java/com/mdp/form/entity/FormField.java index 653ab42..1fc64da 100644 --- a/mdp-form/src/main/java/com/mdp/form/entity/FormField.java +++ b/mdp-form/src/main/java/com/mdp/form/entity/FormField.java @@ -8,7 +8,7 @@ import java.math.BigDecimal; /** * 组织 com 顶级模块 mdp 大模块 form 小模块
* 实体 FormField所有属性名:
- * "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页,或者多个子页面的问题";
+ * "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页,或者多个子页面的问题";
* 当前主键(包括多主键):
* id;
*/ @@ -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; /** *主键 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 ef3706c..58c8d39 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 @@ -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; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com.qqkj 顶级模块 mdp 大模块 form 小模块
@@ -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 formDatas,boolean updateFlowState) { String formId=formDatas.get(0).getFormId(); - List formFields=this.formFieldService.getFormFieldFromCache(formId); - if(formFields==null || formFields.size()==0) { + FormDefVo fromDefVo=this.formFieldService.getFormFieldFromCache(formId); + + if(fromDefVo==null) { throw new BizException("表单字段不存在,无法完成表单数据保存"); - } - + List formFields=fromDefVo.getFormFields(); Tips tips=new Tips("表单检验成功"); List needInsertList=new ArrayList<>(); List 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()); diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java b/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java index 6da5dc3..d8ae103 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java +++ b/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java @@ -76,8 +76,8 @@ public class FormDefService extends BaseService { formField.setId(ffs.createKey("id")); } this.insert("insert",formDef); - this.ffs.batchInsert("insert",formFields); - formFieldCacheService.putFormFields(formId, formFields); + this.ffs.batchInsert("insert",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); } diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java b/mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java index 4431c44..949f261 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java +++ b/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 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 getFromFields(String formId) { - return (List) redisTemplate.opsForHash().get(cachKey+formId, formId); + public FormDefVo getFromFields(String formId) { + return (FormDefVo) redisTemplate.opsForHash().get(cachKey+"_"+formId, formId); } diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java b/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java index 60b2f48..f06231a 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java +++ b/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; @@ -17,6 +19,9 @@ public class FormFieldService extends BaseService { @Autowired FormFieldCacheService formFieldCacheService; + + @Autowired + FormDefService formDefService; @@ -26,15 +31,19 @@ public class FormFieldService extends BaseService { - public List getFormFieldFromCache(String formId){ - List 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 formFields = this.selectListByWhere(formFieldQuery); //列出FormField列表 + formDefVo.setFormDef(formDef); + formDefVo.setFormFields(formFields); + formFieldCacheService.putFormFields(formId, formDefVo); } - return formFields; + return formDefVo; } /** 请在此类添加自定义函数 */ diff --git a/mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml b/mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml index 26e69e2..04b24e3 100644 --- a/mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml +++ b/mdp-form/src/main/resources/mybatis/mapper/mdp/form/dao/FormFieldMapper.xml @@ -71,7 +71,7 @@ insert into form_field( ) 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} ) @@ -146,7 +146,7 @@ - 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 @@ -170,7 +170,7 @@ and res.flow_field_id = #{flowFieldId} and res.is_biz_key = #{isBizKey} and res.seq_no = #{seqNo} - and res.group_name = #{groupName} + and res.group_id = #{groupId} @@ -192,7 +192,7 @@ flow_field_id = #{flowFieldId}, is_biz_key = #{isBizKey}, seq_no = #{seqNo}, - group_name = #{groupName} + group_id = #{groupId} form_id = #{formId}, @@ -213,7 +213,7 @@ flow_field_id = #{flowFieldId}, is_biz_key = #{isBizKey}, seq_no = #{seqNo}, - group_name = #{groupName}, + group_id = #{groupId}, @@ -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} \ No newline at end of file