update 标签管理业务

This commit is contained in:
lijiarao
2023-08-21 16:43:08 +08:00
parent e5146b61a9
commit dd5eeeb86e
8 changed files with 102 additions and 59 deletions
@@ -8,7 +8,7 @@ import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils;
import com.jero.modules.enums.FixedFieldEnum;
import com.jero.modules.tag.entity.LawsTag;
import com.jero.modules.tag.entity.LawsArea;
@@ -18,7 +18,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -121,11 +120,7 @@ public class LawsTagController extends JeroController<LawsTag, ILawsTagService>
}
}else{
//中英切换提示语
if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) {
throw new JeroBootException("属性已存在,请检查");
}else{
throw new JeroBootException("Attribute already exists, please check!");
}
return Result.error(MessageUtils.getMessage("tag.edit.属性已存在,请检查"));
}
}else {
lawsTagService.add(lawsTag);
@@ -150,50 +145,50 @@ public class LawsTagController extends JeroController<LawsTag, ILawsTagService>
@PostMapping(value = "/edit")
@RequiresPermissions("tag:edit")
public Result<?> edit(@Validated @RequestBody LawsTag lawsTag) {
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly()) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly())) {
//中英切换提示语
if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) {
return Result.error("固定字段,不可修改");
}else{
return Result.error("Fixed field, which cannot be modified.");
}
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly().toString()) ||
FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly().toString())) {
return Result.error(MessageUtils.getMessage("tag.edit.固定字段,不可修改"));
}else {
String isModel = lawsTag.getIsModel();
String tableName = FileTableIdEnum.getTableName(isModel);
QueryWrapper<LawsTag> queryWrapper=new QueryWrapper<>();
//查询同一模块下,同名数据
queryWrapper.eq("db_Field_txt", lawsTag.getDbFieldTxt()).eq("is_model", lawsTag.getIsModel());
List<LawsTag> existCgformTagList= lawsTagService.list(queryWrapper);
if(!existCgformTagList.isEmpty()){//有同名数据
if(existCgformTagList.get(0).getId().equals(lawsTag.getId())){//已存在同名的数据,就是正在编辑的这个
queryWrapper.eq("db_Field_txt", lawsTag.getDbFieldTxt())
.eq("is_model", isModel)
.last("limit 1");
LawsTag lawsTagOld = lawsTagService.getOne(queryWrapper);
//有同名数据
if(lawsTagOld != null) {
//已存在同名的数据,就是正在编辑的这个
if (lawsTagOld.getId().equals(lawsTag.getId())) {
lawsTagService.editById(lawsTag);
if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库
//同步文档库
if (isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal");
}else {//同步文档拆分
} else {//同步文档拆分
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal");
}
}else{//已存在同名的数据,不是正在编辑的这个
LawsTag lawsTagDB = existCgformTagList.get(0);
if(lawsTagDB.getIsDelete()==CommonConstant.DEL_FLAG_1){//有已删数据,恢复
lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, lawsTagDB.getId());
lawsTag.setId(lawsTagDB.getId());
//已存在同名的数据,不是正在编辑的这个
} else {
//有已删数据,恢复
if (Objects.equals(lawsTagOld.getIsDelete(), CommonConstant.DEL_FLAG_1)) {
lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, lawsTagOld.getId());
lawsTag.setId(lawsTagOld.getId());
lawsTagService.editById(lawsTag);
if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库
if (isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal");
}else {//同步文档拆分
} else {//同步文档拆分
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal");
}
}else {//有未删数据,报错
//中英切换提示语
if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) {
return Result.error("属性已存在,请检查");
}else{
return Result.error("Attribute already exists, please check!");
}
//有未删数据,报错
} else {
return Result.error(MessageUtils.getMessage("tag.edit.属性已存在,请检查"));
}
}
}else{
lawsTagService.editById(lawsTag);
if(lawsTag.getIsModel().equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库
if(isModel.equals(FileTableIdEnum.DOMESTIC_REGULATIONS.getValue())) {//同步文档库
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID.getValue()), "normal");
}else {//同步文档拆分
//this.onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_SPLIT_ID.getValue()), "normal");
@@ -217,13 +212,10 @@ public class LawsTagController extends JeroController<LawsTag, ILawsTagService>
Result<String> result = new Result<>();
LawsTag lawsTag = lawsTagService.queryById(id);
if(StringUtils.isNotBlank(String.valueOf(lawsTag.getIsReadOnly()))) {
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly()) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly())) {
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(lawsTag.getIsReadOnly().toString()) ||
FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(lawsTag.getIsReadOnly().toString())) {
//中英切换提示语
if(LanguageEnum.CN.getValue().equals(lawsTag.getCut())) {
result.error500("固定字段,不可删除");
}else{
result.error500("Fixed field, cannot be deleted.");
}
return Result.error(MessageUtils.getMessage("tag.edit.固定字段,不可删除"));
} else {
lawsTagService.updateDictDelFlag(CommonConstant.DEL_FLAG_1,id);
////onlCgformApiController.h(String.valueOf(FileTableIdEnum.FILE_TABLE_ID),"normal");//逻辑删除-->改变状态,数据库不删
@@ -250,11 +242,7 @@ public class LawsTagController extends JeroController<LawsTag, ILawsTagService>
LawsTag midTag= lawsTagService.getById(list);
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(midTag.getIsReadOnly())) || FixedFieldEnum.CONFIGURABLE_FIELD.getValue().equals(String.valueOf(midTag.getIsReadOnly()))) {
//中英切换提示语
if(LanguageEnum.CN.getValue().equals(midTag.getCut())) {
result.error500("包含固定字段,不可删除");
}else{
result.error500("It contains fixed fields and cannot be deleted.");
}
return Result.error(MessageUtils.getMessage("tag.delete.包含固定字段,不可删除"));
}else {
if (StringUtils.isNotBlank(String.valueOf(midTag.getIsReadOnly()))) {
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(midTag.getIsReadOnly()))) {
@@ -1,5 +1,6 @@
package com.jero.modules.tag.enums;
import com.jero.common.exception.JeroBootException;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -15,7 +16,15 @@ public enum FileTableIdEnum {
;
String name;
String table_name;
String tableName;
String value;
public static String getTableName(String value){
for (FileTableIdEnum fileTableIdEnum : values()) {
if (fileTableIdEnum.getValue().equals(value)) {
return fileTableIdEnum.getTableName();
}
}
throw new JeroBootException("标签类型不存在");
}
}
@@ -29,4 +29,6 @@ public interface LawsTagMapper extends BaseMapper<LawsTag> {
*/
@Update("update onl_cgform_field set is_delete = #{isDelete,jdbcType=INTEGER} where id = #{id,jdbcType=VARCHAR}")
public void updateDictDelFlag(@Param("isDelete") int isDelete, @Param("id") String id);
void executeDDL(@Param("sqlStr") String var1);
}
@@ -72,4 +72,8 @@
</if>
order by f.order_num
</select>
<update id="executeDDL" parameterType="java.lang.String">
${sqlStr}
</update>
</mapper>
@@ -26,6 +26,7 @@ import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -39,7 +40,7 @@ import java.util.stream.Collectors;
*/
@Service
public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> implements ILawsTagService {
@Autowired
@Resource
private LawsTagMapper lawsTagMapper;
@Autowired
@@ -141,6 +142,7 @@ public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> imp
}
}
save(lawsTag);
executeDDL(lawsTag,"add");
}
@@ -162,7 +164,8 @@ public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> imp
.map(e -> e.getOrderNum()).collect(Collectors.toList()).get(0);
queryWrapper.eq("order_num", inputOrderNum);
Integer orderNumCount = lawsTagMapper.selectCount(queryWrapper);
if(orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {//有重复展示顺序的,后面的号全+1
//有重复展示顺序的,后面的号全+1
if(orderNumCount > 0 && !orderNumData.equals(inputOrderNum)) {
//设置排序
QueryWrapper<LawsTag> orderNumQueryWrapper = new QueryWrapper<>();
orderNumQueryWrapper.ge("order_num", inputOrderNum)
@@ -189,10 +192,11 @@ public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> imp
}
//字段名称设置成拼音+下划线,存入数据库
String pinYin = HanYuPinYinUtil.changeToNumberPinYin(lawsTag.getDbFieldTxt());
String pinYin = HanYuPinYinUtil.changeToNumberPinYin(lawsTag.getDbFieldName());
lawsTag.setDbFieldName(pinYin.replace(" ","_"));
//处理DBLength为null的情况,默认为100
if (lawsTag.getDbLength() == null){
Integer dbLength = lawsTag.getDbLength();
if (dbLength == null){
lawsTag.setDbLength(100);
}
Date now = new Date();
@@ -207,9 +211,11 @@ public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> imp
}else{
lawsTag.setDbType("String");
if(lawsTag.getFieldShowType().equals(FieldTypeEnum.PULL_SINGLE.getValue())){
lawsTag.setDbLength(36); //单个ID的最大长度是36,所以单选默认设置为36
//单个ID的最大长度是36,所以单选默认设置为36
lawsTag.setDbLength(36);
}else if(lawsTag.getFieldShowType().equals(FieldTypeEnum.PULL_MORE.getValue())){
lawsTag.setDbLength(2000); // 多选默认设置为2000,即可选择2000/36=55个属性
// 多选默认设置为2000,即可选择2000/36=55个属性
lawsTag.setDbLength(2000);
}
}
lawsTag.setIsDelete(CommonConstant.DEL_FLAG_0);
@@ -220,10 +226,32 @@ public class ILawsTagServiceImpl extends ServiceImpl<LawsTagMapper, LawsTag> imp
lawsTag.setIsShowForm(Integer.valueOf(YesOrNoEnum.YES.getValue()));
// 数据库的字段名称必须以字母开头,若不以字母开头加上固定的grp前缀
if (!Validator.isMatchRegex("^[a-zA-Z].*$", lawsTag.getDbFieldName())){
lawsTag.setDbFieldName("grp_" + lawsTag.getDbFieldName());
String dbFieldName = lawsTag.getDbFieldName();
if (!Validator.isMatchRegex("^[a-zA-Z].*$", dbFieldName)){
lawsTag.setDbFieldName("grp_" + dbFieldName);
}
saveOrUpdate(lawsTag);
executeDDL(lawsTag,"modify");
}
private void executeDDL(LawsTag lawsTag, String modifyOrAdd) {
String isModel = lawsTag.getIsModel();
String dbType = lawsTag.getDbType();
Integer dbLength = lawsTag.getDbLength();
String dbFieldName = lawsTag.getDbFieldName();
String type;
if ("Double".equals(dbType)) {
type = "BigDecimal(100)";
}else if ("Date".equals(dbType)){
type = "Date";
}else {
type = "varchar("+dbLength+")";
}
String tableName = FileTableIdEnum.getTableName(isModel);
String dbFieldTxt = lawsTag.getDbFieldTxt();
String sql = "alter table " + tableName + " " + modifyOrAdd + " " + dbFieldName + " " + type + " null comment '"+dbFieldTxt+"'";
lawsTagMapper.executeDDL(sql);
}
/**
@@ -1,2 +1,6 @@
message=1
message.operate.error=123{0}
message.operate.error=123{0}
tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5
@@ -1,2 +1,6 @@
message=1
message.operate.error=123{0}
message.operate.error=123{0}
tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=It contains fixed fields and cannot be deleted.
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=Fixed field, which cannot be modified.
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=Fixed field, cannot be deleted.
tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=Attribute already exists, please check!
@@ -1,2 +1,6 @@
message=1
message.operate.error=123{0}
message.operate.error=123{0}
tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5