Pārlūkot izejas kodu

病区管理禁用校验逻辑

chengyao 3 gadi atpakaļ
vecāks
revīzija
cd52adbb27

+ 21 - 0
common/src/main/java/com/lantone/common/vo/SysRegionVo.java

@@ -3,6 +3,7 @@ package com.lantone.common.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.util.List;
@@ -22,16 +23,30 @@ public class SysRegionVo implements Serializable {
     @ApiModelProperty(value = "医院ID")
     private Long hospitalId;
 
+    @ApiModelProperty(value = "医院名称")
+    @NotBlank
+    private String hospitalName;
+
+    @ApiModelProperty(value = "联系人")
+    @NotBlank
+    private String liaison;
+
+    @ApiModelProperty(value = "手机号码")
+    @NotBlank
+    private String phoneNumber;
+
     @ApiModelProperty(value = "病区编码")
     private String code;
 
     @ApiModelProperty(value = "病区名称")
+    @NotBlank
     private String name;
 
     @ApiModelProperty(value = "首字母拼音")
     private String spell;
 
     @ApiModelProperty(value = "区域类别")
+    @NotBlank
     private String station;
 
     @ApiModelProperty(value = "排序")
@@ -44,5 +59,11 @@ public class SysRegionVo implements Serializable {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "0-否 1-是")
+    private Integer status;
+
+    @ApiModelProperty(value = "0-非禁用校验标识 1-禁用校验标识")
+    private Integer mark = 0;
+
 
 }

+ 16 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/SysRegion.java

@@ -30,6 +30,22 @@ public class SysRegion implements Serializable {
     @TableField("hospital_id")
     private Long hospitalId;
 
+    @ApiModelProperty(value = "医院名称")
+    @TableField("hospital_name")
+    private String hospitalName;
+
+    @ApiModelProperty(value = "联系人")
+    @TableField("liaison")
+    private String liaison;
+
+    @ApiModelProperty(value = "手机号码")
+    @TableField("phone_number")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "0-否 1-是")
+    @TableField("status")
+    private Integer status;
+
     @ApiModelProperty(value = "病区编码")
     @TableField("code")
     private String code;

+ 31 - 12
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/SysRegionFacade.java

@@ -23,10 +23,13 @@ import java.util.stream.Collectors;
 public class SysRegionFacade extends SysRegionServiceImpl {
     @Autowired
     private SysRegionDeptServiceImpl sysRegionDeptServiceImpl;
-    public Boolean saveWard(SysRegionVo sysRegionVo){
+    public Object saveWard(SysRegionVo sysRegionVo){
         Boolean flag = false;
         //校验病区和科室
-        getSysRegion(sysRegionVo);
+        Object sysRegionObj = getSysRegion(sysRegionVo);
+       if("1".equals(sysRegionObj.toString()) || "0".equals(sysRegionObj.toString())){
+           return sysRegionObj;
+       }
         SysRegion sysRegion = new SysRegion();
         BeanUtils.copyProperties(sysRegionVo,sysRegion);
         List<SysRegionDept> sysRegionDepts = new ArrayList<>();
@@ -38,18 +41,34 @@ public class SysRegionFacade extends SysRegionServiceImpl {
         return flag;
     };
 
-    public void getSysRegion(SysRegionVo sysRegionVo){
-        List<Long> collects = this.lambdaQuery()
-                .eq(SysRegion::getName, sysRegionVo.getName())
-                .eq(SysRegion::getHospitalId, sysRegionVo.getHospitalId()).list().stream().map(obj -> obj.getId()).collect(Collectors.toList());
-        if(ListUtil.isNotEmpty(collects)){
-            Integer count = sysRegionDeptServiceImpl.lambdaQuery()
-                    .in(SysRegionDept::getRegionId,collects)
-                    .in(SysRegionDept::getDeptId, sysRegionVo.getDeptIds()).count();
-            if(count>0){
-                throw new ApiException("此病区关联科室重复");
+    public Object getSysRegion(SysRegionVo sysRegionVo){
+        //禁用校验
+        if(null != sysRegionVo.getId() && 1 == sysRegionVo.getMark()){
+            List<Long> collectList = sysRegionDeptServiceImpl.lambdaQuery()
+                    .eq(SysRegionDept::getRegionId, sysRegionVo.getId())
+                    .list().stream().map(obj -> obj.getDeptId()).collect(Collectors.toList());
+            if(ListUtil.isNotEmpty(collectList) && collectList.size()>0){
+                //当前病区存在与之关联的科室
+                return 1;
             }
+                return 0;
         }
+
+        //新增-校验重复数据
+        if(null == sysRegionVo.getId()){
+            List<Long> collects = this.lambdaQuery()
+                    .eq(SysRegion::getName, sysRegionVo.getName())
+                    .eq(SysRegion::getHospitalId, sysRegionVo.getHospitalId()).list().stream().map(obj -> obj.getId()).collect(Collectors.toList());
+            if(ListUtil.isNotEmpty(collects)){
+                Integer count = sysRegionDeptServiceImpl.lambdaQuery()
+                        .in(SysRegionDept::getRegionId,collects)
+                        .in(SysRegionDept::getDeptId, sysRegionVo.getDeptIds()).count();
+                if(count>0){
+                    throw new ApiException("当前病区关联科室重复");
+                }
+            }
+        }
+        return true;
     }
 
     public Boolean addSysRegion(SysRegionVo sysRegionVo,SysRegion sysRegion ,List<SysRegionDept> sysRegionDepts){

+ 8 - 2
security-center/src/main/java/com/lantone/security/web/DataWardController.java

@@ -27,11 +27,17 @@ public class DataWardController {
     @Autowired
     private SysRegionFacade sysRegionFacade;
     @ApiOperation(value = "新增/修改病区[by:cy]",
-            notes = "")
+            notes =  "organizationName:上级组织名称,必填<br>" +
+                    "name:病区名称,必填<br>" +
+                    "code:病区编码,<br>" +
+                    "deptIds:关联科室,<br>" +
+                    "station:区域类别,必填<br>" +
+                    "orderNo:排序,<br>"+
+                    "status:是否启用,<br>")
     @PostMapping("/saveWard")
     @ApiIgnore
     @Transactional
-    public CommonResult<Boolean> saveWard(@RequestBody SysRegionVo sysRegionVo) {
+    public CommonResult<Object> saveWard(@RequestBody SysRegionVo sysRegionVo) {
         return CommonResult.success(sysRegionFacade.saveWard(sysRegionVo));
     }
 }