From ec0f2528f83ee7c6ec64537d561a697ffff5b5c3 Mon Sep 17 00:00:00 2001
From: 侯瑞军 <411269194@kidgrow.com>
Date: Tue, 21 Apr 2020 15:27:04 +0800
Subject: [PATCH] 1.组织,医院,科室的编辑业务调整,增加了联动编辑功能(创建医院自动创建组织数据,修改同理) 2.重新优化,调整了医院/科室编辑过程中对名称的检查,数据间依赖关系的调整 3.调整优化了区域联动插件,自动完成插件的通用性

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java           |   85 ++++++-
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/DictionariesConstants.java                            |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java                             |   12 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java                           |    5 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java       |   10 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html                                                             |   41 +--
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java         |   86 ++++++-
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java                   |   10 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java           |    8 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml                                         |   11 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js                                                                      |   16 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java         |   19 -
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html                                                   |  269 ++++++++++++++++++------
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java                             |   10 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java                 |    5 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysHospitalMapper.java                      |    6 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/area.js                                                                           |    4 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IBusinessRecordsService.java |    4 
 18 files changed, 442 insertions(+), 163 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IBusinessRecordsService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IBusinessRecordsService.java
index d5461d5..bb3b514 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IBusinessRecordsService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IBusinessRecordsService.java
@@ -32,8 +32,8 @@
 
     /**
      * 写入系统业务日志
-     * @param recordTitle
-     * @param recordNote
+     * @param recordTitle 日志标题
+     * @param recordNote 日志内容
      * @return
      */
     boolean recordBusinessData(String  recordTitle, String recordNote);
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java
index 4ec743c..1618f27 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java
@@ -36,7 +36,6 @@
     /**
      * 组织Id
      */
-    @NotNull(message = "组织Id不能为空")
     private Long orgId;
     /**
      * 医院Id
@@ -53,10 +52,6 @@
      */
     @NotEmpty(message = "销售代表的名字不能为空")
     private String serverUserName;
-    /**
-     * 科室/部门简介
-     */
-    private String departmentAbout;
     /**
      * 状态,1启用,0停用
      */
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java
index 32bea0f..a02592f 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java
@@ -1,14 +1,14 @@
 package com.kidgrow.usercenter.model;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.kidgrow.common.model.SuperModel;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import org.hibernate.validator.constraints.NotEmpty;
-
-import javax.validation.constraints.NotNull;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -35,7 +35,7 @@
     /**
      * 组织ID-
      */
-    @NotNull(message = "组织ID不能为空")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long orgId;
     /**
      * 医院简称
@@ -58,6 +58,10 @@
      */
     private String hospitalTel;
     /**
+     * 医院联系人
+     */
+    private String hospitalLink;
+    /**
      * 医院所在省
      */
     private String hospitalProvince;
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java
index 730551f..ce17542 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java
@@ -1,6 +1,8 @@
 package com.kidgrow.usercenter.vo;
 
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -23,6 +25,7 @@
     /**
      * 医院id
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long hospitalId;
     /**
      * 医院名称 同组织名字
@@ -31,11 +34,16 @@
     /**
      * 组织ID
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long orgId;
     /**
-     * 区号
+     * 医院编码
      */
     private String hospitalCode;
+    /**
+     * 医院区号
+     */
+    private String areaCode;
     /**
      * 医院电话
      */
@@ -59,6 +67,7 @@
     /**
      * 负责的销售代表
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long serverUserId;
     /**
      * 销售代表的名字
@@ -67,6 +76,7 @@
     /**
      * 科室id
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long departmentId;
     /**
      * 科室/部门名称 同组织名称
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysHospitalMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysHospitalMapper.java
index 65bda61..1700033 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysHospitalMapper.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysHospitalMapper.java
@@ -27,6 +27,12 @@
     List<SysHospital> findList(Page<SysHospital> page, @Param("p") Map<String, Object> params);
 
     /**
+     * 根据医院名称模糊查询医院数据列表
+     * @param hospitalName
+     * @return
+     */
+    List<SysHospital> findByName(@Param("hospitalName") String hospitalName);
+    /**
      * 医院信息列表
      * @param page
      * @param params
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
index 9775fca..2a3b663 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDepartmentService.java
@@ -1,9 +1,9 @@
 package com.kidgrow.usercenter.service;
 
-import com.kidgrow.common.model.ResultBody;
-import com.kidgrow.usercenter.model.SysDepartment;
 import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.usercenter.model.SysDepartment;
 
 import java.util.Map;
 
@@ -22,7 +22,6 @@
      * @return
      */
     PageResult<SysDepartment> findList(Map<String, Object> params);
-
 
     /**
     * 根据SysDepartment对象当做查询条件进行查询
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
index e66e089..96e9ae5 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -1,9 +1,9 @@
 package com.kidgrow.usercenter.service;
 
-import com.kidgrow.common.model.ResultBody;
-import com.kidgrow.usercenter.model.SysHospital;
 import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.usercenter.model.SysHospital;
 import com.kidgrow.usercenter.vo.HospitalListVo;
 
 import java.util.Map;
@@ -35,6 +35,12 @@
     * @return SysHospital对象
     */
     SysHospital findByObject(SysHospital sysHospital);
