|
@@ -1,6 +1,7 @@
|
|
|
package com.lantone.daqe.facade;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.lantone.common.enums.IsDeleteEnum;
|
|
|
import com.lantone.common.exception.Asserts;
|
|
@@ -26,14 +27,17 @@ import com.lantone.daqe.facade.base.RegularMappingFacade;
|
|
|
import com.lantone.daqe.facade.base.StandardvalueInfoFacade;
|
|
|
import com.lantone.daqe.vo.AddColumnVerifyVO;
|
|
|
import com.lantone.daqe.vo.ColumnInfoVO;
|
|
|
+import com.lantone.daqe.vo.DelColumnVerifyVO;
|
|
|
import com.lantone.daqe.vo.GetColumnNameVO;
|
|
|
import com.lantone.daqe.vo.GetColumnVerifyPageVO;
|
|
|
import com.lantone.daqe.vo.GetRegularVO;
|
|
|
import com.lantone.daqe.vo.GetTableNameVO;
|
|
|
+import com.lantone.daqe.vo.UpdateColumnVerifyVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -72,7 +76,7 @@ public class ColumnVerifyManagementFacade {
|
|
|
/**
|
|
|
* 下拉框获取数据库表中列数据表名称信息
|
|
|
*
|
|
|
- * @param
|
|
|
+ * @param getTableNameVO
|
|
|
* @return: 数据库表中列数据表名称信息
|
|
|
*/
|
|
|
public List<GetTableNameDTO> getTableName(GetTableNameVO getTableNameVO) {
|
|
@@ -89,7 +93,7 @@ public class ColumnVerifyManagementFacade {
|
|
|
/**
|
|
|
* 下拉框获取数据库表中列数据字段名称信息
|
|
|
*
|
|
|
- * @param
|
|
|
+ * @param getColumnNameVO
|
|
|
* @return: 数据库表中列数据字段名称信息
|
|
|
*/
|
|
|
public List<GetColumnNameDTO> getColumnName(GetColumnNameVO getColumnNameVO) {
|
|
@@ -106,7 +110,7 @@ public class ColumnVerifyManagementFacade {
|
|
|
/**
|
|
|
* 下拉框获取正则式名称
|
|
|
*
|
|
|
- * @param
|
|
|
+ * @param getRegularVO
|
|
|
* @return: 正则式名称
|
|
|
*/
|
|
|
public List<GetRegularDTO> getRegular(GetRegularVO getRegularVO) {
|
|
@@ -121,7 +125,7 @@ public class ColumnVerifyManagementFacade {
|
|
|
/**
|
|
|
* 新增字段校验规则
|
|
|
*
|
|
|
- * @param
|
|
|
+ * @param addColumnVerifyVO
|
|
|
* @return: 是否成功
|
|
|
*/
|
|
|
public Boolean addColumnVerify(AddColumnVerifyVO addColumnVerifyVO) {
|
|
@@ -236,9 +240,278 @@ public class ColumnVerifyManagementFacade {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
- Asserts.fail("请输入表字段信息");
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除字段校验规则
|
|
|
+ *
|
|
|
+ * @param delColumnVerifyVO
|
|
|
+ * @return: 是否成功
|
|
|
+ */
|
|
|
+ public Boolean delColumnVerify(DelColumnVerifyVO delColumnVerifyVO) {
|
|
|
+ Boolean nonnullInfo = true;
|
|
|
+ Boolean tandardvalueInfo = true;
|
|
|
+ Boolean regular = true;
|
|
|
+ List<Long> ids = delColumnVerifyVO.getIds();
|
|
|
+ List<ColumnVerify> columnVerifyList = columnVerifyFacade.getBaseMapper().selectList(new QueryWrapper<ColumnVerify>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("column_id", ids)
|
|
|
+ );
|
|
|
+ if (ListUtil.isEmpty(columnVerifyList)) {
|
|
|
+ Asserts.fail("删除失败,不存在所需删除数据!");
|
|
|
+ }
|
|
|
+ //所删正则ID
|
|
|
+ List<Long> regularId = new ArrayList<>();
|
|
|
+ //非空判断ID
|
|
|
+ List<Long> nonnullId = new ArrayList<>();
|
|
|
+ //关键值ID
|
|
|
+ List<Long> standardValueId = new ArrayList<>();
|
|
|
+ for (ColumnVerify columnVerify : columnVerifyList) {
|
|
|
+ String type = columnVerify.getType();
|
|
|
+ //非空
|
|
|
+ if (ColumnVerifyTypeEnum.NONNULL_TYPE.getKey().equals(type)) {
|
|
|
+ nonnullId.add(columnVerify.getVerifyId());
|
|
|
+ }
|
|
|
+ //关键值
|
|
|
+ if (ColumnVerifyTypeEnum.STANDARD_TYPE.getKey().equals(type)) {
|
|
|
+ standardValueId.add(columnVerify.getVerifyId());
|
|
|
+ }
|
|
|
+ //正则
|
|
|
+ if (ColumnVerifyTypeEnum.REGULAR_TYPE.getKey().equals(type)) {
|
|
|
+ regularId.add(columnVerify.getVerifyId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //非空
|
|
|
+ if (ListUtil.isNotEmpty(nonnullId)) {
|
|
|
+ nonnullInfo = nonnullInfoFacade.update(new UpdateWrapper<NonnullInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("id", nonnullId)
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ //关键值
|
|
|
+ if (ListUtil.isNotEmpty(standardValueId)) {
|
|
|
+ tandardvalueInfo = standardvalueInfoFacade.update(new UpdateWrapper<StandardvalueInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("id", standardValueId)
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ //正则
|
|
|
+ if (ListUtil.isNotEmpty(regularId)) {
|
|
|
+ regular = regularMappingFacade.update(new UpdateWrapper<RegularMapping>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("id", regularId)
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (nonnullInfo && tandardvalueInfo && regular) {
|
|
|
+ boolean update = columnVerifyFacade.update(new UpdateWrapper<ColumnVerify>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("column_id", ids)
|
|
|
+ .set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ if (update) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Asserts.fail("删除失败");
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改字段校验规则
|
|
|
+ *
|
|
|
+ * @param updateColumnVerifyVO
|
|
|
+ * @return: 是否成功
|
|
|
+ */
|
|
|
+ public Boolean updateColumnVerify(UpdateColumnVerifyVO updateColumnVerifyVO) {
|
|
|
+ List<ColumnInfoVO> columnList = updateColumnVerifyVO.getColumnList();
|
|
|
+ AddColumnVerifyVO addColumnVerifyVO = new AddColumnVerifyVO();
|
|
|
+ ArrayList<ColumnInfoVO> columnInfoAdd = new ArrayList<>();
|
|
|
+ ArrayList<ColumnInfoVO> columnInfoUpdate = new ArrayList<>();
|
|
|
+ //查出表列信息ID
|
|
|
+ List<Long> columnInfoIdAdd = new ArrayList<>();
|
|
|
+ List<Long> columnInfoIdUpdate = new ArrayList<>();
|
|
|
+ for (ColumnInfoVO columnInfoVO : columnList) {
|
|
|
+ ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectOne(new QueryWrapper<ColumnInfo>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq(StringUtil.isNotBlank(columnInfoVO.getTableCname()), "table_cname", columnInfoVO.getTableCname())
|
|
|
+ .eq(StringUtil.isNotBlank(columnInfoVO.getTableEname()), "table_ename", columnInfoVO.getTableEname())
|
|
|
+ .eq(StringUtil.isNotBlank(columnInfoVO.getColumnCname()), "column_cname", columnInfoVO.getColumnCname())
|
|
|
+ .eq(StringUtil.isNotBlank(columnInfoVO.getColumnEname()), "column_ename", columnInfoVO.getColumnEname())
|
|
|
+ );
|
|
|
+ Long columnId = columnInfo.getId();
|
|
|
+ ColumnVerify columnVerify = columnVerifyFacade.getById(columnId);
|
|
|
+ if (columnVerify != null) {
|
|
|
+ //库中已有维护
|
|
|
+ columnInfoIdUpdate.add(columnId);
|
|
|
+ columnInfoUpdate.add(columnInfoVO);
|
|
|
+ } else {
|
|
|
+ //库中暂无维护
|
|
|
+ columnInfoIdAdd.add(columnId);
|
|
|
+ columnInfoAdd.add(columnInfoVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(columnInfoAdd)) {
|
|
|
+ addColumnVerifyVO.setHospitalId(updateColumnVerifyVO.getHospitalId());
|
|
|
+ addColumnVerifyVO.setColumnList(updateColumnVerifyVO.getColumnList());
|
|
|
+ addColumnVerifyVO.setIsRequired(updateColumnVerifyVO.getIsRequired());
|
|
|
+ addColumnVerifyVO.setRegularId(updateColumnVerifyVO.getRegularId());
|
|
|
+ addColumnVerifyVO.setRegularName(updateColumnVerifyVO.getRegularName());
|
|
|
+ addColumnVerifyVO.setStandardValueList(updateColumnVerifyVO.getStandardValueList());
|
|
|
+ addColumnVerifyVO.setDescription(updateColumnVerifyVO.getDescription());
|
|
|
+ //库中暂无走新增流程
|
|
|
+ addColumnVerify(addColumnVerifyVO);
|
|
|
+ }
|
|
|
+ //库中已有走修改流程
|
|
|
+ if (ListUtil.isNotEmpty(columnInfoIdUpdate)) {
|
|
|
+ for (Long columnId : columnInfoIdUpdate) {
|
|
|
+ ColumnInfo columnInfo = columnInfoFacade.getById(columnId);
|
|
|
+ ColumnVerify columnVerify = new ColumnVerify();
|
|
|
+ columnVerify.setColumnId(columnId);
|
|
|
+ columnVerify.setColumnCname(columnInfo.getColumnCname());
|
|
|
+ columnVerify.setColumnEname(columnInfo.getColumnEname());
|
|
|
+ columnVerify.setTableCname(columnInfo.getTableCname());
|
|
|
+ columnVerify.setTableEname(columnInfo.getTableEname());
|
|
|
+ if (updateColumnVerifyVO.getRegularId() != null) {
|
|
|
+ //插入正则维护表
|
|
|
+ //先判断是否该字段信息是否已关联正则
|
|
|
+ RegularMapping selectOneMapping = regularMappingFacade.getBaseMapper().selectOne(new QueryWrapper<RegularMapping>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ );
|
|
|
+ if (selectOneMapping != null) {
|
|
|
+ //已关联正则走修改
|
|
|
+ regularMappingFacade.update(new UpdateWrapper<RegularMapping>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .set("regular_id", updateColumnVerifyVO.getRegularId())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ Long mappingId = selectOneMapping.getId();
|
|
|
+ //修改总表
|
|
|
+ columnVerifyFacade.update(new UpdateWrapper<ColumnVerify>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("type", ColumnVerifyTypeEnum.REGULAR_TYPE.getKey())
|
|
|
+ .eq("verify_id", mappingId)
|
|
|
+ .set("verify_val", updateColumnVerifyVO.getRegularName())
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ //未关联正则走新增
|
|
|
+ RegularMapping regularMapping = new RegularMapping();
|
|
|
+ regularMapping.setColumnId(columnId);
|
|
|
+ regularMapping.setGmtCreate(new Date());
|
|
|
+ regularMapping.setRegularId(updateColumnVerifyVO.getRegularId());
|
|
|
+ try {
|
|
|
+ regularMappingFacade.getBaseMapper().insert(regularMapping);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("关联正则失败,请重试!");
|
|
|
+ }
|
|
|
+ Long regularMappingId = regularMapping.getId();
|
|
|
+ //插入总表
|
|
|
+ columnVerify.setType(ColumnVerifyTypeEnum.REGULAR_TYPE.getKey());
|
|
|
+ columnVerify.setVerifyId(regularMappingId);
|
|
|
+ columnVerify.setVerifyVal(updateColumnVerifyVO.getRegularName());
|
|
|
+ columnVerify.setDescription(updateColumnVerifyVO.getDescription());
|
|
|
+ columnVerify.setGmtCreate(new Date());
|
|
|
+ try {
|
|
|
+ columnVerifyFacade.getBaseMapper().insert(columnVerify);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("保存失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (updateColumnVerifyVO.getIsRequired() != null) {
|
|
|
+ //插入表字段的非空校验维护表
|
|
|
+ //先判断是否该字段信息是否已存在非空规则
|
|
|
+ NonnullInfo selectOneInfo = nonnullInfoFacade.getBaseMapper().selectOne(new QueryWrapper<NonnullInfo>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ );
|
|
|
+ if (selectOneInfo != null) {
|
|
|
+ //已关联非空校验走修改
|
|
|
+ nonnullInfoFacade.update(new UpdateWrapper<NonnullInfo>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .set("is_required", updateColumnVerifyVO.getIsRequired())
|
|
|
+ .set("gmt_modified", new Date())
|
|
|
+ );
|
|
|
+ Long mappingId = selectOneInfo.getId();
|
|
|
+ //修改总表
|
|
|
+ columnVerifyFacade.update(new UpdateWrapper<ColumnVerify>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("type", ColumnVerifyTypeEnum.NONNULL_TYPE.getKey())
|
|
|
+ .eq("verify_id", mappingId)
|
|
|
+ .set("verify_val", updateColumnVerifyVO.getIsRequired())
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ NonnullInfo nonnullInfo = new NonnullInfo();
|
|
|
+ nonnullInfo.setColumnId(columnId);
|
|
|
+ nonnullInfo.setGmtCreate(new Date());
|
|
|
+ nonnullInfo.setIsRequired(updateColumnVerifyVO.getIsRequired());
|
|
|
+ try {
|
|
|
+ nonnullInfoFacade.getBaseMapper().insert(nonnullInfo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("关联是否非空失败,请重试!");
|
|
|
+ }
|
|
|
+ Long nonnullInfoId = nonnullInfo.getId();
|
|
|
+ //插入总表
|
|
|
+ columnVerify.setType(ColumnVerifyTypeEnum.NONNULL_TYPE.getKey());
|
|
|
+ columnVerify.setVerifyId(nonnullInfoId);
|
|
|
+ columnVerify.setVerifyVal(updateColumnVerifyVO.getIsRequired());
|
|
|
+ columnVerify.setDescription(updateColumnVerifyVO.getDescription());
|
|
|
+ columnVerify.setGmtCreate(new Date());
|
|
|
+ try {
|
|
|
+ columnVerifyFacade.getBaseMapper().insert(columnVerify);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("保存失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ListUtil.isNotEmpty(updateColumnVerifyVO.getStandardValueList())) {
|
|
|
+ //插入关键字信息维护表
|
|
|
+ List<String> standardValueList = updateColumnVerifyVO.getStandardValueList();
|
|
|
+ //先删除之前的关联然后直接插入
|
|
|
+ standardvalueInfoFacade.remove(new QueryWrapper<StandardvalueInfo>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ );
|
|
|
+ columnVerifyFacade.remove(new QueryWrapper<ColumnVerify>()
|
|
|
+ .eq("column_id", columnId)
|
|
|
+ .eq("type", ColumnVerifyTypeEnum.STANDARD_TYPE.getKey())
|
|
|
+ );
|
|
|
+ for (String standardValue : standardValueList) {
|
|
|
+ StandardvalueInfo standardvalueInfo = new StandardvalueInfo();
|
|
|
+ standardvalueInfo.setColumnId(columnId);
|
|
|
+ standardvalueInfo.setGmtCreate(new Date());
|
|
|
+ standardvalueInfo.setVal(standardValue);
|
|
|
+ try {
|
|
|
+ standardvalueInfoFacade.getBaseMapper().insert(standardvalueInfo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("关联关键字失败,请重试!");
|
|
|
+ }
|
|
|
+ Long standardvalueInfoId = standardvalueInfo.getId();
|
|
|
+ //插入总表
|
|
|
+ columnVerify.setType(ColumnVerifyTypeEnum.STANDARD_TYPE.getKey());
|
|
|
+ columnVerify.setVerifyId(standardvalueInfoId);
|
|
|
+ columnVerify.setVerifyVal(standardValue);
|
|
|
+ columnVerify.setDescription(updateColumnVerifyVO.getDescription());
|
|
|
+ columnVerify.setGmtCreate(new Date());
|
|
|
+ try {
|
|
|
+ columnVerifyFacade.getBaseMapper().insert(columnVerify);
|
|
|
+ } catch (Exception e) {
|
|
|
+ Asserts.fail("保存失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|