Browse Source

升级2.0.0

master
陈裕财 2 years ago
parent
commit
b667c2f13f
  1. 68
      mdp-form/src/main/java/com/mdp/form/ctrl/FormDataController.java
  2. 5
      mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java
  3. 29
      mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java
  4. 34
      mdp-form/src/main/java/com/mdp/form/service/FormDataService.java
  5. 3
      mdp-form/src/main/java/com/mdp/form/service/FormDefService.java
  6. 2
      mdp-form/src/main/java/com/mdp/form/service/FormFieldCacheService.java
  7. 5
      mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java

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

@ -2,6 +2,12 @@ package com.mdp.form.ctrl;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.mdp.core.utils.BaseUtils;
import com.mdp.core.utils.ObjectTools;
import com.mdp.form.entity.FormDefVo;
import com.mdp.form.entity.FormField;
import com.mdp.form.service.FormFieldService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -45,6 +51,10 @@ public class FormDataController {
@Autowired @Autowired
private FormDataService formDataService; private FormDataService formDataService;
@Autowired
private FormFieldService formFieldService;
@ApiOperation( value = "表单数据表-查询列表",notes=" ") @ApiOperation( value = "表单数据表-查询列表",notes=" ")
@ApiEntityParams(FormData.class) @ApiEntityParams(FormData.class)
@ApiResponses({ @ApiResponses({
@ -75,6 +85,13 @@ public class FormDataController {
if(StringUtils.isEmpty(formData.getFlowState())) { if(StringUtils.isEmpty(formData.getFlowState())) {
formData.setFlowState("0"); formData.setFlowState("0");
} }
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formData.getFormId());
if(formDefVo==null){
throw new BizException("formDef-0","表单不存在");
}
List<FormField> formFields=formDefVo.getFormFields();
User user=LoginUtils.getCurrentUserInfo(); User user=LoginUtils.getCurrentUserInfo();
formData.setUserid(user.getUserid()); formData.setUserid(user.getUserid());
formData.setCuserid(user.getUserid()); formData.setCuserid(user.getUserid());
@ -83,10 +100,30 @@ public class FormDataController {
formData.setDeptName(user.getDeptName()); formData.setDeptName(user.getDeptName());
formData.setCreateTime(new Date()); formData.setCreateTime(new Date());
formData.setLastTime(new Date()); formData.setLastTime(new Date());
/**
* 必输项检查
*/
Map<String,Object> formDataMap=BaseUtils.toMap(formData);
for (FormField field : formFields) {
Object pkValue= formDataMap.get(field.getFieldIdCamel());
if("1".equals(field.getIsRequired()) && ObjectTools.isEmpty(pkValue)){
return Result.error("field-required","%s不能为空",field.getFieldTitle());
}
}
String bizKey=formDataService.createBizKey(formFields,formData);
if(formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){
return Result.error("biz-key-exists","%s已存在",bizKey);
};
formData.setBizKey(bizKey);
formDataService.save(formData); formDataService.save(formData);
return Result.ok("add-ok","添加成功!"); return Result.ok("add-ok","添加成功!");
} }
@ApiOperation( value = "表单数据表-删除",notes=" ") @ApiOperation( value = "表单数据表-删除",notes=" ")
@ApiResponses({ @ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}")
@ -103,6 +140,13 @@ public class FormDataController {
}) })
@RequestMapping(value="/edit",method=RequestMethod.POST) @RequestMapping(value="/edit",method=RequestMethod.POST)
public Result editFormData(@RequestBody FormData formData) { public Result editFormData(@RequestBody FormData formData) {
if(ObjectTools.isEmpty(formData.getId())){
return Result.error("id-0","主键不能为空");
}
FormData formDataDb=formDataService.getById(formData.getId());
if(formDataDb==null){
return Result.error("data-0","数据已不存在");
}
formData.setLastTime(new Date()); formData.setLastTime(new Date());
if(formData.getCreateTime()==null) { if(formData.getCreateTime()==null) {
formData.setCreateTime(new Date()); formData.setCreateTime(new Date());
@ -114,6 +158,30 @@ public class FormDataController {
if(StringUtils.isEmpty(formData.getFlowState())) { if(StringUtils.isEmpty(formData.getFlowState())) {
formData.setFlowState("0"); formData.setFlowState("0");
} }
FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formData.getFormId());
if(formDefVo==null){
throw new BizException("formDef-0","表单不存在");
}
List<FormField> formFields=formDefVo.getFormFields();
/**
* 必输项检查
*/
Map<String,Object> formDataMap=BaseUtils.toMap(formData);
for (FormField field : formFields) {
Object pkValue= formDataMap.get(field.getFieldIdCamel());
if("1".equals(field.getIsRequired()) && ObjectTools.isEmpty(pkValue)){
return Result.error("field-required","%s不能为空",field.getFieldTitle());
}
}
String bizKey= formDataService.createBizKey(formFields,formData);
formData.setBizKey(bizKey);
if(!bizKey.equals(formDataDb.getBizKey())){
if(formDataService.count(QueryTools.initQueryWrapper(FormData.class).eq("biz_key",bizKey).eq("form_id",formData.getFormId()))>0){
return Result.error("biz-key-exists","%s已存在",bizKey);
};
}
formDataService.updateById(formData); formDataService.updateById(formData);
return Result.ok("edit-ok","修改成功!"); return Result.ok("edit-ok","修改成功!");
} }

5
mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java

@ -3,6 +3,7 @@ package com.mdp.form.ctrl;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.mdp.core.utils.ObjectTools;
import com.mdp.form.entity.FormDefVo; import com.mdp.form.entity.FormDefVo;
import com.mdp.form.service.FormDataService; import com.mdp.form.service.FormDataService;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -120,9 +121,9 @@ public class FormDefController {
if(count>0) { if(count>0) {
return Result.error("has-form-data-001","该表单下还有%s条数据,请先删除数据 后删除表单",count); return Result.error("has-form-data-001","该表单下还有%s条数据,请先删除数据 后删除表单",count);
}else { }else {
int i =formDefService.deleteByPk(formDef);
formDefService.removeById(formDef.getId());
} }
formDefService.removeById(formDef);
return Result.ok("del-ok","删除成功!"); return Result.ok("del-ok","删除成功!");
} }

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

@ -19,25 +19,14 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mdp.core.entity.Result; import com.mdp.core.entity.Result;
import com.mdp.core.query.QueryTools;
import static com.mdp.core.utils.BaseUtils.*;
import com.mdp.core.entity.Tips;
import com.mdp.core.entity.LangTips; import com.mdp.core.entity.LangTips;
import com.mdp.core.err.BizException; import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.NumberUtil;
import com.mdp.safe.client.entity.User; import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils; import com.mdp.safe.client.utils.LoginUtils;
import com.mdp.swagger.ApiEntityParams; import com.mdp.swagger.ApiEntityParams;
import io.swagger.annotations.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
import com.mdp.form.service.FormFieldService; import com.mdp.form.service.FormFieldService;
import com.mdp.form.entity.FormField; import com.mdp.form.entity.FormField;
@ -54,8 +43,6 @@ public class FormFieldController {
@Autowired @Autowired
private FormDefService formDefService; private FormDefService formDefService;
@Autowired
FormFieldCacheService formFieldCacheService;
@ApiOperation( value = "表单字段定义-查询列表",notes=" ") @ApiOperation( value = "表单字段定义-查询列表",notes=" ")
@ApiEntityParams(FormField.class) @ApiEntityParams(FormField.class)
@ -68,21 +55,11 @@ public class FormFieldController {
User user=LoginUtils.getCurrentUserInfo(); User user=LoginUtils.getCurrentUserInfo();
String formId=(String) params.get("formId"); String formId=(String) params.get("formId");
if(!StringUtils.hasText(formId)){ if(!StringUtils.hasText(formId)){
return ResponseHelper.failed("formId-0","formId不能为空");
return Result.error("formId-0","formId不能为空");
} }
FormDefVo formDefVo=this.formFieldCacheService.getFromFields(formId);
FormDefVo formDefVo=this.formFieldService.getFormFieldFromCache(formId);
if(formDefVo==null ) { if(formDefVo==null ) {
FormDef formDef=this.formDefService.selectOneById(formId);
if(formDef==null){
return ResponseHelper.failed("formDef-0","表单不存在");
}
FormField formFieldQuery=new FormField();
formFieldQuery.setFormId(formId);
List<FormField> formFields = formFieldService.selectListByWhere(formFieldQuery); //列出FormField列表
formDefVo=new FormDefVo();
formDefVo.setFormDef(formDef);
formDefVo.setFormFields(formFields);
formFieldCacheService.putFormFields(formId, formDefVo);
return Result.error("formDef-0","表单不存在");
} }
return Result.ok("query-ok","查询成功").setData(formDefVo).setTotal(1).put("formDef",formDefVo.getFormDef()); return Result.ok("query-ok","查询成功").setData(formDefVo).setTotal(1).put("formDef",formDefVo.getFormDef());
}catch (BizException e) { }catch (BizException e) {

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

@ -3,7 +3,9 @@ package com.mdp.form.service;
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.utils.BaseUtils; import com.mdp.core.utils.BaseUtils;
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 org.slf4j.Logger; import org.slf4j.Logger;
@ -67,6 +69,38 @@ public class FormDataService extends BaseService<FormDataMapper,FormData> {
} }
/**
* 创建业务主键
* @param formFields
* @param formData
* @return
*/
public String createBizKey(List<FormField> formFields,FormData formData){
List<String> pks=new ArrayList<>();
List<FormField> pkFields=formFields.stream().filter(k->k.getIsBizKey().endsWith("1")).collect(Collectors.toList());
if(pkFields==null || pkFields.size()==0){
throw new BizException("pkfields-0","表单主键不存在,请设置表单主键");
}
Map<String,Object> formDataMap= BaseUtils.toMap(formData);
FormField pk=pkFields.get(0);
String isBizKey=pk.getIsBizKey();
if(isBizKey.startsWith("1")){
pks.add(formData.getCuserid());
}
if(isBizKey.charAt(1)=='1'){
pks.add(formData.getDeptid());
}
for (FormField pkField : pkFields) {
Object pkValue= formDataMap.get(pkField.getFieldIdCamel());
if(ObjectTools.isEmpty(pkValue)){
throw new BizException(LangTips.errMsg("pk-field-required","%s不能为空",pkField.getFieldTitle()));
}
pks.add((String) formDataMap.get(pkField.getFieldIdCamel()));
}
return pks.stream().collect(Collectors.joining(","));
}
/** /**
* 流程结束时调用更新数据状态未2 审核结束 * 流程结束时调用更新数据状态未2 审核结束
* @param flowState * @param flowState

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

@ -125,9 +125,8 @@ public class FormDefService extends BaseService<FormDefMapper,FormDef> {
formField.setFormId(formDef.getId()); formField.setFormId(formDef.getId());
formField.setId(ffs.createKey("id")); formField.setId(ffs.createKey("id"));
} }
this.updateByPk(formDef);
this.save(formDef);
this.ffs.deleteByFormId(formDef.getId()); this.ffs.deleteByFormId(formDef.getId());
this.ffs.batchDelete( formFields);
this.ffs.saveBatch(formFields); this.ffs.saveBatch(formFields);
formFieldCacheService.putFormFields(formDef.getId(), formDefVo); formFieldCacheService.putFormFields(formDef.getId(), formDefVo);

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

@ -20,7 +20,7 @@ public class FormFieldCacheService {
redisTemplate.expire(cachKey+"_"+formId, 100, TimeUnit.DAYS); redisTemplate.expire(cachKey+"_"+formId, 100, TimeUnit.DAYS);
} }
public FormDefVo getFromFields(String formId) {
public FormDefVo getFormFields(String formId) {
return (FormDefVo) redisTemplate.opsForHash().get(cachKey+"_"+formId, formId); return (FormDefVo) redisTemplate.opsForHash().get(cachKey+"_"+formId, formId);
} }

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

@ -13,9 +13,6 @@ import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mdp.core.service.BaseService; import com.mdp.core.service.BaseService;
import static com.mdp.core.utils.BaseUtils.*;
import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.form.entity.FormField; import com.mdp.form.entity.FormField;
import com.mdp.form.mapper.FormFieldMapper; import com.mdp.form.mapper.FormFieldMapper;
@ -56,7 +53,7 @@ public class FormFieldService extends BaseService<FormFieldMapper,FormField> {
public FormDefVo getFormFieldFromCache(String formId){ public FormDefVo getFormFieldFromCache(String formId){
FormDefVo formDefVo=this.formFieldCacheService.getFromFields(formId);
FormDefVo formDefVo=this.formFieldCacheService.getFormFields(formId);
if(formDefVo==null) { if(formDefVo==null) {
formDefVo=new FormDefVo(); formDefVo=new FormDefVo();
FormDef formDef=formDefService.selectOneById(formId); FormDef formDef=formDefService.selectOneById(formId);

Loading…
Cancel
Save