فهرست منبع

Merge branch 'dev/20220228_v3.0.1通用版_渠道管理第一期' into debug

rengb 3 سال پیش
والد
کامیت
bccff76f54
29فایلهای تغییر یافته به همراه719 افزوده شده و 119 حذف شده
  1. 18 38
      common/src/main/java/com/lantone/common/util/HttpUtils.java
  2. 43 18
      common/src/main/java/com/lantone/common/util/SysUserUtils.java
  3. 74 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetByIdColumnResultDTO.java
  4. 50 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetByIdColumnVerifyDTO.java
  5. 7 6
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnDTO.java
  6. 5 2
      daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnNameDTO.java
  7. 31 0
      daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnNameDTO.java
  8. 2 2
      daqe-center/src/main/java/com/lantone/daqe/dto/GetTableNameDTO.java
  9. 6 0
      daqe-center/src/main/java/com/lantone/daqe/entity/NonnullResult.java
  10. 97 2
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java
  11. 62 20
      daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java
  12. 12 4
      daqe-center/src/main/java/com/lantone/daqe/facade/DiseaseManagementFacade.java
  13. 17 9
      daqe-center/src/main/java/com/lantone/daqe/facade/DrugManagementFacade.java
  14. 12 4
      daqe-center/src/main/java/com/lantone/daqe/facade/OperationManagementFacade.java
  15. 41 3
      daqe-center/src/main/java/com/lantone/daqe/facade/base/DiseaseInfoFacade.java
  16. 40 2
      daqe-center/src/main/java/com/lantone/daqe/facade/base/DrugInfoFacade.java
  17. 40 2
      daqe-center/src/main/java/com/lantone/daqe/facade/base/OperationInfoFacade.java
  18. 4 1
      daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnInfoMapper.java
  19. 8 0
      daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnVerifyMapper.java
  20. 3 0
      daqe-center/src/main/java/com/lantone/daqe/vo/ColumnInfoVO.java
  21. 28 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetByIdColumnResultVO.java
  22. 27 0
      daqe-center/src/main/java/com/lantone/daqe/vo/GetByIdColumnVerifyVO.java
  23. 2 2
      daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnNameVO.java
  24. 2 2
      daqe-center/src/main/java/com/lantone/daqe/vo/GetTableNameVO.java
  25. 8 0
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java
  26. 17 2
      daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java
  27. 27 0
      daqe-center/src/main/resources/mapper/ColumnInfoMapper.xml
  28. 35 0
      daqe-center/src/main/resources/mapper/ColumnVerifyMapper.xml
  29. 1 0
      daqe-center/src/main/resources/mapper/base/BaseNonnullResultMapper.xml

+ 18 - 38
common/src/main/java/com/lantone/common/util/HttpUtils.java

@@ -1,7 +1,6 @@
 package com.lantone.common.util;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -23,10 +22,9 @@ import java.util.Map;
  * @author: gaodm
  * @time: 2018/8/3 17:45
  */
