Browse Source

病区逻辑调整

chengyao 3 years ago
parent
commit
8aadac66b2

+ 8 - 3
common/src/main/java/com/lantone/common/dto/ViewRegionDTO.java

@@ -1,9 +1,10 @@
 package com.lantone.common.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -16,16 +17,20 @@ public class ViewRegionDTO implements Serializable {
 
 
     @ApiModelProperty(value = "医院名称")
-    @NotBlank
     private String hospitalName;
 
     @ApiModelProperty(value = "病区名称")
-    @NotBlank
     private String name;
 
+    @ApiModelProperty(value = "病区id")
+    private Long id;
+
     @ApiModelProperty(value = "关联科室")
     private String deptName;
 
+    @ApiModelProperty(value = "关联科室-集合展示")
+    private List<String> deptNameList = new ArrayList<>();
+
     @ApiModelProperty(value = "启用状态 0-否 1-是")
     private String status;
 

+ 4 - 0
common/src/main/java/com/lantone/common/vo/GetRegionVO.java

@@ -14,6 +14,10 @@ import lombok.Setter;
 @Getter
 @Setter
 public class GetRegionVO extends Page {
+
+    @ApiModelProperty(value = "病区id")
+    private Long id;
+
     @ApiModelProperty(value = "医院ID",hidden = true)
     private Long hospitalId;
 

+ 63 - 0
common/src/main/java/com/lantone/common/vo/UpdateRegionVO.java

@@ -0,0 +1,63 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+ * <p>
+ * 病区表
+ * </p>
+ */
+@Data
+ public class UpdateRegionVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "病区id")
+    private Long id;
+
+    @ApiModelProperty(value = "医院ID",hidden = true)
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "用户ID",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "医院名称")
+    private String hospitalName;
+
+    @ApiModelProperty(value = "联系人")
+    private String liaison;
+
+    @ApiModelProperty(value = "手机号码")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "病区编码")
+    private String code;
+
+    @ApiModelProperty(value = "病区名称")
+    private String name;
+
+    @ApiModelProperty(value = "首字母拼音")
+    private String spell;
+
+    @ApiModelProperty(value = "区域类别")
+    private String station;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "科室id集合")
+    private List<Long> deptIds;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "启用状态 0-否 1-是")
+    private Integer status;
+
+    @ApiModelProperty(value = "0-默认 1-查询单个病区")
+    private Integer mark = 0;
+}

+ 8 - 1
dblayer-mbg/src/main/resources/mapper/RegionMapper.xml

@@ -2,7 +2,10 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.lantone.dblayermbg.mapper.RegionMapper">
     <select id="getWard" resultType="com.lantone.common.dto.ViewRegionDTO">
-        select t1.name,t1.hospital_name as hospitalName,t2.deptName,
+        select t1.name,
+        t1.hospital_name as hospitalName,
+        t1.id,
+        t2.deptName,
         case t1.status
         when 1 then '启用'
         when 0 then '禁用'end as status,
@@ -24,9 +27,13 @@
         and t1.id = t2.region_id
         where
         t1.is_deleted = 'N'
+        <if test='id != null and id != ""'>
+            AND t1.id = #{id}
+        </if>
         <if test='hospitalId != null and hospitalId != ""'>
             AND t1.hospital_id = #{hospitalId}
         </if>