+    /**
+     * 根据医院名称模糊查询医院数据列表
+     * @param hospitalName
+     * @return
+     */
+    ResultBody<SysHospital> findByName(String hospitalName);
 
     ResultBody<SysHospital> findAll(Map<String, Object> params);
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
index f0c9c3b..ce45ad0 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDepartmentServiceImpl.java
@@ -1,30 +1,27 @@
 package com.kidgrow.usercenter.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
 import com.kidgrow.common.model.SysOrganization;
+import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.usercenter.mapper.SysDepartmentMapper;
+import com.kidgrow.usercenter.model.SysDepartment;
 import com.kidgrow.usercenter.model.SysHospital;
+import com.kidgrow.usercenter.service.ISysDepartmentService;
 import com.kidgrow.usercenter.service.ISysHospitalService;
 import com.kidgrow.usercenter.service.ISysOrganizationService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.kidgrow.common.model.PageResult;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.kidgrow.common.service.impl.SuperServiceImpl;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
-
-import org.apache.commons.collections4.MapUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.usercenter.model.SysDepartment;
-import com.kidgrow.usercenter.mapper.SysDepartmentMapper;
-import com.kidgrow.usercenter.service.ISysDepartmentService;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
index b079f9a..c55a5ec 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -72,6 +72,14 @@
         return  ResultBody.ok().data(sysHospitals).msg("查询成功");
     }
     /**
+     * 根据医院名称模糊查询医院数据列表
+     * @param hospitalName
+     * @return
+     */
+    public ResultBody<SysHospital> findByName(String hospitalName){
+        return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功");
+    }
+    /**
      * 根据id和启用禁用值更新数据
      * @param params
      * @return ResultBody
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml
index 3a9f902..1c51631 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml
@@ -16,7 +16,7 @@
                 and id = #{p.id}
             </if>
             <if test="p.hospitalName != null and p.hospitalName !=''">
-                and hospital_name = #{p.hospitalName}
+                and hospital_name =#{p.hospitalName}%
             </if>
             <if test="p.orgId != null and p.orgId !=''">
                 and org_id = #{p.orgId}
@@ -174,9 +174,11 @@
         HOS.hospital_tel,
         HOS.hospital_state,
         HOS.hospital_link,
+        HOS.org_id hospital_org_id,
         HOS.is_screen,
         HOS.is_answer,
         HOS.tenant_id,
+        HOS.area_code,
         HOS.create_time
         FROM
 	sys_department DEP
@@ -184,4 +186,11 @@
         <include refid="whereList"/>
         order by create_time  desc
     </select>
+    <select id="findByName" resultType="com.kidgrow.usercenter.model.SysHospital">
+        select id,
+        hospital_name
+        from sys_hospital
+        where hospital_name LIKE concat('%',#{hospitalName},'%')
+        order by hospital_name desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
index e06449c..08b11d1 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -3,8 +3,10 @@
 import com.kidgrow.common.controller.BaseController;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysOrganization;
 import com.kidgrow.usercenter.model.SysDepartment;
 import com.kidgrow.usercenter.service.ISysDepartmentService;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -17,12 +19,14 @@
 
 import javax.validation.Valid;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
  * @Description: 科室表
  * @Project: 用户中心
  * @CreateDate: Created in 2020-04-02 18:32:36 <br>
@@ -33,9 +37,11 @@
 @RestController
 @RequestMapping("/sysdepartment")
 @Api(tags = "科室表")
-public class SysDepartmentController  extends BaseController{
+public class SysDepartmentController extends BaseController {
     @Autowired
     private ISysDepartmentService sysDepartmentService;
+    @Autowired
+    private ISysOrganizationService sysOrganizationService;
 
     /**
      * 列表
@@ -47,9 +53,9 @@
     })
     @GetMapping
     public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
-        if(params.size()==0){
-            params.put("page",1);
-            params.put("limit",10);
+        if (params.size() == 0) {
+            params.put("page", 1);
+            params.put("limit", 10);
         }
         return ResultBody.ok().data(sysDepartmentService.findList(params));
     }
@@ -75,31 +81,71 @@
     }
 
     /**
+     * 检查科室名是否存在
+     */
+    @ApiOperation(value = "检查科室名是否存在")
+    @GetMapping("/checkName")
+    public ResultBody checkDepName(@RequestParam Map<String, Object> params) {
+        params.put("page", 1);
+        params.put("limit", 1);
+        if (sysDepartmentService.findList(params).getData().size()>0) {
+            return ResultBody.failed().msg(String.format("该医院下已经存在科室 %s", params.get("departmentName")));
+        }
+        return ResultBody.ok().msg("");
+    }
+
+    /**
      * 新增or更新
      */
     @ApiOperation(value = "保存")
     @PostMapping
     public ResultBody save(@Valid @RequestBody SysDepartment sysDepartment, BindingResult bindingResult) {
-        List<String> errMsg= new ArrayList<>();
+        List<String> errMsg = new ArrayList<>();
         if (bindingResult.hasErrors()) {
             for (ObjectError error : bindingResult.getAllErrors()) {
                 errMsg.add(error.getDefaultMessage());
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            //先检查该医院下的该科室名是否已经存在?
-            SysDepartment sysDepartmentTemp=new SysDepartment();
-            sysDepartmentTemp.setHospitalId(sysDepartment.getHospitalId());
-            sysDepartmentTemp.setDepartmentName(sysDepartment.getDepartmentName().trim());
-            sysDepartmentTemp=sysDepartmentService.findByObject(sysDepartmentTemp);
-            if (sysDepartmentTemp!=null) {
-                return ResultBody.failed().msg(String.format("该医院下已经存在 %s",sysDepartment.getDepartmentName()));
+            //先检查该医院该科室是否已经存在
+            Map<String, Object> checkDepartment=new HashMap<String,Object>();
+            checkDepartment.put("page", 1);
+            checkDepartment.put("limit", 1);
+            checkDepartment.put("hospitalId",sysDepartment.getHospitalId());
+            checkDepartment.put("departmentName",sysDepartment.getDepartmentName());
+            if (sysDepartmentService.findList(checkDepartment).getData().size()>0) {
+                return ResultBody.failed().msg(String.format("该医院下已经存在科室 %s", sysDepartment.getDepartmentName()));
             }
-            boolean v= sysDepartmentService.saveOrUpdate(sysDepartment);
-            if(v) {
+            //先检查是否存在组织信息
+            SysOrganization sysOrganization=new SysOrganization();
+            if(sysDepartment.getOrgId()!=null){
+                sysOrganization.setId(sysDepartment.getOrgId());}
+            else{
+                sysOrganization.setOrgName(sysDepartment.getDepartmentName());
+                //临时暂用其它字段承载数据
+                sysOrganization.setOrgParentId(sysDepartment.getUpdateUserId());
+            }
+            sysOrganization=sysOrganizationService.findByObject(sysOrganization);
+            if(sysOrganization==null)
+            {
+                //创建一个组织
+                sysOrganization=new SysOrganization();
+                sysOrganization.setOrgName(sysDepartment.getDepartmentName());
+                sysOrganization.setOrgAttr(2);
+                sysOrganization.setOrgLevel(2);
+                //临时暂用其它字段承载数据
+                sysOrganization.setOrgParentId(sysDepartment.getUpdateUserId());
+            }
+            else
+            {
+                sysOrganization.setOrgName(sysDepartment.getDepartmentName());
+            }
+            boolean org=sysOrganizationService.saveOrUpdate(sysOrganization);
+            sysDepartment.setOrgId(sysOrganization.getId());
+            boolean v = sysDepartmentService.saveOrUpdate(sysDepartment);
+            if (v) {
                 return ResultBody.ok().data(sysDepartment).msg("保存成功");
-            }
-            else {
+            } else {
                 return ResultBody.failed().msg("保存失败");
             }
         }
@@ -111,17 +157,17 @@
     @ApiOperation(value = "删除")
     @DeleteMapping("/{id}")
     public ResultBody delete(@PathVariable Long id) {
-        boolean v= sysDepartmentService.removeById(id);
-        if(v) {
+        boolean v = sysDepartmentService.removeById(id);
+        if (v) {
             return ResultBody.ok().msg("删除成功");
-        }
-        else {
+        } else {
             return ResultBody.failed().msg("删除失败");
         }
     }
 
     /**
      * 根据医院获取  组织,通过组织,获取科室;
+     *
      * @param params
      * @return
      */
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
index ef629d9..e518709 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -1,10 +1,14 @@
 package com.kidgrow.usercenter.controller;
 
+import com.kidgrow.common.constant.DictionariesConstants;
 import com.kidgrow.common.controller.BaseController;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysOrganization;
 import com.kidgrow.usercenter.model.SysHospital;
+import com.kidgrow.usercenter.service.ISysDepartmentService;
 import com.kidgrow.usercenter.service.ISysHospitalService;
+import com.kidgrow.usercenter.service.ISysOrganizationService;
 import com.kidgrow.usercenter.vo.HospitalListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -24,6 +28,7 @@
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
  * @Description: 医院基础信息表
  * @Project: 用户中心
  * @CreateDate: Created in 2020-04-02 18:32:36 <br>
@@ -34,9 +39,13 @@
 @RestController
 @RequestMapping("/syshospital")
 @Api(tags = "医院基础信息表")
-public class SysHospitalController  extends BaseController{
+public class SysHospitalController extends BaseController {
     @Autowired
     private ISysHospitalService sysHospitalService;
+    @Autowired
+    private ISysDepartmentService departmentService;
+    @Autowired
+    private ISysOrganizationService organizationService;
 
     /**
      * 列表
@@ -48,12 +57,13 @@
     })
     @GetMapping("/findOne")
     public PageResult<SysHospital> listOne(@RequestParam Map<String, Object> params) {
-        if(params.size()==0){
-            params.put("page",1);
-            params.put("limit",10);
+        if (params.size() == 0) {
+            params.put("page", 1);
+            params.put("limit", 10);
         }
         return sysHospitalService.findList(params);
     }
+
     /**
      * 列表
      */
@@ -64,17 +74,23 @@
     })
     @GetMapping
     public PageResult<HospitalListVo> list(@RequestParam Map<String, Object> params) {
-        if(params.size()==0){
-            params.put("page",1);
-            params.put("limit",10);
+        if (params.size() == 0) {
+            params.put("page", 1);
+            params.put("limit", 10);
         }
         return sysHospitalService.findHospitalList(params);
     }
+
     @PostMapping("findAll")
     @ApiOperation(value = "查询所有列表")
     public ResultBody<SysHospital> findAll(@RequestBody Map<String, Object> params) {
-        return sysHospitalService.findAll(params);
+        if (params.get("hospitalName") != null) {
+            return sysHospitalService.findAll(params);
+        } else {
+            return ResultBody.ok().data(null);
+        }
     }
+
     /**
      * 查询
      */
@@ -84,7 +100,18 @@
         SysHospital model = sysHospitalService.getById(id);
         return ResultBody.ok().data(model).msg("查询成功");
     }
-
+    /**
+     * 查询
+     */
+    @ApiOperation(value = "查询")
+    @GetMapping("/findByName")
+    public ResultBody findByName(@RequestParam String hospitalName) {
+        if (!hospitalName.isEmpty()) {
+            return ResultBody.ok().data(sysHospitalService.findByName(hospitalName).getData()).msg("查询成功");
+        } else {
+            return ResultBody.ok().data(null).msg("");
+        }
+    }
     /**
      * 根据SysHospital当做查询条件进行查询
      */
@@ -101,18 +128,41 @@
     @ApiOperation(value = "保存")
     @PostMapping
     public ResultBody save(@Valid @RequestBody SysHospital sysHospital, BindingResult bindingResult) {
-        List<String> errMsg= new ArrayList<>();
+        List<String> errMsg = new ArrayList<>();
         if (bindingResult.hasErrors()) {
             for (ObjectError error : bindingResult.getAllErrors()) {
                 errMsg.add(error.getDefaultMessage());
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            boolean v= sysHospitalService.saveOrUpdate(sysHospital);
-            if(v) {
-                return ResultBody.ok().data(sysHospital).msg("保存成功");
+            //先检查该医院是否存在组织信息
+            SysOrganization sysOrganization=new SysOrganization();
+            if(sysHospital.getOrgId()!=null){
+                sysOrganization.setId(sysHospital.getOrgId());}
+            else{
+                sysOrganization.setOrgName(sysHospital.getHospitalName());
+                sysOrganization.setOrgParentId(DictionariesConstants.ORG_PARENT_ID);
             }
-            else {
+            sysOrganization=organizationService.findByObject(sysOrganization);
+            if(sysOrganization==null)
+            {
+                //创建一个组织
+                sysOrganization=new SysOrganization();
+                sysOrganization.setOrgName(sysHospital.getHospitalName());
+                sysOrganization.setOrgAttr(1);
+                sysOrganization.setOrgLevel(1);
+                sysOrganization.setOrgParentId(DictionariesConstants.ORG_PARENT_ID);
+            }
+            else
+            {
+                sysOrganization.setOrgName(sysHospital.getHospitalName());
+            }
+            boolean org=organizationService.saveOrUpdate(sysOrganization);
+            sysHospital.setOrgId(sysOrganization.getId());
+            boolean v = sysHospitalService.saveOrUpdate(sysHospital);
+            if (v) {
+                return ResultBody.ok().data(sysHospital).msg("保存成功");
+            } else {
                 return ResultBody.failed().msg("保存失败");
             }
         }
@@ -128,12 +178,12 @@
             @ApiImplicitParam(name = "departmentId", value = "departmentId", required = true, dataType = "Integer")
     })
     public ResultBody delete(@RequestParam Map<String, Object> params) {
-        if (params.size()==0)
-        {
+        if (params.size() == 0) {
             return ResultBody.failed().msg("参数异常!");
         }
         return sysHospitalService.delete(params);
     }
+
     /**
      * 修改状态
      *
@@ -148,8 +198,7 @@
             @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
     })
     public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
-        if (params.size()==0)
-        {
+        if (params.size() == 0) {
             return ResultBody.failed().msg("参数异常!");
         }
         return sysHospitalService.updateEnabled(params);
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
index 243af8e..d0d2124 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysOrganizationController.java
@@ -67,7 +67,13 @@
             params.put("page",1);
             params.put("limit",10);
         }
-        return ResultBody.ok().data(sysOrganizationService.findList(params).getData());
+        if (params.get("orgName")!=null) {
+            return ResultBody.ok().data(sysOrganizationService.findList(params).getData());
+        }
+        else
+        {
+            return ResultBody.ok().data(null);
+        }
     }
     @ApiOperation(value = "查询列表by MAP")
     @GetMapping("getListByMap")
@@ -119,7 +125,7 @@
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            boolean v= sysOrganizationService.saveOrUpdateSer(sysOrganization);
+            boolean v= sysOrganizationService.saveOrUpdate(sysOrganization);
             if(v) {
                 return ResultBody.ok().data(sysOrganization).msg("保存成功");
             }
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/DictionariesConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/DictionariesConstants.java
index 58ff3e9..be77489 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/DictionariesConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/DictionariesConstants.java
@@ -21,4 +21,8 @@
      * 医生职称
      */
     String DOCTOR_RANK = "DOCTOR_RANK";
+    /**
+     * 最高组织ID
+     */
+    Long ORG_PARENT_ID=1L;
 }
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
index 0cd2eae..f8e6a4f 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js
@@ -202,7 +202,7 @@
      * @returns {}
      */
     isEmpty:function(str){
-        if(str != '' && str != undefined && str != null && str.length > 0){
+        if(str != '' && str != undefined && str != null){
             return false;
         }else{
             return true;
@@ -259,3 +259,17 @@
         return true;
     }
 };
+//从当前页面的url地址中获取参数数据
+function getRequest() {
+    debugger
+    var url = location.search; //获取url中"?"符后的字串
+    var theRequest = new Object();
+    if(url.indexOf("?") != -1) {
+        var str = url.substr(1);
+        strs = str.split("&");
+        for(var i = 0; i < strs.length; i++) {
+            theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
+        }
+    }
+    return theRequest;
+}
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/area.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/area.js
index d53dc0f..96a4705 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/area.js
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/area.js
@@ -33,6 +33,10 @@
                     clientsAll = data.data;
                     if (clientsAll.length > 0) {
                         area.areasClear(domId,levelType);
+                        if(clientsAll[0].areaLeveltype==2)
+                        {
+                            admin.putTempData("t_city",clientsAll);
+                        }
                         $.each(clientsAll, function (index, item) {
                             if (selectValue == item.areaName) { selected = "selected='selected'"; }
                             else {
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
index 9840a14..809efd5 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -34,7 +34,7 @@
                 <option value="1">正式</option>
             </select>
             &emsp;
-            <input id="hospitalName" class="layui-input search-input" type="text" placeholder="按医院名" />&emsp;
+            <input id="hosName" class="layui-input search-input" type="text" placeholder="按医院名" />&emsp;
             <button id="hospita-btn-search" class="layui-btn icon-btn"><i
                     class="layui-icon">&#xe615;</i>搜索</button>&emsp;
             <button id="hospital-btn-add" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加医院</button>
@@ -48,8 +48,7 @@
 <!-- 表格操作列 -->
 <script type="text/html" id="businessRecords-table-bar">
     <a class="layui-btn layui-btn-xs" lay-event="pay">充值</a>
-    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
-    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="addDepartment">添加科室</a>
+    <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a> -->
     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
 </script>
@@ -59,7 +58,7 @@
            {{d.enabled==true?'checked':''}}/>
 </script>
 <script>
-    layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin', 'area'], function () {
+    layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin', 'autocomplete', 'area'], function () {
         var form = layui.form;
         var table = layui.table;
         var config = layui.config;
@@ -67,7 +66,7 @@
         var util = layui.util;
         var admin = layui.admin;
         var area = layui.area;
-
+        
         // 渲染表格
         table.render({
             elem: '#hospital-table',
@@ -76,8 +75,8 @@
             headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
             page: true,
             cols: [[
-                { field: 'hospitalName', width: 250, title: '医院名称',fixed:'left'},
-                { field: 'departmentName', width: 100, title: '科室' ,fixed:'left'},
+                { field: 'hospitalName', width: 250, title: '医院名称', fixed: 'left' },
+                { field: 'departmentName', width: 100, title: '科室', fixed: 'left' },
                 {
                     field: 'hospitalArea', width: 250, title: '所在地区', templet: function (d) {
                         return ((d.hospitalProvince == null) ? "" : d.hospitalProvince) + " "
@@ -104,7 +103,7 @@
                 { field: 'serverUserName', width: 100, title: '服务人员' },
                 { field: 'createTime', width: 120, sort: true, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd')}}</div>" },
                 { field: 'enabled', width: 100, templet: '#hospital-tpl-state', sort: true, title: '状态' },
-                { field: 'hospitalId', width: 300, align: 'center', toolbar: '#businessRecords-table-bar', title: '操作' ,fixed:'right'}
+                { field: 'hospitalId', width: 300, align: 'center', toolbar: '#businessRecords-table-bar', title: '操作', fixed: 'right' }
             ]]
         });
         //省份数据加载
@@ -129,23 +128,10 @@
                     }, 'GET');
                 });
             }
-            else if (layEvent === 'addDepartment') {
-                //添加科室
-                admin.putTempData("t_hospital", data);
-                admin.popupCenter({
-                    title: '添加科室',
-                    path: 'pages/opration/department_form.html',
-                    area: ['900px', '60%'],
-                    finish: function () {
-                        //清理缓存数据
-                        admin.putTempData("t_hospital", "");
-                    }
-                })
-            }
             else if (layEvent === "edit") {
                 //修改
                 admin.putTempData("t_hospital", data);
-                showEditModel();
+                showEditModel("edit");
             }
         });
         // 搜索按钮点击事件
@@ -153,7 +139,7 @@
             var isscreen = $('#isscreen').val();
             var isanswer = $('#isanswer').val();
             var hospitalstate = $('#hospitalstate').val();
-            var hospitalName = $('#hospitalName').val();
+            var hospitalName = $('#hosName').val();
 
             var hospitalProvince = ($("#province").val() != "") ? $('#province option:selected').text() : "";
             var hospitalCity = ($("#city").val() != "") ? $('#city option:selected').text() : "";
@@ -174,11 +160,11 @@
         // // 显示编辑弹窗
         var showEditModel = function (data) {
             admin.popupCenter({
-                title: '编辑医院/科室',
-                path: 'pages/opration/hospital_form_tab.html',
-                area: ['900px', '80%'],
+                title: (strUtil.isEmpty(data))?'添加医院':'编辑医院',
+                path: 'pages/opration/hospital_form_base.html',
+                area: '900px',
                 finish: function () {
-
+                    $('#hospita-btn-search').click();
                 }
             });
         };
@@ -213,6 +199,7 @@
         });
         // 添加按钮点击事件
         $('#hospital-btn-add').click(function () {
+            admin.putTempData("t_hospital","");
             showEditModel();
         });
     });
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
index 1eaca5e..07d3f1f 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -5,7 +5,7 @@
                 <label class="layui-form-label">医院名称</label>
                 <div class="layui-input-block">
                     <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input"
-                        maxlength="50" lay-verify="required" required autocomplete="on" style="width: 390px;" />
+                        maxlength="50" lay-verify="required" required style="width: 390px;" />
                 </div>
             </div>
             <div class="layui-col-sm3">
@@ -19,11 +19,17 @@
     </div>
     <div class="layui-form-item">
         <div class="layui-row">
-            <div class="layui-col-sm7">
+            <div class="layui-col-sm4">
+                <label class="layui-form-label">科室名称</label>
+                <div class="layui-input-block">
+                    <input name="departmentName" id="departmentName" placeholder="科室名称" type="text" class="layui-input"
+                        maxlength="50" lay-verify="required" required style="width: 150px;" />
+                    &emsp;</div>
+            </div>
+            <div class="layui-col-sm3">
                 <label class="layui-form-label">联系电话</label>
                 <div class="layui-input-block">
-                    <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" maxlength="50"
-                        style="width: 390px;" />
+                    <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" maxlength="50" />
                 </div>
             </div>
             <div class="layui-col-sm3">
@@ -39,7 +45,7 @@
             <div class="layui-col-sm7">
                 <label class="layui-form-label">医院类型</label>
                 <div class="layui-input-block">
-                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden"  value=""/>
+                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" value="" />
                     <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName"
                         style="width: 300px;">
                         <option value="">请选择</option>
@@ -49,7 +55,7 @@
             <div class="layui-col-sm3">
                 <label class="layui-form-label">医院资质</label>
                 <div class="layui-input-block">
-                    <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden"  value=""/>
+                    <input name="hospitalQualifiedId" id="hospitalQualifiedId" type="hidden" value="" />
                     <select name="hospitalQualifiedName" id="hospitalQualifiedName" lay-filter="hospitalQualifiedName"
                         style="width: 300px;">
                         <option value="">请选择</option>
@@ -63,14 +69,17 @@
             <label class="layui-form-label">所在地区</label>
             <div class="layui-input-block">
                 <div class="layui-col-sm4">
-                    <select id="hospitalProvince" placeholder="省份" lay-filter="hospitalProvince" style="width: 400px;">
+                    <select lay-verify="required" required id="hospitalProvince" placeholder="省份"
+                        lay-filter="hospitalProvince" style="width: 400px;">
                     </select></div>
                 <div class="layui-col-sm4">
-                    <select id="hospitalCity" placeholder="市" lay-filter="hospitalCity" style="width: 350px;">
+                    <select id="hospitalCity" lay-verify="required" required placeholder="市" lay-filter="hospitalCity"
+                        style="width: 350px;">
                         <option value="">选择市</option>
                     </select></div>
                 <div class="layui-col-sm4">
-                    <select id="hospitalArea" placeholder="区县" lay-filter="hospitalArea" style="width: 350px;">
+                    <select id="hospitalArea" lay-verify="required" required placeholder="区县" lay-filter="hospitalArea"
+                        style="width: 350px;">
                         <option value="">选择区县</option>
                     </select>
                 </div>
@@ -88,23 +97,32 @@
             <div class="layui-col-sm3">
                 <label class="layui-form-label">区号</label>
                 <div class="layui-input-block">
-                    <input name="areaCode" type="text" class="layui-input" maxlength="10" />
+                    <input name="areaCode" id="areaCode" lay-verify="required" required type="text" class="layui-input"
+                        maxlength="10" />
                 </div>
             </div>
             <div class="layui-col-sm3">
                 <label class="layui-form-label">经度</label>
                 <div class="layui-input-block">
-                    <input name="longitude" type="text" class="layui-input" maxlength="20" />
+                    <input name="longitude" id="longitude" type="text" class="layui-input" maxlength="20" />
                 </div>
             </div>
             <div class="layui-col-sm3">
                 <label class="layui-form-label">纬度</label>
                 <div class="layui-input-block">
-                    <input name="latitude" type="text" class="layui-input" maxlength="20" />
+                    <input name="latitude" id="latitude" type="text" class="layui-input" maxlength="20" />
+                </div>
+            </div>
+            <div class="layui-col-sm3">
+                <label class="layui-form-label">服务人员</label>
+                <div class="layui-input-block">
+                    <input name="serverUserId" id="serverUserId" type="hidden" value="" />
+                    <select lay-verify="required" required name="serverUserName" id="serverUserName"
+                        style="width: 150px;">
+                    </select>
                 </div>
             </div>
         </div>
-    </div>
     </div>
     <div class="layui-form-item">
         <label class="layui-form-label">医院简介</label>
@@ -116,34 +134,25 @@
         <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
         <button class="layui-btn" lay-filter="hospital-form-submit" lay-submit>保存</button>
     </div>
-    <input type="hidden" id="orgId" name="orgId" value=""/>
+    <input type="hidden" name="departmentId" id="departmentId" value="" />
+    <input type="hidden" name="orgId" id="orgId" value="" />
+    <input type="hidden" name="departmentOrgId" id="departmentOrgId" value="" />
+    <input type="hidden" name="id" id="id" value="" />
 </form>
 
 <script>
-    parent.layui.use(['form', 'table','util', 'config', 'admin', 'area', 'formSelects', 'dic', 'autocomplete'], function () {
-        var form = parent.layui.form;
-        var table = parent.layui.table;
-        var config = parent.layui.config;
-        var layer = parent.layui.layer;
-        var util = parent.layui.util;
-        var admin = parent.layui.admin;
-        var area = parent.layui.area;
-        var dic = parent.layui.dic;
-        var formSelects = parent.layui.formSelects;
-        var autocomplete = parent.layui.autocomplete;
-        var $ = parent.layui.jquery;
+    layui.use(['form', 'table', 'util', 'config', 'admin', 'area', 'dic', 'autocomplete'], function () {
+        var form = layui.form;
+        var table = layui.table;
+        var config = layui.config;
+        var layer = layui.layer;
+        var util = layui.util;
+        var admin = layui.admin;
+        var area = layui.area;
+        var dic = layui.dic;
+        var autocomplete = layui.autocomplete;
+        var $ = layui.jquery;
 
-        autocomplete.render({
-            elem: $('#hospitalName'),
-            cache: true,
-            url: config.base_server + 'api-user/syshospital',
-            response: { code: 'code', data: 'data' },
-            template_val: '{{d.hospitalName}}',
-            template_txt: '{{d.hospitalName}} <span class=\'layui-badge layui-bg-gray\'>{{d.id}}</span>',
-            onselect: function (resp) {
-                //$('#content1').html("NEW RENDER: " + JSON.stringify(resp));
-            }
-        })
         //医院资质数据
         dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
         //医院类型数据
@@ -158,6 +167,18 @@
         //装载区县数据
         form.on("select(hospitalCity)", function (data) {
             area.areaData("#hospitalArea", 3, data.value, "");
+            //区号,金纬度自动赋值
+            let cityData = admin.getTempData("t_city");
+            if (cityData != null) {
+                cityData.forEach(function (item) {
+                    if (data.value == item.id) {
+                        $("#areaCode").val(item.areaCitycode);
+                        $("#longitude").val(item.areaLng);
+                        $("#latitude").val(item.areaLat);
+                        break;
+                    }
+                })
+            }
         });
         //赋值资质数据ID
         form.on("select(hospitalQualifiedName)", function (data) {
@@ -167,42 +188,156 @@
         form.on("select(hospitalTypeName)", function (data) {
             $("#hospitalTypeId").val(data.value);
         });
-
-        // 回显组织数据
-        let orgs = admin.getTempData('t_org');
-        if (orgs != null) {
-            $('input[name="hospitalName"]').val(orgs.orgName);
-            $('input[name="orgId"]').val(orgs.id);
-            form.render();
-        }
         // 表单提交事件
         form.on('submit(hospital-form-submit)', function (data) {
             layer.load(2);
-            if(data.field!=null){
-                
-                data.field.hospitalTypeName=$("#hospitalTypeName option:selected").text();
-                data.field.hospitalQualifiedName=$("#hospitalQualifiedName option:selected").text();
-                data.field.hospitalProvince=$("#hospitalProvince option:selected").text();
-                data.field.hospitalCity=$("#hospitalCity option:selected").text();
-                data.field.hospitalArea=$("#hospitalArea option:selected").text();
+            if (data.field != null) {
 
-            admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) {
-                layer.closeAll('loading');
-                if (data.code == 0) {
-                    //将医院数据存入本地
-                    admin.putTempData('t_hospital', data.data);
-                    layer.msg(data.msg, { icon: 1, time: 1000 }, function () {
-                        //清理组织数据
-                        admin.putTempData('t_org','');
-                    });
-                } else {
-                    layer.msg(data.msg, { icon: 2, time: 1000 });
-                }
-            }, "POST");}
-            else{
-                    layer.msg("数据异常!", { icon: 2, time: 1000 });
+                data.field.hospitalTypeName = $("#hospitalTypeName option:selected").text() != "请选择" ? $("#hospitalTypeName option:selected").text() : "";
+                data.field.hospitalQualifiedName = $("#hospitalQualifiedName option:selected").text() != "请选择" ? $("#hospitalQualifiedName option:selected").text() : "";
+                data.field.hospitalProvince = $("#hospitalProvince option:selected").text() != "选择省" ? $("#hospitalProvince option:selected").text() : "";
+                data.field.hospitalCity = $("#hospitalCity option:selected").text() != "选择市" ? $("#hospitalCity option:selected").text() : "";
+                data.field.hospitalArea = $("#hospitalArea option:selected").text() != "选择区县" ? $("#hospitalArea option:selected").text() : "";
+
+                admin.req('api-user/syshospital', JSON.stringify(data.field), function (data) {
+                    layer.closeAll('loading');
+                    if (data.code === 0) {
+                        //存储科室数据
+                        var departmentData = {
+                            serverUserId: $("#serverUserName").val(),
+                            serverUserName: $("#serverUserName option:selected").text(),
+                            departmentName: $("#departmentName").val(),
+                            id: $("#departmentId").val(),
+                            orgId: $("#departmentOrgId").val(),
+                            updateUserId: data.data.orgId,
+                            hospitalId: data.data.id
+                        };
+                        admin.req('api-user/sysdepartment', JSON.stringify(departmentData), function (data) {
+                            layer.closeAll('loading');
+                            if (data.code == 0) {
+                                layer.msg(data.msg, { icon: 1, time: 1000 }, function () {
+                                    admin.finishPopupCenter();
+                                });
+                                admin.putTempData("t_hospital", "");
+                                admin.putTempData("t_city", "");
+                            } else {
+                                layer.msg(data.msg, { icon: 2, time: 1000 });
+                            }
+                        }, "POST");
+                    } else {
+                        layer.msg(data.msg, { icon: 2, time: 1000 });
+                    }
+                }, "POST");
+            }
+            else {
+                layer.msg("数据异常!", { icon: 2, time: 1000 });
             }
             return false;
         });
+        //自动完成-医院名称
+        autocomplete.render({
+            elem: $('#hospitalName')[0],
+            keywordsName: 'hospitalName',//查询关键字名称
+            url: config.base_server + 'api-user/syshospital/findByName',
+            template_val: '{{d.hospitalName}}',//选择后文本框显示的数据字段
+            template_txt: "<div class='layui-table-cell'>{{d.hospitalName}}</div>",//下拉列表模板
+            onselect: function (resp) {
+                loadDatas(resp.id);
+            }
+        });
+        //加载当前所在部门的在职员工
+        admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
+            layer.closeAll('loading');
+            if (0 === data.code) {
+                if (data.data.length > 0) {
+                    $.each(data.data, function (index, item) {
+                        //往下拉菜单里添加元素
+                        $('#serverUserName').append(new Option(item.nickname, item.id, false, false));
+                    })
+                    $('#serverUserName').val(config.getUser().id);
+                    $('#serverUserId').val(config.getUser().id);
+                    form.render('select');
+                }
+            } else {
+                layer.msg(data.msg, { icon: 2, time: 500 });
+            }
+        }, 'get');
+        //检查科室名是否存在
+        $("#departmentName").blur(function () {
+            debugger
+            if (edithospitalData != null) {
+                if (edithospitalData.departmentName == $("#departmentName").val()) {
+                    return false;
+                }
+            }
+                let hosIdForDep = $("#id").val();
+                if (!strUtil.isEmpty($("#departmentName").val()) && !strUtil.isEmpty(hosIdForDep)) {
+                    admin.req('api-user/sysdepartment/checkName', { hospitalId: hosIdForDep, departmentName: $("#departmentName").val() }, function (data) {
+                        layer.closeAll('loading');
+                        if (0 != data.code) {
+                            layer.msg(data.msg, { icon: 2, time: 1000 });
+                            return false;
+                        }
+                    }, 'get');
+                }
+        })
+        //按照ID装载数据
+        var loadDatas = function (hosId) {
+            if (!strUtil.isEmpty(hosId)) {
+                //用ID获取实体
+                admin.req('api-user/syshospital/' + hosId, {}, function (data) {
+                    layer.closeAll('loading');
+                    if (0 === data.code) {
+                        //装载基本数据
+                        let hosData = data.data;
+                        form.val("hospital-form", hosData);
+                        //装载省市区数据
+                        if (!strUtil.isEmpty(hosData.hospitalProvince))
+                            area.areaData("#hospitalProvince", 1, "", hosData.hospitalProvince);
+                        if (!strUtil.isEmpty(hosData.hospitalCity))
+                            area.areaData("#hospitalCity", 2, $("#hospitalProvince").val(), hosData.hospitalCity);
+
+                        if (!strUtil.isEmpty(hosData.hospitalArea))
+                            area.areaData("#hospitalArea", 3, $("#hospitalCity").val(), hosData.hospitalArea);
+                        //装载资质 类型  
+                        $("#hospitalQualifiedName").val(hosData.hospitalQualifiedId);
+                        $("#hospitalTypeName").val(hosData.hospitalTypeId);
+
+                        //装载科室数据
+                        admin.req('api-user/sysdepartment', { hospitalId: hosId, isDel: 0, page: 1, limit: 20 }, function (data) {
+                            if (data.code == 0) {
+                                let departData = data.data.data;
+                                if (departData.length > 0) {
+                                    if (departData.length > 1) {
+                                        layer.msg("该医院下有多个科室,默认显示第一个", { icon: 1, time: 2000 });
+                                    }
+                                    $("#serverUserId").val(departData[0].serverUserId);
+                                    $("#serverUserName").val(departData[0].serverUserId);
+                                    $("#departmentName").val(departData[0].departmentName);
+                                    $("#departmentId").val(departData[0].id);
+                                    $("#departmentOrgId").val(departData[0].orgId);
+                                    form.render();
+                                }
+                            }
+                            else {
+                                layer.msg(data.msg, { icon: 2, time: 500 });
+                            }
+                        }, 'get');
+                        form.render();
+
+                    } else {
+                        layer.msg(data.msg, { icon: 2, time: 500 });
+                    }
+                }, 'get');
+            }
+        }
+        //回显组织数据
+        let edithospitalData = admin.getTempData('t_hospital');
+        var hosIdForEdit = "";
+        if (edithospitalData != null) {
+            hosIdForEdit = edithospitalData.hospitalId;
+            if (!strUtil.isEmpty(hosIdForEdit))
+                loadDatas(hosIdForEdit);
+        }
     });
 </script>
\ No newline at end of file

--
Gitblit v1.8.0