+@Slf4j
 public class HttpUtils {
 
-    private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
-
     /**
      * 获取当前请求的HttpServletRequest实例
      *
@@ -120,25 +118,23 @@ public class HttpUtils {
                 }
             }
         }
-        return  "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
+        return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
     }
 
     /**
      * 向指定 URL 发送POST方法的请求
      *
-     * @param url 发送请求的 URL
+     * @param url   发送请求的 URL
      * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
      * @return 所代表远程资源的响应结果
      */
-    public static String sendPost(String url, String param)
-    {
+    public static String sendPost(String url, String param) {
         PrintWriter out = null;
         BufferedReader in = null;
         StringBuilder result = new StringBuilder();
-        try
-        {
+        try {
             String urlNameString = url;
-            log.info("sendPost - {}", urlNameString);
+            log.debug("sendPost - {}", urlNameString);
             URL realUrl = new URL(urlNameString);
             URLConnection conn = realUrl.openConnection();
             conn.setRequestProperty("accept", "*/*");
@@ -153,43 +149,27 @@ public class HttpUtils {
             out.flush();
             in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
             String line;
-            while ((line = in.readLine()) != null)
-            {
+            while ((line = in.readLine()) != null) {
                 result.append(line);
             }
-            log.info("recv - {}", result);
-        }
-        catch (ConnectException e)
-        {
+            log.debug("recv - {}", result);
+        } catch (ConnectException e) {
             log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
-        }
-        catch (SocketTimeoutException e)
-        {
+        } catch (SocketTimeoutException e) {
             log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
-        }
-        finally
-        {
-            try
-            {
-                if (out != null)
-                {
+        } finally {
+            try {
+                if (out != null) {
                     out.close();
                 }
-                if (in != null)
-                {
+                if (in != null) {
                     in.close();
                 }
-            }
-            catch (IOException ex)
-            {
+            } catch (IOException ex) {
                 log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
             }
         }

+ 43 - 18
common/src/main/java/com/lantone/common/util/SysUserUtils.java

@@ -3,14 +3,15 @@ package com.lantone.common.util;
 import cn.hutool.json.JSONUtil;
 import com.lantone.common.constant.AuthConstant;
 import com.lantone.common.domain.UserDto;
-import com.lantone.common.exception.Asserts;
 import com.nimbusds.jose.JWSObject;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @Description: 用户工具类
  * @author: rengb
  * @time: 2021/1/5 18:27
  */
+@Slf4j
 public class SysUserUtils {
 
     /**
@@ -29,15 +30,17 @@ public class SysUserUtils {
      * @return
      */
     public static UserDto getUserByToken(String token) {
-        UserDto userDto = null;
+        if (StringUtil.isBlank(token)) {
+            return null;
+        }
         try {
             String realToken = token.replace(AuthConstant.JWT_TOKEN_PREFIX, "");
             JWSObject jwsObject = JWSObject.parse(realToken);
-            userDto = JSONUtil.toBean(jwsObject.getPayload().toString(), UserDto.class);
+            return JSONUtil.toBean(jwsObject.getPayload().toString(), UserDto.class);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error(e.getMessage(), e);
+            return null;
         }
-        return userDto;
     }
 
     /**
@@ -69,18 +72,34 @@ public class SysUserUtils {
         return userDto == null ? null : userDto.getId();
     }
 
+    /**
+     * 获取当前请求的用户的Id字符串
+     *
+     * @return
+     */
+    public static String getCurrentPrincipleIdStr() {
+        UserDto userDto = getCurrentUser();
+        return userDto == null ? null : userDto.getId().toString();
+    }
+
     /**
      * 获取当前请求的用户的当前医院id
      *
      * @return
      */
     public static Long getCurrentHospitalId() {
-        if(StringUtil.isNotEmpty(HttpUtils.getHeader(AuthConstant.HOSPITAL_ID_HEADER))){
-            return Long.parseLong(HttpUtils.getHeader(AuthConstant.HOSPITAL_ID_HEADER));
-        }else {
-            Asserts.fail("请求头中无医院id");
-        }
-        return null;
+        String currentHospitalIdStr = getCurrentHospitalIdStr();
+        return StringUtil.isBlank(currentHospitalIdStr) ? null : Long.parseLong(currentHospitalIdStr);
+    }
+
+    /**
+     * 获取当前请求的用户的当前医院id字符串
+     *
+     * @return
+     */
+    public static String getCurrentHospitalIdStr() {
+        String currentHospitalIdStr = HttpUtils.getHeader(AuthConstant.HOSPITAL_ID_HEADER);
+        return StringUtil.isNotBlank(currentHospitalIdStr) && currentHospitalIdStr.matches("[0-9]+") ? currentHospitalIdStr : null;
     }
 
     /**
@@ -88,13 +107,19 @@ public class SysUserUtils {
      *
      * @return
      */
-    public static String getCurrentSoftwareId() {
-        if(StringUtil.isNotEmpty(HttpUtils.getHeader(AuthConstant.SOFTWARE_ID_HEADER))){
-            return HttpUtils.getHeader(AuthConstant.SOFTWARE_ID_HEADER);
-        }else {
-            Asserts.fail("请求头中无医院id");
-        }
-        return null;
+    public static Long getCurrentSoftwareId() {
+        String currentSoftwareIdStr = getCurrentSoftwareIdStr();
+        return StringUtil.isBlank(currentSoftwareIdStr) ? null : Long.parseLong(currentSoftwareIdStr);
+    }
+
+    /**
+     * 获取当前请求的用户的当前系统id字符串
+     *
+     * @return
+     */
+    public static String getCurrentSoftwareIdStr() {
+        String currentSoftwareIdStr = HttpUtils.getHeader(AuthConstant.SOFTWARE_ID_HEADER);
+        return StringUtil.isNotBlank(currentSoftwareIdStr) && currentSoftwareIdStr.matches("[0-9]+") ? currentSoftwareIdStr : null;
     }
 
 }

+ 74 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetByIdColumnResultDTO.java

@@ -0,0 +1,74 @@
+package com.lantone.daqe.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 根据ID查看字段校验问题明细-接口出参
+ * @author: zhanghang
+ * @time: 2022/3/8 14:48
+ */
+@ApiModel(value = "根据ID查看字段校验问题明细-接口出参")
+@Getter
+@Setter
+public class GetByIdColumnResultDTO implements Serializable {
+
+
+    private static final long serialVersionUID = -7351027332483509160L;
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "表的列信息ID")
+    private Long columnId;
+
+    @ApiModelProperty(value = "住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "文书编号")
+    private String hosptialDatatmpCode;
+
+    @ApiModelProperty(value = "文书标题")
+    private String hosptialDatatmpName;
+
+    @ApiModelProperty(value = "模块名称")
+    private String modeName;
+
+    @ApiModelProperty(value = "表名称(中文)")
+    private String tableCname;
+
+    @ApiModelProperty(value = "表名称(英文)")
+    private String tableEname;
+
+    @ApiModelProperty(value = "字段名称(中文)")
+    private String columnCname;
+
+    @ApiModelProperty(value = "字段名称(英文)")
+    private String columnEname;
+
+    @ApiModelProperty(value = "表字段的值")
+    private String tableVal;
+
+    @ApiModelProperty(value = "备注描述")
+    private String description;
+
+    @ApiModelProperty(value = "字段问题类型,1-数据缺失,2-非标准值,3-正则校验失败")
+    private String type;
+
+    @ApiModelProperty(value = "最近一次机器比对时间")
+    private Date solveTime;
+
+    @ApiModelProperty(value = "是否已解决,0:未处理,1:已处理")
+    private String isSolved;
+
+    @ApiModelProperty(value = "是否通过了人工核查,0:未通过,1:已通过")
+    private String isAudited;
+
+    @ApiModelProperty(value = "最近一次人工核查时间")
+    private Date auditTime;
+}

+ 50 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetByIdColumnVerifyDTO.java

@@ -0,0 +1,50 @@
+package com.lantone.daqe.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 根据ID获取字段校验规则明细数据-接口入参
+ * @author: zhanghang
+ * @time: 2022/3/10 10:01
+ */
+@ApiModel(value = "根据ID获取字段校验规则明细数据-接口出参")
+@Getter
+@Setter
+public class GetByIdColumnVerifyDTO implements Serializable {
+    private static final long serialVersionUID = 7115193150830411314L;
+
+    @ApiModelProperty(value = "表的列信息ID")
+    private Long columnId;
+
+    @ApiModelProperty(value = "表名称(中文)")
+    private String tableCname;
+
+    @ApiModelProperty(value = "表名称(英文)")
+    private String tableEname;
+
+    @ApiModelProperty(value = "字段名称(中文)")
+    private String columnCname;
+
+    @ApiModelProperty(value = "字段名称(英文)")
+    private String columnEname;
+
+    @ApiModelProperty(value = "是否必填,0:否,1:是")
+    private String isRequired;
+
+    @ApiModelProperty(value = "标准值")
+    private String standardvalue;
+
+    @ApiModelProperty(value = "正则式id")
+    private Long regularId;
+
+    @ApiModelProperty(value = "正则式名称")
+    private String regular;
+
+    @ApiModelProperty(value = "说明")
+    private String description;
+}

+ 7 - 6
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnDTO.java

@@ -8,18 +8,19 @@ import lombok.Setter;
 import java.io.Serializable;
 
 /**
- * @Description: 获取数据库表中列数据表名称信息-接口出参
+ * @Description: 新增修改下拉框获取数据库表中未关联列数据字段名称信息
  * @author: zhanghang
- * @time: 2022/3/1 10:30
+ * @time: 2022/3/7 10:30
  */
-@ApiModel(value = "下拉框获取数据库表中列数据表名称信息-接口出参")
+@ApiModel(value = "新增修改下拉框获取数据库表中未关联列数据字段名称信息")
 @Getter
 @Setter
-public class GetColumnDTO implements Serializable {
+public class GetColumnInfoDTO implements Serializable {
 
 
-    private static final long serialVersionUID = 2674023248290037231L;
-
+    private static final long serialVersionUID = -8385011766996632225L;
+    @ApiModelProperty(value = "主键")
+    private Long id;
 
     @ApiModelProperty(value = "表名称(中文)")
     private String tableCname;

+ 5 - 2
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnNameDTO.java

@@ -8,11 +8,11 @@ import lombok.Setter;
 import java.io.Serializable;
 
 /**
- * @Description: 获取数据库表中列数据字段名称信息-接口出参
+ * @Description: 查询获取数据库表中列数据字段名称信息-接口出参
  * @author: zhanghang
  * @time: 2022/3/7 10:30
  */
-@ApiModel(value = "下拉框获取数据库表中列数据字段名称信息-接口出参")
+@ApiModel(value = "查询下拉框获取数据库表中列数据字段名称信息-接口出参")
 @Getter
 @Setter
 public class GetColumnNameDTO implements Serializable {
@@ -20,6 +20,9 @@ public class GetColumnNameDTO implements Serializable {
 
     private static final long serialVersionUID = 5667959949810247526L;
 
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
     @ApiModelProperty(value = "字段名称(中文)")
     private String columnCname;
 

+ 31 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnNameDTO.java

@@ -0,0 +1,31 @@
+package com.lantone.daqe.dto;
+
+import com.lantone.daqe.vo.GetColumnNameVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 新增修改获取数据库表中列数据字段名称信息-接口出参
+ * @author: zhanghang
+ * @time: 2022/3/7 10:30
+ */
+@ApiModel(value = "新增修改下拉框获取数据库表中列数据字段名称信息-接口出参")
+@Getter
+@Setter
+public class GetTableColumnNameDTO implements Serializable {
+
+
+    private static final long serialVersionUID = 7191973146278284524L;
+
+    @ApiModelProperty(value = "表名称信息")
+    private GetTableNameDTO getTableNameDTO;
+
+    @ApiModelProperty(value = "字段名称信息")
+    private List<GetColumnNameDTO> getColumnNameDTOList;
+
+}

+ 2 - 2
daqe-center/src/main/java/com/lantone/daqe/dto/GetTableNameDTO.java

@@ -8,11 +8,11 @@ import lombok.Setter;
 import java.io.Serializable;
 
 /**
- * @Description: 获取数据库表中列数据表名称信息-接口出参
+ * @Description: 查询获取数据库表中列数据表名称信息-接口出参
  * @author: zhanghang
  * @time: 2022/3/1 10:30
  */
-@ApiModel(value = "下拉框获取数据库表中列数据表名称信息-接口出参")
+@ApiModel(value = "查询下拉框获取数据库表中列数据表名称信息-接口出参")
 @Getter
 @Setter
 public class GetTableNameDTO implements Serializable {

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/entity/NonnullResult.java

@@ -104,6 +104,12 @@ public class NonnullResult implements Serializable {
     @TableField("table_id")
     private Long tableId;
 
+    /**
+     * 表字段的值
+     */
+    @TableField("table_val")
+    private String tableVal;
+
     /**
      * 是否已解决,0:未解决,1:已解决。机器通过比对,若数据问题已解决,则更新为已解决。
      */

+ 97 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -8,13 +8,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.util.BeanUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.daqe.dto.GetByIdColumnResultDTO;
 import com.lantone.daqe.dto.GetColumnResultNumberDTO;
 import com.lantone.daqe.dto.GetColumnResultPageDTO;
 import com.lantone.daqe.entity.ColumnResult;
+import com.lantone.daqe.entity.NonnullResult;
+import com.lantone.daqe.entity.RegularResult;
+import com.lantone.daqe.entity.StandardvalueResult;
+import com.lantone.daqe.enums.ColumnVerifyTypeEnum;
 import com.lantone.daqe.facade.base.ColumnResultFacade;
+import com.lantone.daqe.facade.base.NonnullResultFacade;
+import com.lantone.daqe.facade.base.RegularResultFacade;
+import com.lantone.daqe.facade.base.StandardvalueResultFacade;
 import com.lantone.daqe.vo.GetColumnResultNumberVO;
 import com.lantone.daqe.vo.GetColumnResultPageVO;
 import com.lantone.daqe.vo.UpdateColumnResultVO;
+import com.lantone.daqe.vo.GetByIdColumnResultVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -32,6 +41,15 @@ public class ColumnResultManagementFacade {
     @Autowired
     ColumnResultFacade columnResultFacade;
 
+    @Autowired
+    NonnullResultFacade nonnullResultFacade;
+
+    @Autowired
+    RegularResultFacade regularResultFacade;
+
+    @Autowired
+    StandardvalueResultFacade standardvalueResultFacade;
+
     /**
      * 获取字段校验问题明细分页列表数据
      *
@@ -79,12 +97,89 @@ public class ColumnResultManagementFacade {
      * @return: 是否成功
      */
     public Boolean updateColumnResult(UpdateColumnResultVO updateColumnResultVO) {
+        ColumnResult columnResultFacadeById = columnResultFacade.getById(updateColumnResultVO.getId());
+        //先修改副表
+        //非空校验结果表
+        Long resultId = columnResultFacadeById.getResultId();
+        String type = columnResultFacadeById.getType();
+        if (ColumnVerifyTypeEnum.NONNULL_TYPE.getKey().equals(type)) {
+            nonnullResultFacade.update(new UpdateWrapper<NonnullResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+                    .set("description", updateColumnResultVO.getDescription())
+                    .set("gmt_modified", new Date())
+            );
+        }
+        //正则校验结果表
+        if (ColumnVerifyTypeEnum.REGULAR_TYPE.getKey().equals(type)) {
+            regularResultFacade.update(new UpdateWrapper<RegularResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+                    .set("description", updateColumnResultVO.getDescription())
+                    .set("gmt_modified", new Date())
+            );
+        }
+        //关键字校验结果表
+        if (ColumnVerifyTypeEnum.STANDARD_TYPE.getKey().equals(type)) {
+            standardvalueResultFacade.update(new UpdateWrapper<StandardvalueResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+                    .set("description", updateColumnResultVO.getDescription())
+                    .set("gmt_modified", new Date())
+            );
+        }
+
         return columnResultFacade.update(new UpdateWrapper<ColumnResult>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("id", updateColumnResultVO.getId())
                 .set("description", updateColumnResultVO.getDescription())
-                .set("audit_time", new Date())
-                .set("is_audited", 1)
+                .set("gmt_modified", new Date())
         );
     }
+
+    /**
+     * 根据ID查看字段校验问题明细
+     *
+     * @param getByIdColumnResultVO
+     * @return: 字段校验问题明细明细
+     */
+    public GetByIdColumnResultDTO getByIdColumnResult(GetByIdColumnResultVO getByIdColumnResultVO) {
+        ColumnResult columnResult = columnResultFacade.getBaseMapper().selectById(getByIdColumnResultVO.getId());
+        String type = columnResult.getType();
+        GetByIdColumnResultDTO getByIdColumnResultDTO = new GetByIdColumnResultDTO();
+        //非空校验
+        if (ColumnVerifyTypeEnum.NONNULL_TYPE.getKey().equals(type)) {
+            getByIdColumnResultDTO.setType(type);
+            Long resultId = columnResult.getResultId();
+            NonnullResult nonnullResult = nonnullResultFacade.getBaseMapper().selectOne(new QueryWrapper<NonnullResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+            );
+            BeanUtil.copyProperties(nonnullResult, getByIdColumnResultDTO);
+            return getByIdColumnResultDTO;
+        }
+        //正则校验结果表
+        if (ColumnVerifyTypeEnum.REGULAR_TYPE.getKey().equals(type)) {
+            getByIdColumnResultDTO.setType(type);
+            Long resultId = columnResult.getResultId();
+            RegularResult regularResult = regularResultFacade.getBaseMapper().selectOne(new QueryWrapper<RegularResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+            );
+            BeanUtil.copyProperties(regularResult, getByIdColumnResultDTO);
+            return getByIdColumnResultDTO;
+        }
+        //关键字校验结果表
+        if (ColumnVerifyTypeEnum.STANDARD_TYPE.getKey().equals(type)) {
+            getByIdColumnResultDTO.setType(type);
+            Long resultId = columnResult.getResultId();
+            StandardvalueResult standardvalueResult = standardvalueResultFacade.getBaseMapper().selectOne(new QueryWrapper<StandardvalueResult>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", resultId)
+            );
+            BeanUtil.copyProperties(standardvalueResult, getByIdColumnResultDTO);
+            return getByIdColumnResultDTO;
+        }
+        return getByIdColumnResultDTO;
+    }
 }

+ 62 - 20
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnVerifyManagementFacade.java

@@ -8,9 +8,12 @@ import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.BeanUtil;
 import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
+import com.lantone.daqe.dto.GetByIdColumnVerifyDTO;
+import com.lantone.daqe.dto.GetColumnInfoDTO;
 import com.lantone.daqe.dto.GetColumnNameDTO;
 import com.lantone.daqe.dto.GetColumnVerifyPageDTO;
 import com.lantone.daqe.dto.GetRegularDTO;
+import com.lantone.daqe.dto.GetTableColumnNameDTO;
 import com.lantone.daqe.dto.GetTableNameDTO;
 import com.lantone.daqe.entity.ColumnInfo;
 import com.lantone.daqe.entity.ColumnVerify;
@@ -28,6 +31,7 @@ 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.GetByIdColumnVerifyVO;
 import com.lantone.daqe.vo.GetColumnNameVO;
 import com.lantone.daqe.vo.GetColumnVerifyPageVO;
 import com.lantone.daqe.vo.GetRegularVO;
@@ -74,7 +78,23 @@ public class ColumnVerifyManagementFacade {
     }
 
     /**
-     * 下拉框获取数据库表中列数据表名称信息
+     * 根据ID获取字段校验规则明细数据
+     *
+     * @param getByIdColumnVerifyVO
+     * @return: 字段校验规则明细数据
+     */
+    public GetByIdColumnVerifyDTO getByIdColumnVerify(GetByIdColumnVerifyVO getByIdColumnVerifyVO) {
+        RegularMapping mappingFacadeOne = regularMappingFacade.getOne(new QueryWrapper<RegularMapping>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("column_id", getByIdColumnVerifyVO.getColumnId())
+        );
+        GetByIdColumnVerifyDTO byIdColumnVerify = columnVerifyFacade.getBaseMapper().getByIdColumnVerify(getByIdColumnVerifyVO);
+        byIdColumnVerify.setRegularId(mappingFacadeOne.getRegularId());
+        return byIdColumnVerify;
+    }
+
+    /**
+     * 查询下拉框获取数据库表中列数据表名称信息
      *
      * @param getTableNameVO
      * @return: 数据库表中列数据表名称信息
@@ -91,7 +111,7 @@ public class ColumnVerifyManagementFacade {
     }
 
     /**
-     * 下拉框获取数据库表中列数据字段名称信息
+     * 查询下拉框获取数据库表中列数据字段名称信息
      *
      * @param getColumnNameVO
      * @return: 数据库表中列数据字段名称信息
@@ -107,6 +127,42 @@ public class ColumnVerifyManagementFacade {
         return getColumnDTOList;
     }
 
+    /**
+     * 新增修改下拉框获取数据库表中列数据字段名称信息
+     *
+     * @param
+     * @return: 数据库表中列数据字段名称信息
+     */
+    public List<GetTableColumnNameDTO> getTableColumnName() {
+        List<GetColumnInfoDTO> columnInfoList = columnInfoFacade.getBaseMapper().getNoVerifyColumnName();
+        List<String> columnString = new ArrayList<>();
+        List<GetTableColumnNameDTO> getTableColumnNameDTOS = new ArrayList<>();
+        for (GetColumnInfoDTO columnInfo : columnInfoList) {
+            GetTableColumnNameDTO getTableColumnNameDTO = new GetTableColumnNameDTO();
+            GetTableNameDTO getTableNameDTO = new GetTableNameDTO();
+            List<GetColumnNameDTO> getColumnNameDTOS = new ArrayList<GetColumnNameDTO>();
+            getTableNameDTO.setTableCname(columnInfo.getTableCname());
+            getTableNameDTO.setTableEname(columnInfo.getTableEname());
+            if (columnString.contains(columnInfo.getTableCname())) {
+                continue;
+            }
+            columnString.add(columnInfo.getTableCname());
+            for (GetColumnInfoDTO info : columnInfoList) {
+                if (info.getTableCname().equals(columnInfo.getTableCname()) && info.getTableEname().equals(columnInfo.getTableEname())) {
+                    GetColumnNameDTO getColumnNameDTO = new GetColumnNameDTO();
+                    getColumnNameDTO.setId(info.getId());
+                    getColumnNameDTO.setColumnCname(info.getColumnCname());
+                    getColumnNameDTO.setColumnEname(info.getColumnEname());
+                    getColumnNameDTOS.add(getColumnNameDTO);
+                }
+            }
+            getTableColumnNameDTO.setGetTableNameDTO(getTableNameDTO);
+            getTableColumnNameDTO.setGetColumnNameDTOList(getColumnNameDTOS);
+            getTableColumnNameDTOS.add(getTableColumnNameDTO);
+        }
+        return getTableColumnNameDTOS;
+    }
+
     /**
      * 下拉框获取正则式名称
      *
@@ -132,14 +188,7 @@ public class ColumnVerifyManagementFacade {
         List<ColumnInfoVO> columnList = addColumnVerifyVO.getColumnList();
         //查出表列信息ID
         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();
+            Long columnId = columnInfoVO.getId();
             if (columnId == null) {
                 Asserts.fail("不存在该字段信息!");
             }
@@ -334,20 +383,13 @@ public class ColumnVerifyManagementFacade {
     public Boolean updateColumnVerify(UpdateColumnVerifyVO updateColumnVerifyVO) {
         List<ColumnInfoVO> columnList = updateColumnVerifyVO.getColumnList();
         AddColumnVerifyVO addColumnVerifyVO = new AddColumnVerifyVO();
-        ArrayList<ColumnInfoVO> columnInfoAdd = new ArrayList<>();
-        ArrayList<ColumnInfoVO> columnInfoUpdate = new ArrayList<>();
+        List<ColumnInfoVO> columnInfoAdd = new ArrayList<>();
+        List<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();
+            Long columnId = columnInfoVO.getId();
             ColumnVerify columnVerify = columnVerifyFacade.getById(columnId);
             if (columnVerify != null) {
                 //库中已有维护

+ 12 - 4
daqe-center/src/main/java/com/lantone/daqe/facade/DiseaseManagementFacade.java

@@ -36,6 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -95,9 +96,13 @@ public class DiseaseManagementFacade {
     public Boolean addDisease(AddDiseaseVO addDiseaseVO) {
         DiseaseInfo diseaseInfo = new DiseaseInfo();
         BeanUtil.copyProperties(addDiseaseVO, diseaseInfo);
-        if (diseaseInfoFacade.isExist(diseaseInfo)) {
-            Asserts.fail("该诊断已存在!");
-        }
+        diseaseInfoFacade.assertIsExist(diseaseInfo);
+        String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
+        Date now = DateUtil.now();
+        diseaseInfo.setCreator(currentUserId);
+        diseaseInfo.setGmtCreate(now);
+        diseaseInfo.setModifier(currentUserId);
+        diseaseInfo.setGmtModified(now);
         return diseaseInfoFacade.save(diseaseInfo);
     }
 
@@ -109,10 +114,13 @@ public class DiseaseManagementFacade {
      */
     public Boolean upDiseaseById(UpDiseaseByIdVO upDiseaseByIdVO) {
         if (diseaseInfoFacade.getById(upDiseaseByIdVO.getId()) == null) {
-            Asserts.fail("该诊断不存在!");
+            Asserts.fail("该诊断已被删除!");
         }
         DiseaseInfo diseaseInfo = new DiseaseInfo();
         BeanUtil.copyProperties(upDiseaseByIdVO, diseaseInfo);
+        diseaseInfoFacade.assertIsExist(diseaseInfo);
+        diseaseInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
+        diseaseInfo.setGmtModified(DateUtil.now());
         return diseaseInfoFacade.updateById(diseaseInfo);
     }
 

+ 17 - 9
daqe-center/src/main/java/com/lantone/daqe/facade/DrugManagementFacade.java

@@ -35,6 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -96,9 +97,13 @@ public class DrugManagementFacade {
     public boolean addDrug(AddDrugVO addDrugVO) {
         DrugInfo drugInfo = new DrugInfo();
         BeanUtil.copyProperties(addDrugVO, drugInfo);
-        if (drugInfoFacade.isExist(drugInfo)) {
-            Asserts.fail("该诊断已存在!");
-        }
+        drugInfoFacade.assertIsExist(drugInfo);
+        String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
+        Date now = DateUtil.now();
+        drugInfo.setCreator(currentUserId);
+        drugInfo.setGmtCreate(now);
+        drugInfo.setModifier(currentUserId);
+        drugInfo.setGmtModified(now);
         return drugInfoFacade.save(drugInfo);
     }
 
@@ -110,10 +115,13 @@ public class DrugManagementFacade {
      */
     public Boolean upDrugById(UpDrugByIdVO upDrugByIdVO) {
         if (drugInfoFacade.getById(upDrugByIdVO.getId()) == null) {
-            Asserts.fail("该药品不存在!");
+            Asserts.fail("该药品已被删除!");
         }
         DrugInfo drugInfo = new DrugInfo();
         BeanUtil.copyProperties(upDrugByIdVO, drugInfo);
+        drugInfoFacade.assertIsExist(drugInfo);
+        drugInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
+        drugInfo.setGmtModified(DateUtil.now());
         return drugInfoFacade.updateById(drugInfo);
     }
 
@@ -204,11 +212,11 @@ public class DrugManagementFacade {
     private Boolean checkData(List<ImportDrugVO> importDrugVOS, List<ExportImportDrugErrDTO> errExports, Long hospitalId) {
         AtomicBoolean errorFlog = new AtomicBoolean(false);
         //获取数据库数据 判断医院药品名称和医院药品代码用于重复校验
-//        List<DrugInfo> drugInfos = drugInfoFacade.list(new QueryWrapper<DrugInfo>()
-//                .eq("hospital_id", hospitalId)
-//                .eq("is_deleted", IsDeleteEnum.N.getKey()));
-//        List<String> names = drugInfos.stream().map(DrugInfo::getName).collect(Collectors.toList());
-//        List<String> codes = drugInfos.stream().map(DrugInfo::getCode).collect(Collectors.toList());
+        //        List<DrugInfo> drugInfos = drugInfoFacade.list(new QueryWrapper<DrugInfo>()
+        //                .eq("hospital_id", hospitalId)
+        //                .eq("is_deleted", IsDeleteEnum.N.getKey()));
+        //        List<String> names = drugInfos.stream().map(DrugInfo::getName).collect(Collectors.toList());
+        //        List<String> codes = drugInfos.stream().map(DrugInfo::getCode).collect(Collectors.toList());
 
         importDrugVOS.stream().forEach(importDrugVO -> {
             ExportImportDrugErrDTO exportImportDrugErrDTO = new ExportImportDrugErrDTO();

+ 12 - 4
daqe-center/src/main/java/com/lantone/daqe/facade/OperationManagementFacade.java

@@ -36,6 +36,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -95,9 +96,13 @@ public class OperationManagementFacade {
     public boolean addOperation(AddOperationVO addOperationVO) {
         OperationInfo operationInfo = new OperationInfo();
         BeanUtil.copyProperties(addOperationVO, operationInfo);
-        if (operationInfoFacade.isExist(operationInfo)) {
-            Asserts.fail("该诊断已存在!");
-        }
+        operationInfoFacade.assertIsExist(operationInfo);
+        String currentUserId = SysUserUtils.getCurrentPrincipleIdStr();
+        Date now = DateUtil.now();
+        operationInfo.setCreator(currentUserId);
+        operationInfo.setGmtCreate(now);
+        operationInfo.setModifier(currentUserId);
+        operationInfo.setGmtModified(now);
         return operationInfoFacade.save(operationInfo);
     }
 
@@ -109,10 +114,13 @@ public class OperationManagementFacade {
      */
     public Boolean upOperationById(UpOperationByIdVO upOperationByIdVO) {
         if (operationInfoFacade.getById(upOperationByIdVO.getId()) == null) {
-            Asserts.fail("该药品不存在!");
+            Asserts.fail("该手术已被删除!");
         }
         OperationInfo operationInfo = new OperationInfo();
         BeanUtil.copyProperties(upOperationByIdVO, operationInfo);
+        operationInfoFacade.assertIsExist(operationInfo);
+        operationInfo.setModifier(SysUserUtils.getCurrentPrincipleIdStr());
+        operationInfo.setGmtModified(DateUtil.now());
         return operationInfoFacade.updateById(operationInfo);
     }
 

+ 41 - 3
daqe-center/src/main/java/com/lantone/daqe/facade/base/DiseaseInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.DiseaseInfo;
 import com.lantone.daqe.service.impl.DiseaseInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_disease_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class DiseaseInfoFacade extends DiseaseInfoServiceImpl {
 
-    public boolean isExist(DiseaseInfo diseaseInfo){
-        boolean flag = false;
-        return flag;
+    /**
+     * 判断即将新增/修改的诊断是否与已存在的其他诊断存在冲突
+     *
+     * @param diseaseInfo 即将新增/修改的诊断,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
+    public boolean isExist(DiseaseInfo diseaseInfo) {
+        if (diseaseInfo.getHospitalId() == null
+                || StringUtil.isBlank(diseaseInfo.getCode())
+                || StringUtil.isBlank(diseaseInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的诊断是否与已存在的其他诊断存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<DiseaseInfo> diseaseInfoQueryWrapper = new QueryWrapper<>();
+        diseaseInfoQueryWrapper.eq("hospital_id", diseaseInfo.getHospitalId());
+        diseaseInfoQueryWrapper.eq("code", diseaseInfo.getCode());
+        diseaseInfoQueryWrapper.eq("name", diseaseInfo.getName());
+        List<DiseaseInfo> diseaseInfoList = list(diseaseInfoQueryWrapper);
+        if (diseaseInfo.getId() == null) {
+            return ListUtil.isNotEmpty(diseaseInfoList);
+        } else {
+            return diseaseInfoList.size() > 1
+                    || (diseaseInfoList.size() == 1
+                    && diseaseInfoList.get(0).getId().longValue() != diseaseInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的诊断与已存在的其他诊断存在冲突时,抛出异常
+     *
+     * @param diseaseInfo 即将新增/修改的诊断,有id是修改,无id是新增。
+     */
+    public void assertIsExist(DiseaseInfo diseaseInfo) {
+        if (isExist(diseaseInfo)) {
+            Asserts.fail("与已存在的其他诊断存在冲突!");
+        }
     }
 
 }

+ 40 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/base/DrugInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.DrugInfo;
 import com.lantone.daqe.service.impl.DrugInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_drug_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class DrugInfoFacade extends DrugInfoServiceImpl {
 
+    /**
+     * 判断即将新增/修改的药品是否与已存在的其他药品存在冲突
+     *
+     * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
     public boolean isExist(DrugInfo drugInfo) {
-        boolean flag = false;
-        return flag;
+        if (drugInfo.getHospitalId() == null
+                || StringUtil.isBlank(drugInfo.getCode())
+                || StringUtil.isBlank(drugInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的药品是否与已存在的其他药品存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<DrugInfo> drugInfoQueryWrapper = new QueryWrapper<>();
+        drugInfoQueryWrapper.eq("hospital_id", drugInfo.getHospitalId());
+        drugInfoQueryWrapper.eq("code", drugInfo.getCode());
+        drugInfoQueryWrapper.eq("name", drugInfo.getName());
+        List<DrugInfo> drugInfoList = list(drugInfoQueryWrapper);
+        if (drugInfo.getId() == null) {
+            return ListUtil.isNotEmpty(drugInfoList);
+        } else {
+            return drugInfoList.size() > 1
+                    || (drugInfoList.size() == 1
+                    && drugInfoList.get(0).getId().longValue() != drugInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的药品与已存在的其他药品存在冲突时,抛出异常
+     *
+     * @param drugInfo 即将新增/修改的药品,有id是修改,无id是新增。
+     */
+    public void assertIsExist(DrugInfo drugInfo) {
+        if (isExist(drugInfo)) {
+            Asserts.fail("与已存在的其他药品存在冲突!");
+        }
     }
 
 }

+ 40 - 2
daqe-center/src/main/java/com/lantone/daqe/facade/base/OperationInfoFacade.java

@@ -1,9 +1,15 @@
 package com.lantone.daqe.facade.base;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lantone.common.exception.Asserts;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.daqe.entity.OperationInfo;
 import com.lantone.daqe.service.impl.OperationInfoServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:hos_operation_info 业务类
@@ -12,9 +18,41 @@ import org.springframework.stereotype.Component;
 @Component
 public class OperationInfoFacade extends OperationInfoServiceImpl {
 
+    /**
+     * 判断即将新增/修改的手术是否与已存在的其他手术存在冲突
+     *
+     * @param operationInfo 即将新增/修改的手术,有id是修改,无id是新增。
+     * @return true-存在冲突,false-无冲突
+     */
     public boolean isExist(OperationInfo operationInfo) {
-        boolean flag = false;
-        return flag;
+        if (operationInfo.getHospitalId() == null
+                || StringUtil.isBlank(operationInfo.getCode())
+                || StringUtil.isBlank(operationInfo.getName())) {
+            Asserts.fail("判断即将新增/修改的手术是否与已存在的其他手术存在冲突时,hospitalId、code、name不能为空!");
+        }
+        QueryWrapper<OperationInfo> operationInfoQueryWrapper = new QueryWrapper<>();
+        operationInfoQueryWrapper.eq("hospital_id", operationInfo.getHospitalId());
+        operationInfoQueryWrapper.eq("code", operationInfo.getCode());
+        operationInfoQueryWrapper.eq("name", operationInfo.getName());
+        List<OperationInfo> operationInfoList = list(operationInfoQueryWrapper);
+        if (operationInfo.getId() == null) {
+            return ListUtil.isNotEmpty(operationInfoList);
+        } else {
+            return operationInfoList.size() > 1
+                    || (operationInfoList.size() == 1
+                    && operationInfoList.get(0).getId().longValue() != operationInfo.getId().longValue());
+        }
+    }
+
+    /**
+     * 即将新增/修改的手术与已存在的其他手术存在冲突时,抛出异常
+     *
+     * @param operationInfo 即将新增/修改的手术,有id是修改,无id是新增。
+     */
+    public void assertIsExist(OperationInfo operationInfo) {
+        if (isExist(operationInfo)) {
+            Asserts.fail("与已存在的其他手术存在冲突!");
+        }
     }
 
 }

+ 4 - 1
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnInfoMapper.java

@@ -1,13 +1,16 @@
 package com.lantone.daqe.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.daqe.dto.GetColumnInfoDTO;
 import com.lantone.daqe.entity.ColumnInfo;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:dc_column_info Mapper接口
  * </p>
  */
 public interface ColumnInfoMapper extends BaseMapper<ColumnInfo> {
-
+    List<GetColumnInfoDTO> getNoVerifyColumnName();
 }

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnVerifyMapper.java

@@ -2,11 +2,16 @@ package com.lantone.daqe.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.lantone.daqe.dto.GetByIdColumnVerifyDTO;
+import com.lantone.daqe.dto.GetColumnInfoDTO;
 import com.lantone.daqe.dto.GetColumnVerifyPageDTO;
 import com.lantone.daqe.entity.ColumnVerify;
+import com.lantone.daqe.vo.GetByIdColumnVerifyVO;
 import com.lantone.daqe.vo.GetColumnVerifyPageVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 表名:dc_column_verify Mapper接口
@@ -14,4 +19,7 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ColumnVerifyMapper extends BaseMapper<ColumnVerify> {
     IPage<GetColumnVerifyPageDTO> getColumnVerifyPage(@Param("getColumnVerifyPageVO") GetColumnVerifyPageVO getColumnVerifyPageVO);
+
+    GetByIdColumnVerifyDTO getByIdColumnVerify(@Param("getByIdColumnVerifyVO") GetByIdColumnVerifyVO getByIdColumnVerifyVO);
+
 }

+ 3 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/ColumnInfoVO.java

@@ -19,6 +19,9 @@ import java.io.Serializable;
 public class ColumnInfoVO implements Serializable {
     private static final long serialVersionUID = -4822420650132733065L;
 
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
     @ApiModelProperty(value = "表名称(中文)", required = true)
     private String tableCname;
 

+ 28 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetByIdColumnResultVO.java

@@ -0,0 +1,28 @@
+package com.lantone.daqe.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 根据ID查看字段校验问题明细-接口入参
+ * @author: zhanghang
+ * @time: 2022/3/9 11:15
+ */
+@ApiModel(value = "根据ID查看字段校验问题明细-接口入参")
+@Getter
+@Setter
+public class GetByIdColumnResultVO implements Serializable {
+
+
+    private static final long serialVersionUID = 9163756356308300151L;
+    @ApiModelProperty(value = "主键ID", required = true)
+    @NotNull(message = "主键ID不能为空")
+    private Long id;
+
+
+}

+ 27 - 0
daqe-center/src/main/java/com/lantone/daqe/vo/GetByIdColumnVerifyVO.java

@@ -0,0 +1,27 @@
+package com.lantone.daqe.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * @Description: 根据ID获取字段校验规则明细数据-接口入参
+ * @author: zhanghang
+ * @time: 2022/3/10 10:30
+ */
+@ApiModel(value = "根据ID获取字段校验规则明细数据-接口入参")
+@Getter
+@Setter
+public class GetByIdColumnVerifyVO implements Serializable {
+
+    private static final long serialVersionUID = -1975195805997230670L;
+    @ApiModelProperty(value = "列信息ID", required = true)
+    @NotNull(message = "列信息ID不能为空")
+    private Long columnId;
+
+}

+ 2 - 2
daqe-center/src/main/java/com/lantone/daqe/vo/GetColumnNameVO.java

@@ -8,11 +8,11 @@ import lombok.Setter;
 import java.io.Serializable;
 
 /**
- * @Description: 下拉框获取数据库表中列数据字段名称信息
+ * @Description: 查询下拉框获取数据库表中列数据字段名称信息
  * @author: zhanghang
  * @time: 2022/3/7 9:45
  */
-@ApiModel(value = "下拉框获取数据库表中列数据字段名称信息-接口入参")
+@ApiModel(value = "查询下拉框获取数据库表中列数据字段名称信息-接口入参")
 @Getter
 @Setter
 public class GetColumnNameVO implements Serializable {

+ 2 - 2
daqe-center/src/main/java/com/lantone/daqe/vo/GetTableNameVO.java

@@ -8,11 +8,11 @@ import lombok.Setter;
 import java.io.Serializable;
 
 /**
- * @Description: 下拉框获取数据库表中列数据表名称信息-接口入参
+ * @Description: 查询下拉框获取数据库表中列数据表名称信息-接口入参
  * @author: zhanghang
  * @time: 2022/3/7 9:45
  */
-@ApiModel(value = "下拉框获取数据库表中列数据表名称信息-接口入参")
+@ApiModel(value = "查询下拉框获取数据库表中列数据表名称信息-接口入参")
 @Getter
 @Setter
 public class GetTableNameVO implements Serializable {

+ 8 - 0
daqe-center/src/main/java/com/lantone/daqe/web/ColumnResultManagmentController.java

@@ -3,12 +3,14 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetByIdColumnResultDTO;
 import com.lantone.daqe.dto.GetColumnResultNumberDTO;
 import com.lantone.daqe.dto.GetColumnResultPageDTO;
 import com.lantone.daqe.facade.ColumnResultManagementFacade;
 import com.lantone.daqe.vo.GetColumnResultNumberVO;
 import com.lantone.daqe.vo.GetColumnResultPageVO;
 import com.lantone.daqe.vo.UpdateColumnResultVO;
+import com.lantone.daqe.vo.GetByIdColumnResultVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,4 +50,10 @@ public class ColumnResultManagmentController {
     public CommonResult<Boolean> updateColumnResult(@RequestBody UpdateColumnResultVO updateColumnResultVO) {
         return CommonResult.success(columnResultManagementFacade.updateColumnResult(updateColumnResultVO));
     }
+
+    @ApiOperation(value = "根据ID查看字段校验问题明细 [by:zhanghang]")
+    @PostMapping("/getByIdColumnResult")
+    public CommonResult<GetByIdColumnResultDTO> getByIdColumnResult(@RequestBody GetByIdColumnResultVO getByIdColumnResultVO) {
+        return CommonResult.success(columnResultManagementFacade.getByIdColumnResult(getByIdColumnResultVO));
+    }
 }

+ 17 - 2
daqe-center/src/main/java/com/lantone/daqe/web/ColumnVerifyManagementController.java

@@ -2,13 +2,16 @@ package com.lantone.daqe.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.lantone.common.api.CommonResult;
+import com.lantone.daqe.dto.GetByIdColumnVerifyDTO;
 import com.lantone.daqe.dto.GetColumnNameDTO;
 import com.lantone.daqe.dto.GetColumnVerifyPageDTO;
 import com.lantone.daqe.dto.GetRegularDTO;
+import com.lantone.daqe.dto.GetTableColumnNameDTO;
 import com.lantone.daqe.dto.GetTableNameDTO;
 import com.lantone.daqe.facade.ColumnVerifyManagementFacade;
 import com.lantone.daqe.vo.AddColumnVerifyVO;
 import com.lantone.daqe.vo.DelColumnVerifyVO;
+import com.lantone.daqe.vo.GetByIdColumnVerifyVO;
 import com.lantone.daqe.vo.GetColumnNameVO;
 import com.lantone.daqe.vo.GetColumnVerifyPageVO;
 import com.lantone.daqe.vo.GetRegularVO;
@@ -46,18 +49,30 @@ public class ColumnVerifyManagementController {
         return CommonResult.success(columnVerifyManagementFacade.getColumnVerifyPage(getColumnVerifyPageVO));
     }
 
-    @ApiOperation(value = "下拉框获取数据库表中列数据表名称信息 [by:zhanghang]")
+    @ApiOperation(value = "根据ID获取字段校验规则明细数据 [by:zhanghang]")
+    @PostMapping("/getByIdColumnVerify")
+    public CommonResult<GetByIdColumnVerifyDTO> getByIdColumnVerify(@RequestBody GetByIdColumnVerifyVO getByIdColumnVerifyVO) {
+        return CommonResult.success(columnVerifyManagementFacade.getByIdColumnVerify(getByIdColumnVerifyVO));
+    }
+
+    @ApiOperation(value = "查询下拉框获取数据库表中列数据表名称信息 [by:zhanghang]")
     @PostMapping("/getTableName")
     public CommonResult<List<GetTableNameDTO>> getTableName(@RequestBody GetTableNameVO getTableNameVO) {
         return CommonResult.success(columnVerifyManagementFacade.getTableName(getTableNameVO));
     }
 
-    @ApiOperation(value = "下拉框获取数据库表中列数据字段名称信息 [by:zhanghang]")
+    @ApiOperation(value = "查询下拉框获取数据库表中列数据字段名称信息 [by:zhanghang]")
     @PostMapping("/getColumnName")
     public CommonResult<List<GetColumnNameDTO>> getColumnName(@RequestBody GetColumnNameVO getColumnNameVO) {
         return CommonResult.success(columnVerifyManagementFacade.getColumnName(getColumnNameVO));
     }
 
+    @ApiOperation(value = "新增修改下拉框获取数据库表中列数据字段名称信息 [by:zhanghang]")
+    @PostMapping("/getAddUpColumnName")
+    public CommonResult<List<GetTableColumnNameDTO>> getTableColumnName() {
+        return CommonResult.success(columnVerifyManagementFacade.getTableColumnName());
+    }
+
     @ApiOperation(value = "下拉框获取正则式名称 [by:zhanghang]")
     @PostMapping("/getRegular")
     public CommonResult<List<GetRegularDTO>> getRegular(@RequestBody GetRegularVO getRegularVO) {

+ 27 - 0
daqe-center/src/main/resources/mapper/ColumnInfoMapper.xml

@@ -2,4 +2,31 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.lantone.daqe.mapper.ColumnInfoMapper">
 
+    <select id="getNoVerifyColumnName" resultType="com.lantone.daqe.dto.GetColumnInfoDTO">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    a.*, b.column_id
+                FROM
+                    (
+                        SELECT
+                            a.id,
+                            a.table_cname,
+                            a.table_ename,
+                            a.column_cname,
+                            a.column_ename
+                        FROM
+                            dc_column_info a
+                        WHERE
+                            a.is_deleted = 'N'
+                    ) a
+                LEFT JOIN dc_column_verify b ON a.id = b.column_id
+                GROUP BY
+                    a.id
+            ) a
+        WHERE
+            a.column_id IS NULL
+    </select>
 </mapper>

+ 35 - 0
daqe-center/src/main/resources/mapper/ColumnVerifyMapper.xml

@@ -61,4 +61,39 @@
         </if>
     </select>
 
+
+    <select id="getByIdColumnVerify" resultType="com.lantone.daqe.dto.GetByIdColumnVerifyDTO">
+        SELECT
+        a.column_id,
+        a.table_cname,
+        a.table_ename,
+        a.column_cname,
+        a.column_ename,
+        GROUP_CONCAT(a.isRequired SEPARATOR ';') isRequired,
+        GROUP_CONCAT(a.standardvalue SEPARATOR ';') standardvalue,
+        GROUP_CONCAT(a.regular SEPARATOR ';') regular,
+        a.description
+        FROM
+        (
+        SELECT
+        dcv.column_id,
+        dcv.table_cname,
+        dcv.table_ename,
+        dcv.column_cname,
+        dcv.column_ename,
+        dcv.type,
+        dcv.description,
+        CASE dcv.type WHEN 1 THEN dcv.verify_val ELSE NULL END isRequired,
+        CASE dcv.type WHEN 2 THEN dcv.verify_val ELSE NULL END standardvalue,
+        CASE dcv.type WHEN 3 THEN dcv.verify_val ELSE NULL END regular
+        FROM
+        dc_column_verify dcv
+        WHERE
+        dcv.is_deleted = 'N'
+        and dcv.column_id= #{getByIdColumnVerifyVO.columnId}
+        ) a
+        GROUP BY
+        a.column_id
+    </select>
+
 </mapper>

+ 1 - 0
daqe-center/src/main/resources/mapper/base/BaseNonnullResultMapper.xml

@@ -18,6 +18,7 @@
         <result column="column_cname" property="columnCname"/>
         <result column="column_ename" property="columnEname"/>
         <result column="table_id" property="tableId"/>
+        <result column="table_val" property="tableVal"/>
         <result column="is_solved" property="isSolved"/>
         <result column="solve_time" property="solveTime"/>
         <result column="is_audited" property="isAudited"/>