+
         <if test='name != null and name != ""'>
             and t1.name like CONCAT('%',#{name},'%')
         </if>

+ 33 - 15
security-center/src/main/java/com/lantone/security/facade/RegionManagementFacade.java

@@ -14,6 +14,7 @@ import com.lantone.common.vo.CheckSolveRegionVO;
 import com.lantone.common.vo.GetDeptListVO;
 import com.lantone.common.vo.SaveRegionVO;
 import com.lantone.common.vo.GetRegionVO;
+import com.lantone.common.vo.UpdateRegionVO;
 import com.lantone.dblayermbg.entity.Dept;
 import com.lantone.dblayermbg.entity.Region;
 import com.lantone.dblayermbg.entity.RegionDept;
@@ -69,13 +70,30 @@ public class RegionManagementFacade {
      * @Author: cy
      * @Date: 2021/7/30
      */
-    public Object updateRegion(SaveRegionVO saveRegionVo) {
-        saveRegionVo.setHospitalId(SysUserUtils.getCurrentHospitalId());
-        saveRegionVo.setUserId(SysUserUtils.getCurrentPrincipleId());
+    public Object updateRegion(UpdateRegionVO updateRegionVO) {
+        updateRegionVO.setHospitalId(SysUserUtils.getCurrentHospitalId());
+        updateRegionVO.setUserId(SysUserUtils.getCurrentPrincipleId());
+        if(1==updateRegionVO.getMark()){
+            GetRegionVO getRegionVO = new GetRegionVO();
+            BeanUtils.copyProperties(updateRegionVO, getRegionVO);
+            IPage<ViewRegionDTO> region = regionFacade.getWard(getRegionVO);
+            List<ViewRegionDTO> records = region.getRecords();
+            if(ListUtil.isNotEmpty(records) && records.size() == 1){
+                ViewRegionDTO viewRegionDTO = records.get(0);
+                String deptName = viewRegionDTO.getDeptName();
+                List<String> deptNameList = viewRegionDTO.getDeptNameList();
+                if(deptName.contains(",")){
+                    for (String str : deptName.split(",")) {
+                        deptNameList.add(str);
+                    }
+                }
+            }
+            return region;
+        }
         Region sysRegion = new Region();
-        BeanUtils.copyProperties(saveRegionVo, sysRegion);
+        BeanUtils.copyProperties(updateRegionVO, sysRegion);
         List<RegionDept> sysRegionDepts = new ArrayList<>();
-        return updateRegion(saveRegionVo, sysRegion, sysRegionDepts);
+        return updateRegion(updateRegionVO, sysRegion, sysRegionDepts);
     }
 
     /**
@@ -176,30 +194,30 @@ public class RegionManagementFacade {
      * @Author: cy
      * @Date: 2021/7/30
      */
-    public Boolean updateRegion(SaveRegionVO saveRegionVo, Region sysRegion, List<RegionDept> sysRegionDepts) {
+    public Boolean updateRegion(UpdateRegionVO updateRegionVO, Region sysRegion, List<RegionDept> sysRegionDepts) {
         sysRegion.setGmtModified(new Date());
-        sysRegion.setModifier(saveRegionVo.getUserId().toString());
+        sysRegion.setModifier(updateRegionVO.getUserId().toString());
         regionFacade.updateById(sysRegion);
-        if (ListUtil.isNotEmpty(saveRegionVo.getDeptIds())) {
+        if (ListUtil.isNotEmpty(updateRegionVO.getDeptIds())) {
             Region region = regionFacade.lambdaQuery()
-                    .eq(Region::getId, saveRegionVo.getId())
+                    .eq(Region::getId, updateRegionVO.getId())
                     .eq(Region::getIsDeleted, IsDeleteEnum.N.getKey()).one();
             regionDeptService.lambdaUpdate()
-                    .eq(RegionDept::getHospitalId, saveRegionVo.getHospitalId())
+                    .eq(RegionDept::getHospitalId, updateRegionVO.getHospitalId())
                     .eq(RegionDept::getIsDeleted, IsDeleteEnum.N.getKey())
-                    .eq(RegionDept::getRegionId, saveRegionVo.getId()).remove();
-            saveRegionVo.getDeptIds().forEach(obj -> {
+                    .eq(RegionDept::getRegionId, updateRegionVO.getId()).remove();
+            updateRegionVO.getDeptIds().forEach(obj -> {
                 RegionDept sysRegionDeptEntry = new RegionDept();
-                BeanUtils.copyProperties(saveRegionVo, sysRegionDeptEntry);
+                BeanUtils.copyProperties(updateRegionVO, sysRegionDeptEntry);
                 sysRegionDeptEntry.setId(null);
                 sysRegionDeptEntry.setDeptId(obj);
-                sysRegionDeptEntry.setRegionId(saveRegionVo.getId());
+                sysRegionDeptEntry.setRegionId(updateRegionVO.getId());
                 if (null != region) {
                     sysRegionDeptEntry.setGmtCreate(region.getGmtCreate());
                     sysRegionDeptEntry.setCreator(region.getCreator());
                 }
                 sysRegionDeptEntry.setGmtModified(new Date());
-                sysRegionDeptEntry.setModifier(saveRegionVo.getUserId().toString());
+                sysRegionDeptEntry.setModifier(updateRegionVO.getUserId().toString());
                 sysRegionDepts.add(sysRegionDeptEntry);
             });
             return regionDeptService.saveBatch(sysRegionDepts);

+ 3 - 2
security-center/src/main/java/com/lantone/security/web/RegionManagementController.java

@@ -8,6 +8,7 @@ import com.lantone.common.vo.CheckSolveRegionVO;
 import com.lantone.common.vo.GetDeptListVO;
 import com.lantone.common.vo.GetRegionVO;
 import com.lantone.common.vo.SaveRegionVO;
+import com.lantone.common.vo.UpdateRegionVO;
 import com.lantone.security.facade.RegionManagementFacade;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -45,8 +46,8 @@ public class RegionManagementController {
     @ApiOperation(value = "修改病区[by:cy]")
     @PostMapping("/updateRegion")
     @Transactional
-    public CommonResult<Object> updateRegion(@RequestBody @Valid SaveRegionVO saveRegionVo) {
-        return CommonResult.success(sysRegionFacade.updateRegion(saveRegionVo));
+    public CommonResult<Object> updateRegion(@RequestBody @Valid UpdateRegionVO updateRegionVO) {
+        return CommonResult.success(sysRegionFacade.updateRegion(updateRegionVO));
     }
 
     @ApiOperation(value = "校验/禁用/启用病区管理[by:cy]")