forked from kidgrow-microservices-platform

luliqiang
2020-12-16 2b80ec2ea965f3ac34ac164d8ed1ec8a00d40f87
增加合作商信息和合作商客户信息管理功能
1 files added
11 files modified
1835 ■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/EquipmentDocking.java 145 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/PartnerDockingInfo.java 144 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IPartnerDockingInfoService.java 7 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IPartnerInfoService.java 10 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java 218 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerInfoServiceImpl.java 25 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/PartnerDockingInfoMapper.xml 14 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/PartnerInfoMapper.xml 99 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql 557 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml 2 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html 393 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerInfo.html 221 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/EquipmentDocking.java
@@ -15,11 +15,12 @@
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 *
 * @version 1.0
 * @Description: <br>
 * @Project: 用户中心<br>
 * @CreateDate: Created in 2020-10-19 11:14:58 <br>
 * @Author: <a href="4345453@kidgrow.com">liuke</a>
 * @version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@@ -27,76 +28,76 @@
@AllArgsConstructor
@TableName("equipment_docking")
public class EquipmentDocking extends SuperModel {
    private static final long serialVersionUID=1L;
    private static final long serialVersionUID = 1L;
            /**
    * 医院名称
    */
        @NotEmpty(message = "医院名称不能为空")
        private String hospitalName;
            /**
    * 科室名称
    */
        @NotEmpty(message = "科室名称不能为空")
        private String departName;
            /**
    * 医院唯一标识
    */
        @NotNull(message = "医院唯一标识不能为空")
        @JsonSerialize(using = ToStringSerializer.class)
        private Long hospitalId;
            /**
    * 部门唯一表示
    */
            @NotNull(message = "部门唯一表示不能为空")
            @JsonSerialize(using = ToStringSerializer.class)
        private Long departId;
            /**
    * 设备厂家名称
    */
        @NotEmpty(message = "设备厂家名称不能为空")
        private String companyName;
            /**
    * 设备型号
    */
        @NotEmpty(message = "设备型号不能为空")
        private String unitType;
            /**
    * 设备品牌
    */
        @NotEmpty(message = "设备品牌不能为空")
        private String equipmentBrand;
            /**
    * 设备机器码
    */
        @NotEmpty(message = "设备机器码不能为空")
        private String machineCode;
            /**
    * hospital_id+depart_id+machine_code 进行md5加密生成的32位小写的字符串
    */
    /**
     * 医院名称
     */
    @NotEmpty(message = "医院名称不能为空")
    private String hospitalName;
    /**
     * 科室名称
     */
    @NotEmpty(message = "科室名称不能为空")
    private String departName;
    /**
     * 医院唯一标识
     */
    @NotNull(message = "医院唯一标识不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long hospitalId;
    /**
     * 部门唯一表示
     */
    @NotNull(message = "部门唯一表示不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long departId;
    /**
     * 设备厂家名称
     */
    @NotEmpty(message = "设备厂家名称不能为空")
    private String companyName;
    /**
     * 设备型号
     */
    @NotEmpty(message = "设备型号不能为空")
    private String unitType;
    /**
     * 设备品牌
     */
    @NotEmpty(message = "设备品牌不能为空")
    private String equipmentBrand;
    /**
     * 设备机器码
     */
    @NotEmpty(message = "设备机器码不能为空")
    private String machineCode;
    /**
     * hospital_id+depart_id+machine_code 进行md5加密生成的32位小写的字符串
     */
//        @NotEmpty(message = "hospital_id+depart_id+machine_code 进行md5加密生成的32位小写的字符串不能为空")
        private String outAccesskey;
            /**
    * 设备厂家联系人电话
    */
        @NotEmpty(message = "设备厂家联系人电话不能为空")
        private String contactPhone;
            /**
    * 设备厂家联系人名称
    */
        @NotEmpty(message = "设备厂家联系人名称不能为空")
        private String contactName;
            /**
    * 备注信息
    */
        private String remarkComment;
                                    /**
    * 状态,1启用,0停用
    */
        private Boolean enabled;
            /**
    * 是否删除,1删除,0未删除
    */
        @TableLogic
        private Boolean isDel;
    }
    private String outAccesskey;
    /**
     * 设备厂家联系人电话
     */
    @NotEmpty(message = "设备厂家联系人电话不能为空")
    private String contactPhone;
    /**
     * 设备厂家联系人名称
     */
    @NotEmpty(message = "设备厂家联系人名称不能为空")
    private String contactName;
    /**
     * 备注信息
     */
    private String remarkComment;
    /**
     * 状态,1启用,0停用
     */
    private Boolean enabled;
    /**
     * 是否删除,1删除,0未删除
     */
    @TableLogic
    private Boolean isDel;
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/PartnerDockingInfo.java
@@ -1,88 +1,104 @@
package com.kidgrow.oprationcenter.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;
import java.util.Date;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 *
 * @version 1.0
 * @Description: 合作商客户对接信息表<br>
 * @Project: 运营中心<br>
 * @CreateDate: Created in 2020-12-08 14:35:33 <br>
 * @Author: <a href="1024030301@kidgrow.com">LuLiQiang</a>
 * @version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@TableName("parter_docking_info")
@TableName("partner_docking_info")
public class PartnerDockingInfo extends SuperModel {
    private static final long serialVersionUID=1L;
    private static final long serialVersionUID = 1L;
            /**
    * 合作商ID
    */
        private Long parterId;
            /**
    * 合作商名称
    */
        private String parterName;
            /**
    * 医院ID
    */
        private Long hospitalId;
            /**
    * 医院名称
    */
        private String hospitalName;
            /**
    * 科室ID
    */
        private Long departmentId;
            /**
    * 科室名称
    */
        private String departmentName;
            /**
    * 对接类型(1:影像版API,2:妇幼版API)
    */
        private Integer dockingType;
            /**
    * 对接版本
    */
        private String dockingVersion;
            /**
    * 对接状态(1:正常,2:暂停)
    */
        private Integer dockingStatus;
            /**
    * 服务器机器码
    */
        private String serverMachineCode;
            /**
    * 服务器软加密码
    */
        private String accessKey;
            /**
    * 操作人
    */
        private String operationName;
            /**
    * 操作时间
    */
        private Date operationTime;
            /**
    * 是否删除,1删除,0未删除
    */
        private Boolean isDel;
            /**
    * 状态,1启用,0停用
    */
        private Boolean enabled;
                            }
    /**
     * 合作商ID
     */
    @NotNull(message = "合作商唯一标识不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long partnerId;
    /**
     * 合作商名称
     */
    @NotEmpty(message = "合作商名称不能为空")
    private String partnerName;
    /**
     * 医院ID
     */
    @NotNull(message = "医院唯一标识不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long hospitalId;
    /**
     * 医院名称
     */
    @NotEmpty(message = "医院名称不能为空")
    private String hospitalName;
    /**
     * 科室ID
     */
    @NotNull(message = "科室唯一标识不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long departmentId;
    /**
     * 科室名称
     */
    @NotEmpty(message = "科室名称不能为空")
    private String departmentName;
    /**
     * 对接类型(1:影像版API,2:妇幼版API)
     */
    private Integer dockingType;
    /**
     * 对接版本
     */
    @NotEmpty(message = "对接版本不能为空")
    private String dockingVersion;
    /**
     * 对接状态(1:正常,2:暂停)
     */
    private Integer dockingStatus;
    /**
     * 服务器机器码
     */
    private String serverMachineCode;
    /**
     * 服务器软加密码
     */
    private String accessKey;
    /**
     * 操作人
     */
    @NotEmpty(message = "操作人不能为空")
    private String operationName;
    /**
     * 操作时间
     */
    private Date operationTime;
    /**
     * 是否删除,1删除,0未删除
     */
    private Boolean isDel;
    /**
     * 状态,1启用,0停用
     */
    private Boolean enabled;
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IPartnerDockingInfoService.java
@@ -29,5 +29,12 @@
    * @return PartnerDockingInfo对象
    */
    PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo);
    /**
     * 根据对接类型版本等信息,创建客户私有云数据库脚本
     * @param partnerDockingInfo
     * @return
     */
    String createSQL( PartnerDockingInfo partnerDockingInfo );
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IPartnerInfoService.java
@@ -1,9 +1,10 @@
package com.kidgrow.oprationcenter.service;
import com.kidgrow.oprationcenter.model.PartnerInfo;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
import com.kidgrow.oprationcenter.model.PartnerInfo;
import java.util.List;
import java.util.Map;
/**
@@ -29,5 +30,12 @@
    * @return PartnerInfo对象
    */
    PartnerInfo findByObject(PartnerInfo partnerInfo);
    /**
     * 根据名称查询合作商名称列表
     * @param partnerName
     * @return
     */
    List<PartnerInfo> findByName(String partnerName);
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java
@@ -1,15 +1,33 @@
package com.kidgrow.oprationcenter.service.impl;
import cn.hutool.core.date.DateTime;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.oprationcenter.mapper.PartnerDockingInfoMapper;
import com.kidgrow.oprationcenter.model.PartnerDockingInfo;
import com.kidgrow.oprationcenter.model.PartnerInfo;
import com.kidgrow.oprationcenter.service.IPartnerDockingInfoService;
import com.kidgrow.oprationcenter.service.IPartnerInfoService;
import com.kidgrow.usercenter.feign.SysDepartmentService;
import com.kidgrow.usercenter.feign.SysDoctorService;
import com.kidgrow.usercenter.feign.SysHospitalService;
import com.kidgrow.usercenter.model.SysDoctor;
import com.kidgrow.usercenter.model.SysHospital;
import io.undertow.util.FileUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -24,6 +42,22 @@
@Slf4j
@Service
public class PartnerDockingInfoServiceImpl extends SuperServiceImpl<PartnerDockingInfoMapper, PartnerDockingInfo> implements IPartnerDockingInfoService {
    @Autowired
    ResourceLoader resourceLoader;
    @Autowired
    SysHospitalService sysHospitalService;
    @Autowired
    SysDepartmentService sysDepartmentService;
    @Autowired
    SysDoctorService sysDoctorService;
    @Autowired
    IPartnerInfoService partnerInfoService;
    /**
     * 列表
     * @param params
@@ -45,4 +79,188 @@
    public PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo){
        return baseMapper.findByObject(partnerDockingInfo);
    }
    /**
     * 根据对接类型版本等信息,创建客户私有云数据库脚本
     * @param partnerDockingInfo
     * @return
     */
    @Override
    public String createSQL( PartnerDockingInfo partnerDockingInfo ){
        // 模板SQL文
        String dbSql = "";
        // 医院信息SQL文
        String hospitalSQL = "";
        // 科室信息SQL文
        String departmentSQL = "";
        // 医生信息SQL文
        String doctorSQL = "";
        // 合作商信息SQL文
        String partnerSQL = "";
        // 服务器信息SQL文
        String serverSQL= "";
        InputStream fileImput =null;
        try {
            // 1、读取基础表结构SQL
            Resource resource = resourceLoader.getResource("classpath:template//imageServer_template.sql");
            fileImput = resource.getInputStream();  //new FileInputStream("./template/imageServer_template.sql");
            dbSql = FileUtils.readFile(fileImput);
            // 2、读取医院信息表Hospital_Info,插入SQL文中
            Map<String,Object> hospitalMap = new HashMap<>();
            hospitalMap.put("id",partnerDockingInfo.getHospitalId());
            ResultBody hospitalResult = sysHospitalService.findAllByMap(hospitalMap);
            if (hospitalResult.isOk()){
                String jsonData = JSONObject.toJSONString(hospitalResult.getData());
                List<SysHospital> hospitalLists= JSONObject.parseArray(jsonData,SysHospital.class);
                if (hospitalLists.size()> 0) {
                    SysHospital hospitalInfo = hospitalLists.get(0);
                    hospitalSQL = " INSERT INTO sys_hospital  VALUES (" +
                            hospitalInfo.getId() + ", " +
                            "'" + hospitalInfo.getHospitalName()+ "', " +
                            "'" + hospitalInfo.getHospitalShortName()+ "', " +
                            "'" + hospitalInfo.getHospitalCode()+ "', " +
                            "'" + hospitalInfo.getHospitalTypeId()+ "', " +
                            "'" + hospitalInfo.getHospitalTypeName()+ "', " +
                            "'" + hospitalInfo.getHospitalTel()+ "', " +
                            "'" + hospitalInfo.getHospitalProvince()+ "', " +
                            "'" + hospitalInfo.getHospitalCity()+ "', " +
                            "'" + hospitalInfo.getHospitalArea()+ "', " +
                            "'" + hospitalInfo.getAreaCode()+ "', " +
                            "'" + hospitalInfo.getHospitalLink()+ "', " +
                            "'" + hospitalInfo.getHospitalAdress()+ "', " +
                            "'" + hospitalInfo.getLatitude()+ "', " +
                            "'" + hospitalInfo.getLongitude()+ "', " +
                            "'" + hospitalInfo.getHospitalQualifiedId()+ "', " +
                            "'" + hospitalInfo.getHospitalQualifiedName()+ "', " +
                            "NULL," +
                            "NULL," +
                            "NULL," +
                            "'" + hospitalInfo.getHospitalAbout()+ "', " +
                            hospitalInfo.getHospitalState() + ", " +
                            hospitalInfo.getEnabled() + ", " +
                            hospitalInfo.getIsDel() + ", " +
                            hospitalInfo.getCreateUserId() + ", " +
                            "'" + hospitalInfo.getCreateUserName()+ "', " +
                            hospitalInfo.getUpdateUserId() + ", " +
                            "'" + hospitalInfo.getUpdateUserName()+ "', " +
                            "'" + hospitalInfo.getCreateTime()+ "', " +
                            "'" + hospitalInfo.getUpdateTime()+"' " +
                            ");\n\r";
                }
            }
            // 3、读取科室信息表Department_Info,生成SQL文
            departmentSQL = "INSERT INTO sys_department VALUES ("+
                    +partnerDockingInfo.getDepartmentId()+ ", "+
                    "'" + partnerDockingInfo.getDepartmentName() +"', " +
                    "0, 1, 0, '喜高科技', 0 , '喜高科技', " +
                    "'" + DateTime.now().toString() + "', " +
                    "'" + DateTime.now().toString() + "', " +
                    "6 " +
                    ");\n\r";
            // 4、读取医生信息表Doctor_Info,生成SQL文
            Map<String,Object> doctorMap = new HashMap<>();
            doctorMap.put("hospital_id",partnerDockingInfo.getHospitalId());
            doctorMap.put("department_id",partnerDockingInfo.getDepartmentId());
            doctorMap.put("is_admin_user",1);
            ResultBody doctorResult = sysDoctorService.getListByMap(doctorMap);
            if (doctorResult.isOk()) {
                String jsonData = JSONObject.toJSONString(doctorResult.getData());
                List<SysDoctor> doctorList = JSONObject.parseArray(jsonData, SysDoctor.class);
                if (doctorList.size() > 0) {
                    SysDoctor doctorInfo = doctorList.get(0);
                    doctorSQL = "INSERT INTO sys_doctor VALUES(" +
                            doctorInfo.getId() + ", " +
                            + doctorInfo.getHospitalId() + ", " +
                            "'" + doctorInfo.getHospitalName()+ "', " +
                            + doctorInfo.getDepartmentId() + ", " +
                            "'" + doctorInfo.getDepartmentName()+ "', " +
                            "'" + doctorInfo.getDoctorName()+ "', " +
                            "NULL, " +
                            "'" + doctorInfo.getDoctorCcie()+ "', " +
                            "'" + doctorInfo.getDoctorTel()+ "', " +
                            "'" + DigestUtils.md5DigestAsHex("123456".getBytes()).replace("-","") +"', " +
                            "'" + doctorInfo.getDoctorRankId()+ "', " +
                            "'" + doctorInfo.getDoctorRank()+ "', " +
                            "'" + doctorInfo.getDoctorOtherLink()+ "', " +
                            "'" + doctorInfo.getDoctorEmail()+ "', " +
                            "'" + doctorInfo.getDoctorAbout()+ "', " +
                            "0, " +
                            doctorInfo.getDoctorState()+ ", " +
                            doctorInfo.getDoctorType()+ ", " +
                            "0, 1, 0, '喜高科技', 0 , '喜高科技', " +
                            "'" + DateTime.now().toString() + "', " +
                            "'" + DateTime.now().toString() + "', " +
                            "1" +
                            ");\n\r";
                }
            }
            // 5、读取合作商信息表Partner_Info,生成SQL文
            PartnerInfo partnerInfo = partnerInfoService.getById(partnerDockingInfo.getPartnerId());
            if (partnerInfo!= null) {
                partnerSQL = "INSERT INTO partner_info VALUES (" +
                        partnerInfo.getId() + ", " +
                        "'" +partnerInfo.getPartnerName() + "', " +
                        + partnerInfo.getPartnerType() + ", " +
                        "'" +partnerInfo.getPartnerAddress() + "', " +
                        "'" +partnerInfo.getPartnerProvince() + "', " +
                        "'" +partnerInfo.getPartnerCity() + "', " +
                        "'" +partnerInfo.getPartnerArea() + "', " +
                        "'" +partnerInfo.getPartnerLinkMan() + "', " +
                        "'" +partnerInfo.getPartnerLinkTelephone() + "', " +
                        "'" +partnerInfo.getPartnerBussinessArea() + "', " +
                        "'" +partnerInfo.getPartnerIntroduce() + "', " +
                        "'" +partnerInfo.getPartnerUniqueCode() + "', " +
                        + partnerInfo.getCreateUserId() + ", " +
                        "'" +partnerInfo.getCreateUserName() + "', " +
                        "'" +partnerInfo.getCreateTime() + "', " +
                        + partnerInfo.getUpdateUserId() + ", " +
                        "'" +partnerInfo.getUpdateUserName() + "', " +
                        "'" +partnerInfo.getUpdateTime() + "'  " +
                        ");\n\r";
            }
            // 6、读取服务器信息表Server_Info,生成SQL文
            if ((partnerDockingInfo.getAccessKey() != null) && (!partnerDockingInfo.getAccessKey().isEmpty())) {
                serverSQL = "INSERT INTO server_info VALUES(" +
                        partnerDockingInfo.getId() + ", " +
                        partnerDockingInfo.getPartnerId() + ", " +
                        partnerDockingInfo.getHospitalId() + ", " +
                        partnerDockingInfo.getDepartmentId() + ", " +
                        "NULL, NULL, NULL, NULL, " +
                        "'" + partnerDockingInfo.getServerMachineCode() + "', " +
                        "NULL, NULL, " +
                        "'" + partnerDockingInfo.getAccessKey() + "', " +
                        "0, 1, " +
                        partnerDockingInfo.getCreateUserId() + ", " +
                        "'" + partnerDockingInfo.getCreateUserName() + "', " +
                        "'" + partnerDockingInfo.getCreateTime() + "', " +
                        partnerDockingInfo.getUpdateUserId() + ", " +
                        "'" + partnerDockingInfo.getUpdateUserName() + "', " +
                        "'" + partnerDockingInfo.getUpdateTime() + "', " +
                        ");\n\r";
            }
            // 7、所有SQL文合并入基本的SQL中
            dbSql += hospitalSQL + departmentSQL + doctorSQL + partnerSQL +serverSQL;
        } catch (Exception e){
            e.printStackTrace();
        } finally {
            try {
                fileImput.close();
            } catch (IOException e){
                e.printStackTrace();
            }
        }
        return  dbSql;
    };
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerInfoServiceImpl.java
@@ -1,18 +1,17 @@
package com.kidgrow.oprationcenter.service.impl;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.oprationcenter.mapper.PartnerInfoMapper;
import com.kidgrow.oprationcenter.model.PartnerInfo;
import com.kidgrow.oprationcenter.service.IPartnerInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections4.MapUtils;
import lombok.extern.slf4j.Slf4j;
import com.kidgrow.oprationcenter.model.PartnerInfo;
import com.kidgrow.oprationcenter.mapper.PartnerInfoMapper;
import com.kidgrow.oprationcenter.service.IPartnerInfoService;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -46,4 +45,14 @@
    public PartnerInfo findByObject(PartnerInfo partnerInfo){
        return baseMapper.findByObject(partnerInfo);
    }
    /**
     * 根据名称查询合作商名称列表
     * @param partnerName
     * @return
     */
    @Override
    public List<PartnerInfo> findByName(String partnerName) {
        return baseMapper.findByName(partnerName);
    }
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/PartnerDockingInfoMapper.xml
@@ -15,17 +15,17 @@
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
            <if test="p.parterId != null and p.parterId !=''">
                and parter_id = #{p.parterId}
            <if test="p.partnerId != null and p.partnerId !=''">
                and partner_id = #{p.partnerId}
            </if>
            <if test="p.parterName != null and p.parterName !=''">
                and parter_name = #{p.parterName}
            <if test="p.partnerName != null and p.partnerName !=''">
                and partner_name like CONCAT('%',#{p.partnerName},'%')
            </if>
            <if test="p.hospitalId != null and p.hospitalId !=''">
                and hospital_id = #{p.hospitalId}
            </if>
            <if test="p.hospitalName != null and p.hospitalName !=''">
                and hospital_name = #{p.hospitalName}
                and hospital_name like CONCAT('%', #{p.hospitalName},'%')
            </if>
            <if test="p.departmentId != null and p.departmentId !=''">
                and department_id = #{p.departmentId}
@@ -85,7 +85,7 @@
    <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.PartnerDockingInfo">
        select
        <include refid="Column_List"/>
        from parter_docking_info
        from partner_docking_info
        <include refid="where"/>
        order by id desc
        limit 1
@@ -95,7 +95,7 @@
    <select id="findList" resultType="com.kidgrow.oprationcenter.model.PartnerDockingInfo">
        select
        <include refid="Column_List"/>
        from parter_docking_info
        from partner_docking_info
        <include refid="where"/>
        order by id desc
    </select>
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/PartnerInfoMapper.xml
@@ -12,72 +12,73 @@
        <where>
            <!--查询条件自行添加-->
            is_del=0
                                    <if test="p.id != null and p.id !=''">
                and  id =  #{p.id}
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
                                                <if test="p.partnerName != null and p.partnerName !=''">
                and  partner_name =  #{p.partnerName}
            <if test="p.partnerName != null and p.partnerName !=''">
                and partner_name like CONCAT('%', #{p.partnerName},'%')
            </if>
                                                <if test="p.partnerType != null and p.partnerType !=''">
                and  partner_type =  #{p.partnerType}
            <if test="p.partnerType != null and p.partnerType !=''">
                and partner_type = #{p.partnerType}
            </if>
                                                <if test="p.partnerAddress != null and p.partnerAddress !=''">
                and  partner_address =  #{p.partnerAddress}
            <if test="p.partnerAddress != null and p.partnerAddress !=''">
                and partner_address = #{p.partnerAddress}
            </if>
                                                <if test="p.partnerProvince != null and p.partnerProvince !=''">
                and  partner_province =  #{p.partnerProvince}
            <if test="p.partnerProvince != null and p.partnerProvince !=''">
                and partner_province = #{p.partnerProvince}
            </if>
                                                <if test="p.partnerCity != null and p.partnerCity !=''">
                and  partner_city =  #{p.partnerCity}
            <if test="p.partnerCity != null and p.partnerCity !=''">
                and partner_city = #{p.partnerCity}
            </if>
                                                <if test="p.partnerArea != null and p.partnerArea !=''">
                and  partner_area =  #{p.partnerArea}
            <if test="p.partnerArea != null and p.partnerArea !=''">
                and partner_area = #{p.partnerArea}
            </if>
                                                <if test="p.partnerLinkMan != null and p.partnerLinkMan !=''">
                and  partner_link_man =  #{p.partnerLinkMan}
            <if test="p.partnerLinkMan != null and p.partnerLinkMan !=''">
                and partner_link_man = #{p.partnerLinkMan}
            </if>
                                                <if test="p.partnerLinkTelephone != null and p.partnerLinkTelephone !=''">
                and  partner_link_telephone =  #{p.partnerLinkTelephone}
            <if test="p.partnerLinkTelephone != null and p.partnerLinkTelephone !=''">
                and partner_link_telephone = #{p.partnerLinkTelephone}
            </if>
                                                <if test="p.partnerBussinessArea != null and p.partnerBussinessArea !=''">
                and  partner_bussiness_area =  #{p.partnerBussinessArea}
            <if test="p.partnerBussinessArea != null and p.partnerBussinessArea !=''">
                and partner_bussiness_area = #{p.partnerBussinessArea}
            </if>
                                                <if test="p.partnerIntroduce != null and p.partnerIntroduce !=''">
                and  partner_introduce =  #{p.partnerIntroduce}
            <if test="p.partnerIntroduce != null and p.partnerIntroduce !=''">
                and partner_introduce = #{p.partnerIntroduce}
            </if>
                                                <if test="p.partnerUniqueCode != null and p.partnerUniqueCode !=''">
                and  partner_unique_code =  #{p.partnerUniqueCode}
            <if test="p.partnerUniqueCode != null and p.partnerUniqueCode !=''">
                and partner_unique_code = #{p.partnerUniqueCode}
            </if>
                                                <if test="p.isDel != null and p.isDel !=''">
                and  is_del =  #{p.isDel}
            <if test="p.isDel != null and p.isDel !=''">
                and is_del = #{p.isDel}
            </if>
                                                <if test="p.enabled != null and p.enabled !=''">
                and  enabled =  #{p.enabled}
            <if test="p.enabled != null and p.enabled !=''">
                and enabled = #{p.enabled}
            </if>
                                                <if test="p.createUserId != null and p.createUserId !=''">
                and  create_user_id =  #{p.createUserId}
            <if test="p.createUserId != null and p.createUserId !=''">
                and create_user_id = #{p.createUserId}
            </if>
                                                <if test="p.createUserName != null and p.createUserName !=''">
                and  create_user_name =  #{p.createUserName}
            <if test="p.createUserName != null and p.createUserName !=''">
                and create_user_name = #{p.createUserName}
            </if>
                                                <if test="p.createTime != null and p.createTime !=''">
                and  create_time =  #{p.createTime}
            <if test="p.createTime != null and p.createTime !=''">
                and create_time = #{p.createTime}
            </if>
                                                <if test="p.updateUserId != null and p.updateUserId !=''">
                and  update_user_id =  #{p.updateUserId}
            <if test="p.updateUserId != null and p.updateUserId !=''">
                and update_user_id = #{p.updateUserId}
            </if>
                                                <if test="p.updateUserName != null and p.updateUserName !=''">
                and  update_user_name =  #{p.updateUserName}
            <if test="p.updateUserName != null and p.updateUserName !=''">
                and update_user_name = #{p.updateUserName}
            </if>
                                                <if test="p.updateTime != null and p.updateTime !=''">
                and  update_time =  #{p.updateTime}
            <if test="p.updateTime != null and p.updateTime !=''">
                and update_time = #{p.updateTime}
            </if>
                                </where>
        </where>
    </sql>
    <!--定义根据-PartnerInfo当作查询条件返回对象-->
    <select id="findByObject"  resultType="com.kidgrow.oprationcenter.model.PartnerInfo">
        select <include refid="Column_List"/>
    <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.PartnerInfo">
        select
        <include refid="Column_List"/>
        from partner_info
        <include refid="where"/>
        order by id desc
@@ -86,9 +87,19 @@
    <!--定义根据-PartnerInfo当作查询条件返回对象集合-->
    <select id="findList" resultType="com.kidgrow.oprationcenter.model.PartnerInfo">
        select <include refid="Column_List"/>
        select
        <include refid="Column_List"/>
        from partner_info
        <include refid="where"/>
        order by id desc
    </select>
    <!--定义根据-PartnerName当作查询条件返回对象集合-->
    <select id="findByName" resultType="com.kidgrow.oprationcenter.model.PartnerInfo">
        select id,
        partner_name
        from partner_info
        where is_del=0 and enabled=1 and partner_name LIKE concat('%',#{partnerName},'%')
        order by partner_name desc,id desc
    </select>
</mapper>
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql
New file
@@ -0,0 +1,557 @@
CREATE TABLE `bonect`  (
  `UUID` char(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '唯一标识',
  `OriginName` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '光片名称',
  `Sex` bit(1) NULL DEFAULT NULL COMMENT '性别。0:男,1:女',
  `Seged` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否分割。0:未分割,1:已分割',
  `AiStatus` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'AI分析结果。0:未分析,-1:无效光片,21:分析完成',
  `CreateTime` timestamp(0) NOT NULL DEFAULT current_timestamp(0) COMMENT '创建时间',
  `ReturnTime` timestamp(0) NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '结果返回时间',
  `Returned` bit(1) NOT NULL DEFAULT b'0' COMMENT '结果是否返回。0:未返回,1:已返回',
  `CompleteTime` timestamp(0) NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'AI分析完成时间',
  `RGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `RGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `RGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `RGPT1` float NOT NULL DEFAULT 0,
  `RGPT2` float NOT NULL DEFAULT 0,
  `RGPT3` float NOT NULL DEFAULT 0,
  `CGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `CGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `CGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `CGPT1` float NOT NULL DEFAULT 0,
  `CGPT2` float NOT NULL DEFAULT 0,
  `CGPT3` float NOT NULL DEFAULT 0,
  `ZGIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIPT1` float NOT NULL DEFAULT 0,
  `ZGIPT2` float NOT NULL DEFAULT 0,
  `ZGIPT3` float NOT NULL DEFAULT 0,
  `ZGIIIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIIIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIIIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGIIIPT1` float NOT NULL DEFAULT 0,
  `ZGIIIPT2` float NOT NULL DEFAULT 0,
  `ZGIIIPT3` float NOT NULL DEFAULT 0,
  `ZGVT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGVT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGVT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGVPT1` float NOT NULL DEFAULT 0,
  `ZGVPT2` float NOT NULL DEFAULT 0,
  `ZGVPT3` float NOT NULL DEFAULT 0,
  `JJIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIPT1` float NOT NULL DEFAULT 0,
  `JJIPT2` float NOT NULL DEFAULT 0,
  `JJIPT3` float NOT NULL DEFAULT 0,
  `JJIIIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIIIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIIIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJIIIPT1` float NOT NULL DEFAULT 0,
  `JJIIIPT2` float NOT NULL DEFAULT 0,
  `JJIIIPT3` float NOT NULL DEFAULT 0,
  `JJVT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJVT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJVT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `JJVPT1` float NOT NULL DEFAULT 0,
  `JJVPT2` float NOT NULL DEFAULT 0,
  `JJVPT3` float NOT NULL DEFAULT 0,
  `ZJIIIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJIIIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJIIIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJIIIPT1` float NOT NULL DEFAULT 0,
  `ZJIIIPT2` float NOT NULL DEFAULT 0,
  `ZJIIIPT3` float NOT NULL DEFAULT 0,
  `ZJIIIBY` float NOT NULL DEFAULT 0,
  `ZJVT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJVT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJVT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZJVPT1` float NOT NULL DEFAULT 0,
  `ZJVPT2` float NOT NULL DEFAULT 0,
  `ZJVPT3` float NOT NULL DEFAULT 0,
  `ZJVBY` float NOT NULL DEFAULT 0,
  `YJIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIPT1` float NOT NULL DEFAULT 0,
  `YJIPT2` float NOT NULL DEFAULT 0,
  `YJIPT3` float NOT NULL DEFAULT 0,
  `YJIBY` float NOT NULL DEFAULT 0,
  `YJIIIT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIIIT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIIIT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJIIIPT1` float NOT NULL DEFAULT 0,
  `YJIIIPT2` float NOT NULL DEFAULT 0,
  `YJIIIPT3` float NOT NULL DEFAULT 0,
  `YJIIIBY` float NOT NULL DEFAULT 0,
  `YJVT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJVT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJVT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YJVPT1` float NOT NULL DEFAULT 0,
  `YJVPT2` float NOT NULL DEFAULT 0,
  `YJVPT3` float NOT NULL DEFAULT 0,
  `YJVBY` float NOT NULL DEFAULT 0,
  `TZGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `TZGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `TZGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `TZGPT1` float NOT NULL DEFAULT 0,
  `TZGPT2` float NOT NULL DEFAULT 0,
  `TZGPT3` float NOT NULL DEFAULT 0,
  `GGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `GGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `GGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `GGPT1` float NOT NULL DEFAULT 0,
  `GGPT2` float NOT NULL DEFAULT 0,
  `GGPT3` float NOT NULL DEFAULT 0,
  `SJGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `SJGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `SJGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `SJGPT1` float NOT NULL DEFAULT 0,
  `SJGPT2` float NOT NULL DEFAULT 0,
  `SJGPT3` float NOT NULL DEFAULT 0,
  `YGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `YGPT1` float NOT NULL DEFAULT 0,
  `YGPT2` float NOT NULL DEFAULT 0,
  `YGPT3` float NOT NULL DEFAULT 0,
  `ZGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZGPT1` float NOT NULL DEFAULT 0,
  `ZGPT2` float NOT NULL DEFAULT 0,
  `ZGPT3` float NOT NULL DEFAULT 0,
  `DDJGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `DDJGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `DDJGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `DDJGPT1` float NOT NULL DEFAULT 0,
  `DDJGPT2` float NOT NULL DEFAULT 0,
  `DDJGPT3` float NOT NULL DEFAULT 0,
  `XDJGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `XDJGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `XDJGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `XDJGPT1` float NOT NULL DEFAULT 0,
  `XDJGPT2` float NOT NULL DEFAULT 0,
  `XDJGPT3` float NOT NULL DEFAULT 0,
  `ZIGT1` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZIGT2` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZIGT3` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '-1',
  `ZIGPT1` float NOT NULL DEFAULT 0,
  `ZIGPT2` float NOT NULL DEFAULT 0,
  `ZIGPT3` float NOT NULL DEFAULT 0,
  `gpBoneAge` float NOT NULL DEFAULT -1 COMMENT 'GP骨龄',
  `Message` tinyint(4) NOT NULL DEFAULT 0 COMMENT '失败原因',
  `Source` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '来源',
  PRIMARY KEY (`UUID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'AI骨等级分析记录表' ROW_FORMAT = DYNAMIC;
CREATE TABLE `child_info`  (
  `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '孩子唯一标识',
  `hospital_id` bigint(20) NULL COMMENT '医院的唯一标识',
  `deparment_id` bigint(20) NULL COMMENT '医院科室的唯一标识',
  `doctor_id` bigint(20) NULL COMMENT '医生的唯一标识',
  `name` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '孩子姓名',
  `sex` tinyint(1) NOT NULL COMMENT '孩子性别,0表示男孩,1表示女孩',
  `birthday` date NOT NULL COMMENT '孩子出生日期',
  `identity_card_number` varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '孩子身份证号',
  `diagnose_count` int(6) NOT NULL COMMENT '孩子H端诊断次数(只加不减)',
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '家庭地址',
  `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '联系电话',
  `is_del` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:0:正常 1:删除',
  `create_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_user_id` bigint(20) NULL COMMENT '创建账号的唯一标识',
  `create_user_name` varchar(50) NULL COMMENT '创建者名称',
  `update_time` datetime NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `update_user_id` bigint(20) NULL COMMENT '更新数据的账号的唯一标识',
  `update_user_name` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新数据的用户的姓名',
  PRIMARY KEY (`id`),
  UNIQUE INDEX `pk_id`(`id`) USING BTREE COMMENT '主键唯一索引',
  INDEX `idx_name_birthday`(`child_name`, `child_birthday`) USING BTREE COMMENT '孩子名字和出生日的普通索引'
) COMMENT = '孩子档案信息表';
CREATE TABLE `diagnose_record`  (
  `id` varchar(36) NOT NULL COMMENT '诊断记录唯一ID',
  `hospital_id` bigint(20) NULL COMMENT '医院唯一ID',
  `department_id` bigint(20) NULL COMMENT '科室唯一ID',
  `doctor_id` bigint(20) NULL COMMENT '医生唯一ID',
  `child_id` varchar(36) NULL COMMENT '儿童档案ID',
  `diagnose_time` date NULL COMMENT '诊断日期',
  `life_age` decimal(4, 2) NULL COMMENT '诊断时的生活年龄',
  `xray_name` varchar(200) NULL COMMENT '光片名称',
  `ai_id` varchar(36) NULL COMMENT 'AI业务处理ID',
  `evaluation_status` tinyint(2) NULL DEFAULT 0 COMMENT '评价状态(1:提交AI分析;2:AI分析失败;3:AI分析成功;4:提交高级分析;5:高级分析失败:6:高级分析成功;7:自主分析;8:报告采用)',
  `generate_report` tinyint(1) NULL DEFAULT 0 COMMENT '是否生成报告(0:未生成;1:已生成)',
  `is_del` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除(1:删除,0:未删除)',
  `enable` bit(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0:停用;1:启用)',
  `create_user_id` bigint(20) NULL COMMENT '创建者ID',
  `create_user_name` varchar(50) NULL COMMENT '创建者账号',
  `create_time` datetime(0) NULL DEFAULT now() ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_user_id` bigint(20) NULL COMMENT '更新者ID',
  `update_user_name` varchar(50) NULL COMMENT '更新者账号',
  `update_time` datetime(0) NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`)
) COMMENT = '诊断记录表';
CREATE TABLE `evaluation_detail`  (
  `id` bigint(20) NOT NULL COMMENT '骨龄评价序号',
  `record_id` bigint(20) NOT NULL COMMENT '评价记录ID',
  `diagnostic_id` varchar(36) NOT NULL COMMENT '诊断记录ID',
  `xray_name` varchar(255) NULL COMMENT '光片地址与名称',
  `evaluation_type` tinyint(1) NULL DEFAULT 1 COMMENT '评价方式(1:AI;2:自读;3:高级)',
  `rus_evaluation_method` tinyint(1) NULL COMMENT '评价方法(1:RUS_CHN;2:TW3-C RUS;3:TW3 RUS;4:G-P)',
  `rus_bone_age` decimal(4, 2) NULL DEFAULT 0 COMMENT 'RUS骨龄',
  `rus_bone_age_twelve` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '12进制骨龄',
  `rg_level` varchar(5) NULL COMMENT '桡骨等级',
  `rg_credible` bit(1) NULL DEFAULT 1 COMMENT '桡骨等级是否可信(1:可信;0:不可信)',
  `cg_level` varchar(5) NULL COMMENT '尺骨等级',
  `cg_credible` bit(1) NULL DEFAULT 1 COMMENT '尺骨等级是否可信(1:可信;0:不可信)',
  `zgi_level` varchar(5) NULL COMMENT '掌骨I等级',
  `zgi_credible` bit(1) NULL DEFAULT 1 COMMENT '掌骨I等级是否可信(1:可信;0:不可信)',
  `zgiii_level` varchar(5) NULL COMMENT '掌骨III等级',
  `zgiii_credible` bit(1) NULL DEFAULT 1 COMMENT '掌骨III等级是否可信(1:可信;0:不可信)',
  `zgv_level` varchar(5) NULL COMMENT '掌骨V等级',
  `zgv_credible` bit(1) NULL DEFAULT 1 COMMENT '掌骨V等级是否可信(1:可信;0:不可信)',
  `jji_level` varchar(5) NULL COMMENT '近节指骨I等级',
  `jji_credible` bit(1) NULL DEFAULT 1 COMMENT '近节指骨I等级是否可信(1:可信;0:不可信)',
  `jjiii_level` varchar(5) NULL COMMENT '近节指骨III等级',
  `jjiii_credible` bit(1) NULL DEFAULT 1 COMMENT '近节指骨III等级是否可信(1:可信;0:不可信)',
  `jjv_level` varchar(5) NULL COMMENT '近节指骨V等级',
  `jjv_credible` bit(1) NULL DEFAULT 1 COMMENT '近节指骨V等级是否可信(1:可信;0:不可信)',
  `zjiii_level` varchar(5) NULL COMMENT '中节指骨III等级',
  `zjiii_credible` bit(1) NULL DEFAULT 1 COMMENT '中节指骨III等级是否可信(1:可信;0:不可信)',
  `zjiii_mutation_rate` float NULL COMMENT '中节指骨III变异概率',
  `zjv_level` varchar(5) NULL COMMENT '中节指骨V等级',
  `zjv_credible` bit(1) NULL DEFAULT 1 COMMENT '中节指骨V等级是否可信(1:可信;0:不可信)',
  `zjv_mutation_rate` float NULL COMMENT '中节指骨V变异概率',
  `yji_level` varchar(5) NULL COMMENT '远节指骨I等级',
  `yji_credible` bit(1) NULL DEFAULT 1 COMMENT '远节指骨I等级是否可信(1:可信;0:不可信)',
  `yji_mutation_rate` float NULL COMMENT '远节指骨I变异概率',
  `yjiii_level` varchar(5) NULL COMMENT '远节指骨III等级',
  `yjiii_credible` bit(1) NULL DEFAULT 1 COMMENT '远节指骨III等级是否可信(1:可信;0:不可信)',
  `yjiii_mutation_rate` float NULL COMMENT '远节指骨III变异概率',
  `yjv_level` varchar(5) NULL COMMENT '远节指骨V等级',
  `yjv_credible` bit(1) NULL DEFAULT 1 COMMENT '远节指骨V等级是否可信(1:可信;0:不可信)',
  `yjv_mutation_rate` float NULL COMMENT '远节指骨V变异概率',
  `carpal_evaluation_method` tinyint(1) NULL COMMENT 'Carpal骨龄评价方法(1:TW3-C Carpal;2:TW3 Carpal)',
  `carpal_bone_age` decimal(4, 2) NULL DEFAULT 0 COMMENT '腕骨骨龄',
  `tzg_level` varchar(5) NULL COMMENT '头状骨等级',
  `tzg_credible` bit(1) NULL DEFAULT 1 COMMENT '头状骨等级可信度(1:可信;0:不可信)',
  `gg_level` varchar(5) NULL COMMENT '钩骨等级',
  `gg_credible` bit(1) NULL DEFAULT 1 COMMENT '钩骨等级可信度(1:可信;0:不可信)',
  `sjg_level` varchar(5) NULL COMMENT '三角骨等级',
  `sjg_credible` bit(1) NULL DEFAULT 1 COMMENT '三角骨等级可信度(1:可信;0:不可信)',
  `yg_level` varchar(5) NULL COMMENT '月骨等级',
  `yg_credible` bit(1) NULL DEFAULT 1 COMMENT '月骨等级可信度(1:可信;0:不可信)',
  `zg_level` varchar(5) NULL COMMENT '舟骨等级',
  `zg_credible` bit(1) NULL DEFAULT 1 COMMENT '舟骨等级可信度(1:可信;0:不可信)',
  `ddjg_level` varchar(5) NULL COMMENT '大多角骨等级',
  `ddjg_credible` bit(1) NULL DEFAULT 1 COMMENT '大多角骨等级可信度(1:可信;0:不可信)',
  `xdjg_level` varchar(5) NULL COMMENT '小多角骨等级',
  `xdjg_credible` bit(1) NULL DEFAULT 1 COMMENT '小多角骨骨等级可信度(1:可信;0:不可信)',
  `zig_level` varchar(5) NULL COMMENT '籽骨等级',
  `image_finding` varchar(1000) NULL COMMENT '影像表现',
  `image_impression` varchar(1000) NULL COMMENT '影像印象',
  `is_del` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除;1:已删除)',
  `enable` bit(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0:停用;1:启用)',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建者ID',
  `create_user_name` varchar(50) NOT NULL COMMENT '创建者账号',
  `create_time` datetime NOT NULL DEFAULT now() ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_user_id` bigint(20) NULL COMMENT '更新者ID',
  `update_user_name` varchar(50) NULL COMMENT '更新者账号',
  `update_time` datetime NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  INDEX(`record_id`, `diagnostic_id`)
) COMMENT = '骨龄评价记录明细表';
CREATE TABLE `evaluation_record`  (
  `id` bigint(20) NOT NULL COMMENT '骨龄评价序号',
  `hospital_id` bigint(20) NULL COMMENT '医院ID',
  `department_id` bigint(20) NULL COMMENT '科室ID',
  `doctor_id` bigint(20) NULL COMMENT '医生ID',
  `child_id` varchar(36) NOT NULL COMMENT '儿童档案ID',
  `diagnostic_id` varchar(36) NOT NULL COMMENT '诊断记录ID',
  `xray_name` varchar(255) NULL COMMENT '光片地址与名称',
  `xray_upload_type` tinyint(1) NULL DEFAULT 1 COMMENT 'X光片上传方式(1:web端;2:移动端;3:Pacs)',
  `evaluation_status` tinyint(2) NULL DEFAULT 0 COMMENT '评价状态(1:提交AI分析;2:AI分析失败;3:AI分析成功;4:提交高级分析;5:高级分析失败:6:高级分析成功;7:自主分析;8:报告采用)',
  `operation_time` datetime NULL COMMENT '高级读片时间',
  `operation_user_name` varchar(50) NULL COMMENT '高级读片员姓名',
  `is_del` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除;1:已删除)',
  `enable` bit(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0:停用;1:启用)',
  `create_user_id` bigint(20) NULL COMMENT '创建者ID',
  `create_user_name` varchar(50) NULL COMMENT '创建者账号',
  `create_time` datetime(0) NULL DEFAULT now() ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_user_id` bigint(20) NULL COMMENT '更新者ID',
  `update_user_name` varchar(50) NULL COMMENT '更新者账号',
  `update_time` datetime(0) NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`)
) COMMENT = '骨龄评价记录表';
CREATE TABLE `partner_info`  (
  `id` bigint(20) NOT NULL COMMENT 'ID',
  `partner_name` varchar(50) NULL COMMENT '合作商名称',
  `partner_type` tinyint(1) NULL COMMENT '合作商类型(1:区域经销商;2:设备供应商;3:系统集成商;4:行业代理商;5:个人)',
  `partner_address` varchar(100) NULL COMMENT '合作商地址',
  `partner_province` varchar(50) NULL COMMENT '合作商所在省',
  `partner_city` varchar(50) NULL COMMENT '合作商所在市',
  `partner_area` varchar(50) NULL COMMENT '合作商所在区县',
  `partner_link_man` varchar(50) NULL COMMENT '合作商联系人',
  `partner_link_telephone` varchar(50) NULL COMMENT '合作商联系电话',
  `partner_bussiness_area` varchar(300) NULL COMMENT '合作商合作区域',
  `partner_introduce` varchar(1000) NULL COMMENT '合作商简介',
  `partner_unique_code` varchar(100) NULL COMMENT '合作商唯一标识码',
  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用 ',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) COMMENT = '合作商信息表';
CREATE TABLE `product_order`  (
  `id` bigint(20) NOT NULL COMMENT '充值记录ID',
  `hospital_id` bigint(20) NOT NULL COMMENT '医院标识id',
  `hospital_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '医院名称',
  `department_id` bigint(20) NOT NULL COMMENT '科室ID',
  `department_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '科室名称',
  `contract_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '合同编号',
  `contract_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '合同名称',
  `contract_begin_time` datetime(0) NULL DEFAULT NULL COMMENT '合同开始时间',
  `contract_end_time` datetime(0) NULL DEFAULT NULL COMMENT '合同结束时间',
  `contract_time` datetime(0) NULL DEFAULT NULL COMMENT '合同签订日期',
  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
  `create_user_org_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者的部门',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_sumption_other`(`hospital_id`, `department_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '产品的充值记录-订单' ROW_FORMAT = DYNAMIC;
CREATE TABLE `product_order_detail`  (
  `id` bigint(20) NOT NULL COMMENT '充值订单明细ID',
  `order_id` bigint(20) NOT NULL COMMENT '对应product_order表中的id',
  `pro_id` bigint(20) NOT NULL COMMENT '产品/明细ID',
  `pro_type` tinyint(1) NOT NULL COMMENT '产品类型0试用1正式',
  `pro_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品/明细名称',
  `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是',
  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `ailight_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量',
  `record_count` int(6) NOT NULL COMMENT '报告量',
  `pro_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间',
  `pro_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
  `create_user_org_code` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '创建者的部门',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_sumption_other`(`pro_id`, `order_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '账户明细' ROW_FORMAT = DYNAMIC;
CREATE TABLE `product_order_record`  (
  `id` bigint(20) NOT NULL COMMENT '充值订单明细ID',
  `order_id` bigint(20) NOT NULL COMMENT '对应product_order表中的id',
  `pro_id` bigint(20) NOT NULL COMMENT '产品/明细ID',
  `pro_type` tinyint(1) NOT NULL COMMENT '产品类型0试用1正式',
  `pro_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品/明细名称',
  `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是',
  `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `ailight_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量',
  `record_count` int(6) NOT NULL COMMENT '报告量',
  `pro_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间',
  `pro_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `tenant_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '租户字段',
  `create_user_org_code` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '创建者的部门',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_sumption_other`(`pro_id`, `order_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci COMMENT = '产品/明显的充值记录' ROW_FORMAT = DYNAMIC;
CREATE TABLE `report_content`  (
  `id` bigint(20) NOT NULL COMMENT '唯一ID',
  `hospital_id` bigint(20) NULL COMMENT '医院ID',
  `hospital_name` varchar(50) NULL COMMENT '医院名称',
  `department_id` bigint(20) NULL COMMENT '科室ID',
  `department_name` varchar(50) NULL COMMENT '科室名称',
  `doctor_id` bigint(20) NULL COMMENT '医生ID',
  `doctor_name` varchar(20) NULL COMMENT '医生姓名',
  `child_id` varchar(36) NULL COMMENT '儿童档案ID',
  `child_name` varchar(20) NULL COMMENT '儿童姓名',
  `child_sex` tinyint(1) NULL COMMENT '儿童性别(0:男;1:女)',
  `child_birthday` date NULL COMMENT '儿童出生日期',
  `image_name` varchar(255) NULL COMMENT '光片名称',
  `diagnose_id` varchar(32) NULL COMMENT '诊断记录ID',
  `report_type` tinyint(1) NULL COMMENT '1:影像检验报告\r\n2:生长发育报告',
  `report_name` varchar(20) NULL COMMENT '报告名称',
  `clinic_number` varchar(20) NULL COMMENT '门诊号',
  `bed_number` varchar(20) NULL COMMENT '床号',
  `study_number` varchar(20) NULL COMMENT '检查单号',
  `study_date` date NULL COMMENT '检查日期',
  `life_age` decimal(4, 2) NULL COMMENT '儿童生活年龄',
  `body_part_examined` varchar(50) NULL COMMENT '检查部位',
  `rus_evaluation_method` varchar(20) NULL COMMENT '掌指骨评价方法',
  `rus_bone_age` decimal(4, 2) NULL COMMENT '掌指骨骨龄',
  `rus_bone_age_twelve` varchar(50) NULL COMMENT '十二进制掌指骨骨龄',
  `rus_bone_age_percentile` varchar(8) NULL COMMENT '掌指骨骨龄百分位',
  `rg_level` varchar(5) NULL COMMENT '桡骨等级',
  `cg_level` varchar(5) NULL COMMENT '尺骨等级',
  `zgi_level` varchar(5) NULL COMMENT '掌骨I等级',
  `zgiii_level` varchar(5) NULL COMMENT '掌骨III等级',
  `zgv_level` varchar(5) NULL COMMENT '掌骨V等级',
  `jji_level` varchar(5) NULL COMMENT '近节指骨I等级',
  `jjiii_level` varchar(5) NULL COMMENT '近节指骨III等级',
  `jjv_level` varchar(5) NULL COMMENT '近节指骨V等级',
  `zjiii_level` varchar(5) NULL COMMENT '中节指骨III等级',
  `zjv_level` varchar(5) NULL COMMENT '中节指骨V等级',
  `yji_level` varchar(5) NULL COMMENT '远节指骨I等级',
  `yjiii_level` varchar(5) NULL COMMENT '远节指骨III等级',
  `yjv_level` varchar(5) NULL COMMENT '远节指骨V等级',
  `carpal_evaluation_method` varchar(20) NULL COMMENT '腕骨评价方法',
  `carpal_bone_age` decimal(4, 2) NULL COMMENT '腕骨骨龄',
  `carpal_bone_age_percentile` varchar(8) NULL COMMENT '腕骨骨龄百分位',
  `rus_age_resuce_capal_age_sds` varchar(8) NULL COMMENT '掌指骨骨龄减腕骨骨龄SDS',
  `tzg_level` varchar(5) NULL COMMENT '头状骨等级',
  `gg_level` varchar(5) NULL COMMENT '钩骨等级',
  `sjg_level` varchar(5) NULL COMMENT '三角骨等级',
  `yg_level` varchar(5) NULL COMMENT '月骨等级',
  `zg_level` varchar(5) NULL COMMENT '舟骨等级',
  `ddjg_level` varchar(5) NULL COMMENT '大多角骨等级',
  `xdjg_level` varchar(5) NULL COMMENT '小多角骨等级',
  `image_finding` varchar(1000) NULL COMMENT '影像表现',
  `image_impression` varchar(1000) NULL COMMENT '影像印象',
  `is_del` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除;1:已删除)',
  `enable` bit(1) NOT NULL DEFAULT 1 COMMENT '是否启用(0:停用;1:启用)',
  `create_user_id` bigint(20) NULL COMMENT '创建者ID',
  `create_user_name` varchar(50) NULL COMMENT '创建者账号',
  `create_time` datetime(0) NULL DEFAULT now() ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  `update_user_id` bigint(20) NULL COMMENT '更新者ID',
  `update_user_name` varchar(50) NULL COMMENT '更新者账号',
  `update_time` datetime(0) NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  PRIMARY KEY (`id`)
) COMMENT = '报告内容表';
CREATE TABLE `server_Info`  (
  `id` bigint(20) NOT NULL COMMENT 'ID',
  `partner_id` bigint(20) NULL COMMENT '合作商ID',
  `hospital_id` bigint(20) NULL COMMENT '医院ID',
  `department_id` bigint(20) NULL COMMENT '科室ID',
  `operation_system` varchar(50) NULL COMMENT '操作系统类型及版本',
  `main_board_uuid` varchar(100) NULL COMMENT '主板UUID',
  `cpu_id` varchar(100) NULL COMMENT 'CPU ID',
  `bios_serial_number` varchar(100) NULL COMMENT 'BIOS序列号',
  `machine_guid` varchar(100) NULL COMMENT '主机GUID',
  `network_card_mac` varchar(100) NULL COMMENT '网卡MAC地址',
  `hard_disk_sn` varchar(100) NULL COMMENT '硬盘序列号',
  `application_system_unique_code` varchar(50) NULL COMMENT '应用系统唯一标识符',
  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用 ',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) COMMENT = '服务器相关信息';
CREATE TABLE `sys_department`  (
  `id` bigint(20) NOT NULL COMMENT '科室/部门id',
  `department_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '科室/部门名称 同组织名称',
  `hospital_id` bigint(20) NOT NULL COMMENT '医院Id',
  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用',
  `create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  `accounts_count` smallint(2) NOT NULL COMMENT '帐号数量 默认6',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_dep_other`(`department_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '科室表' ROW_FORMAT = DYNAMIC;
CREATE TABLE `sys_doctor`  (
  `id` bigint(20) NOT NULL COMMENT '医生ID',
  `hospital_id` bigint(20) NOT NULL COMMENT '所属医院ID',
  `hospital_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医院名称',
  `department_id` bigint(20) NOT NULL COMMENT '科室ID',
  `department_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '科室名称',
  `doctor_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医生姓名',
  `doctor_logo` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'image/touxiang.png' COMMENT '医生的头像',
  `doctor_ccie` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生资质证书',
  `doctor_tel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医生联系方式',
  `doctor_password` varchar(50) NULL COMMENT '登录密码',
  `doctor_rank_id` bigint(20) NULL DEFAULT NULL COMMENT '职称ID',
  `doctor_rank` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称',
  `doctor_other_link` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生其它联系方式',
  `doctor_email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生的email',
  `doctor_about` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医生简介',
  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `doctor_state` bit(1) NOT NULL DEFAULT b'0' COMMENT '医生状态 1正常 0试用',
  `doctor_type` tinyint(1) NOT NULL DEFAULT 2 COMMENT '医生类型 0H+C端都可用   1H端   2C端 默认2',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '启用禁用状态,1启用,0停用 ',
  `create_user_id` bigint(20) UNSIGNED ZEROFILL NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  `is_admin_user` bit(1) NULL DEFAULT b'0' COMMENT '是否管理帐号 0否1是',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_doctor_other`(`hospital_id`, `doctor_name`, `doctor_tel`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
CREATE TABLE `sys_hospital`  (
  `id` bigint(20) NOT NULL COMMENT '医院ID',
  `hospital_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '医院名称',
  `hospital_short_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院简称',
  `hospital_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院编码',
  `hospital_type_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '医院类型ID  从字典表关联 社区/儿保等等之类',
  `hospital_type_name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院类型 社区/儿保等等之类',
  `hospital_tel` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院电话',
  `hospital_province` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省名称',
  `hospital_city` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市名称',
  `hospital_area` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院所在地区名称',
  `area_code` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区号',
  `hospital_link` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院联系人',
  `hospital_adress` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院地址',
  `latitude` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所在位置纬度',
  `longitude` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所在位置经度',
  `hospital_qualified_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资质ID',
  `hospital_qualified_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资质(三甲医院)',
  `hospital_lit_logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '医院logo  缩略图',
  `hospital_logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '医院logo 原图',
  `hospital_adimage` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院简介图片',
  `hospital_about` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '医院简介',
  `hospital_state` tinyint(1) UNSIGNED ZEROFILL NOT NULL DEFAULT 0 COMMENT '服务状态 0试用 1正式',
  `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用 ',
  `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除',
  `create_user_id` bigint(20) NOT NULL COMMENT '创建人ID',
  `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人账号',
  `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人ID',
  `update_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人账号',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_hospital_other`(`hospital_name`, `hospital_area`, `is_screen`, `tenant_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '医院基础信息表' ROW_FORMAT = DYNAMIC;
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
@@ -95,6 +95,8 @@
      - equipment_docking
      - hospital_screening
      - screening_organization_info
      - partner_info
      - partner_docking_info
    ignoreSqls:
      - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
      - com.kidgrow.oprationcenter.mapper.ConsumptionRecordMapper.findDetailList
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html
@@ -1,9 +1,9 @@
<div class="layui-card">
    <div class="layui-card-header">
        <h2 class="header-title">合作商客户对接信息表</h2>
        <h2 class="header-title">合作商客户对接管理</h2>
        <span class="layui-breadcrumb pull-right">
          <a href="#!console">首页</a>
          <a><cite>合作商客户对接信息表</cite></a>
            <a href="#!console">首页</a>
            <a><cite>合作商客户对接管理</cite></a>
        </span>
    </div>
@@ -11,42 +11,401 @@
    <div class="layui-card-body">
        <div class="layui-form toolbar">
            搜索:
            <input id="partnerDockingInfo-edit-value" class="layui-input search-input" type="text" placeholder="输入关键字"/>&emsp;
            <button id="partnerDockingInfo-btn-search" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
            <button id="partnerDockingInfo-btn-add" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
            <input id="partnerName-search" class="layui-input search-input" type="text" placeholder="按合作商名称" />&emsp;
            <input id="hospitalName-search" class="layui-input search-input" type="text" placeholder="按医院名称" />&emsp;
            <button id="partnerDockingInfo-btn-search" class="layui-btn icon-btn  permissions"
                permissions="partnerDockingInfo-list"><i class="layui-icon">&#xe615;</i>搜索</button>
            <button id="partnerDockingInfo-btn-add" class="layui-btn icon-btn  permissions"
                permissions="partnerDockingInfo-edit"><i class="layui-icon">&#xe654;</i>添加</button>
        </div>
        <!-- 数据表格 -->
        <table class="layui-table" id="partnerDockingInfo-table" lay-filter="partnerDockingInfo-table"></table>
    </div>
</div>
<!-- 表格操作列 -->
<script type="text/html" id="partnerDockingInfo-table-bar">
    <a class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="partnerDockingInfo-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger  layui-btn-xs permissions" permissions="partnerDockingInfo-del" lay-event="del">删除</a>
    <a class="layui-btn layui-btn-xs permissions" permissions="partnerDockingInfo-download" lay-event="download">下载数据库脚本</a>
</script>
<!-- 表格状态列 -->
<script type="text/html" id="partnerDockingInfo-status">
    <input type="checkbox" lay-filter="partnerDockingInfo-status" value="{{d.id}}" lay-skin="switch" lay-text="启用|暂停"
           {{d.dockingStatus==1?'checked':''}} class="permissions" permissions="partnerDockingInfo-status"/>
</script>
<!-- 新增/修改表单弹窗 -->
<script type="text/html" id="partnerDockingInfo-model">
    <form id="partnerDockingInfo-form" lay-filter="partnerDockingInfo-form" class="layui-form model-form">
        <input name="id" type="hidden"/>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width: 100px;">合作商名称</label>
            <div class="layui-input-inline" style="width: 200px;">
                <!-- <input name="partnerName" id="partnerName" placeholder="请输入合作商名称" lay-verify="required" required
                       type="text" class="layui-input" maxlength="100" style="width: 200px;"/> -->
                    <select id="partnerId" name="partnerId" lay-filter="partnerId" placeholder="请选择合作商"
                       lay-verify="required" required >
                   <option value="">-请选择合作商-</option>
               </select>
                <input type="hidden" name="partnerName" id="partnerName"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width: 100px;">医院名称</label>
            <div class="layui-input-block" style="width: 250px;">
                <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称"lay-verify="required" required
                        type="text" class="layui-input" maxlength="100"  style="width: 200px;"/>
                <input type="hidden" name="hospitalId" id="hospitalId"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width: 100px;">科室</label>
            <div class="layui-input-inline" style="width: 200px;">
                <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="请选择科室"
                        lay-verify="required" required >
                    <option value="">-请选择科室-</option>
                </select>
                <input name="departmentName" id="departmentName"  type="hidden" />
            </div>
        </div>
        <!-- 对接类型,默认为1:影像版API-->
        <!-- <input name="dockingType" id="partnerType" type="hidden" value="1" /> -->
        <div class="layui-form-item">
           <label class="layui-form-label"  style="width: 100px;">对接类型</label>
            <div class="layui-input-inline"style="width: 200px;">
                <input name="dockingTypeName" id="partnerTypeName" type="hidden" value="1" />
                <select name="dockingType" id="partnerType" lay-filter="dockingType"
                        style="width: 50px;">
                    <option value="">请选择</option>
                    <option value="1" selected>影像版API</option>
                    <option value="2">妇幼版API</option>
                </select>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width:100px" >对接系统版本</label>
            <div class="layui-input-block"  style="width:250px;">
                <input name="dockingVersion" lay-verify="required" required type="text" class="layui-input" maxlength="30" style="width: 200px;"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width:100px" >服务器机器码</label>
            <div class="layui-input-block"  style="width:250px;">
                <input name="serverMachineCode" lay-verify="required" required type="text" class="layui-input" maxlength="100" style="width: 200px;"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label" style="width: 100px;">安装人</label>
            <div class="layui-input-block" style="width: 250px;">
                <input name="operationName" lay-verify="required" required type="text" class="layui-input" maxlength="30"style="width: 200px;"/>
            </div>
        </div>
        <div class="layui-form-item model-form-footer">
            <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
            <button class="layui-btn" id="sure" lay-filter="partnerDockingInfo-form-submit" permissions="
            partnerDocking-edit" lay-submit>保存
            </button>
        </div>
    </form>
</script>
<script>
    layui.use(['form', 'table', 'util', 'config', 'admin'], function () {
    layui.use(['form', 'table', 'util', 'config', 'admin', 'autocomplete', 'laydate'], 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 laydate = layui.laydate;
        var autocomplete = layui.autocomplete;
        var $ = layui.jquery;
        // 添加按钮点击事件
        $('#partnerDockingInfo-btn-add').click(function () {
            showEditModel(undefined, 1);
        });
        //// 刷新
        // $('#docto-templete-btn-update').click(function () {
        //     table.reload('app-table', { where: {} });
        // });
        //渲染表格
        table.render({
            elem: '#partnerDockingInfo-table',
            url: config.base_server + 'api-oprationcenter/parterdockinginfo/list',
            where: {
                access_token: config.getToken().access_token
            },
            url: config.base_server + 'api-opration/partnerdockinginfo',
            method: 'GET',
            headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
            page: true,
            cols: [[
                {type: 'numbers'},
                {field: 'id', sort: true, title: 'ID',width: 80},
                {field: 'name', sort: true, title: 'name'},
                {field: 'code', sort: true, title: 'code'},
                {align: 'center', toolbar: '#partnerDockingInfo-table-bar', title: '操作',width: 250}
                { field: 'partnerName', align: 'center', width: '10%', title: '合作商名称' },
                { field: 'hospitalName', align: 'center', width: '15%', title: '医院名称' },
                { field: 'departmentName', align: 'center', width: '7%', title: '科室名称' },
                {
                    field: 'dockingType', align: 'center', width: '7%', title: '对接类型', templet: function (d) {
                        if (d.dockingType == null) {
                            return "";
                        } else if (d.dockingType == 1) {
                            return "影像版API";
                        } else if (d.dockingType == 2) {
                            return "妇幼版API";
                        } else {
                            return "";
                        }
                    }
                },
                { field: 'dockingVersion', align: 'center', width: '5%', title: '对接版本' },
                { field: 'dockingStatus', align: 'center', width: '7%', templet: '#partnerDockingInfo-status', title: '状态' },
                { field: 'serverMachineCode', align: 'center', width: '10%', title: '设备电脑机器码' },
                { field: 'accessKey', align: 'center', width: '10%', title: 'AccessKey' },
                { field: 'operationName', align: 'center', width: '7%', title: '对接操作人' },
                { field: 'operationTime', align: 'center', width: '7%', title: '对接日期', templet: "<div>{{layui.util.toDateString(d.operationTime, 'yyyy/MM/dd')}}</div>" },
                { field: 'Id', align: 'center', toolbar: '#partnerDockingInfo-table-bar', title: '操作', width: '15%', fixed: 'right' }
            ]]
            // , done: function () {
            //     // $("[data-field='partnerId']").css('display','none');
            //     // $("[data-field='hospitalId']").css('display','none');
            //     $("[data-field='departmentId']").css('display','none');
            // }
        });
        // 工具条点击事件
        table.on('tool(partnerDockingInfo-table)', function (obj) {
            var data = obj.data;
            var layEvent = obj.event;
            if (layEvent === 'edit') { // 查看详情
                showEditModel(data, 2);
            } else if (layEvent === 'del') {
                layer.confirm('确定删除此合作商客户对接信息吗?', function (i) {
                    layer.close(i);
                    layer.load(2);
                    admin.req('api-opration/partnerdockinginfo/' + obj.data.id, {}, function (data) {
                        layer.closeAll('loading');
                        if (data.code == 0) {
                            layer.msg(data.msg, { icon: 1, time: 2000 });
                            table.reload('partnerDockingInfo-table', {});
                        } else {
                            layer.msg(data.msg, { icon: 2, time: 2000 });
                        }
                    }, 'delete');
                });
            } else if (layEvent == 'download') {
                var url = config.base_server + "api-opration/partnerdockinginfo/downloaddb/";
                // 获取XMLHttpRequest
                var xmlResquest = new XMLHttpRequest();
                //  发起请求
                xmlResquest.open("POST", url, true);
                // 设置请求头类型
                xmlResquest.setRequestHeader("Content-type", "application/json");
                xmlResquest.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
                xmlResquest.responseType = "blob";
                var jsondata = JSON.stringify(obj.data);
                //  返回
                xmlResquest.onload = function () {
                    if (this.status == 200) {
                        var fileName = data.hospitalName+data.departmentName+".sql";
                        var blob = this.response;
                        var a = document.createElement('a');
                        a.innerHTML = fileName;
                        // 指定生成的文件名
                        a.download = fileName;
                        a.href = URL.createObjectURL(blob);
                        document.body.appendChild(a);
                        var evt = document.createEvent("MouseEvents");
                        evt.initEvent("click", false, false);
                        a.dispatchEvent(evt);
                        document.body.removeChild(a);
                    }
                };
                xmlResquest.send(jsondata);
            }
        });
        // 搜索按钮点击事件
        $('#partnerDockingInfo-btn-search').click(function () {
            var partnerName = $('#partnerName-search').val();
            var hospitalName = $('#hospitalName-search').val();
            table.reload('partnerDockingInfo-table', { where: { partnerName: partnerName, hospitalName: hospitalName }, page: { curr: 1 } });
        });
        // 修改客户对接状态
        form.on('switch(partnerDockingInfo-status)', function (obj) {
            layer.load(2);
            admin.req('api-opration/partnerdockinginfo/updatestatus', JSON.stringify({
                id: obj.elem.value,
                dockingStatus: obj.elem.checked ? 1 : 2
            }), function (data) {
                layer.closeAll('loading');
                if (data.code == 0) {
                    layer.msg(data.msg, { icon: 1, time: 2000 });
                    table.reload('app-tablepartnerDockingInfo-table', {});
                } else {
                    layer.msg(data.msg, { icon: 2, time: 2000 });
                    $(obj.elem).prop('checked', !obj.elem.checked);
                    form.render('checkbox');
                }
            }, 'POST');
        });
        //合作商选择赋值
        form.on("select(partnerId)", function (data) {
            $("#partnerName").val(data.elem[data.elem.selectedIndex].text);
        })
        //赋值对接类型ID
        form.on("select(dockingType)", function (data) {
            $("#dockingTypeName").val(data.elem[data.elem.selectedIndex].text);
        });
        //新增 和  更新   科室触发的事件
        form.on('select(departmentId)', function () {
            //将部门名称赋值
            $('#departmentName').val($(this)[0].innerHTML);
        });
        // 表单提交事件
        form.on('submit(partnerDockingInfo-form-submit)', function (data) {
            layer.load(2);
            admin.req('api-opration/partnerdockinginfo', JSON.stringify(data.field), function (data) {
                layer.closeAll('loading');
                if (data.code == 0) {
                    // layer.msg(data.msg, { icon: 1, time: 2000 });
                    layer.closeAll();
                    table.reload('partnerDockingInfo-table', {});
                } else {
                    layer.msg(data.msg, { icon: 2, time: 2000 });
                }
            }, "POST");
            return false;
        });
        // // 显示编辑弹窗
        var showEditModel = function (data, index) {
            var title = "";
            if (index == 1) {
                title = "新增";
            } else if (index == 2) {
                title = "修改";
            }
            layer.open({
                type: 1,
                title: title,
                area: '550px',
                offset: '120px',
                content: $('#partnerDockingInfo-model').html(),
                success: function () {
                    $('#partnerDockingInfo-form')[0].reset();
                    $('#partnerDockingInfo-form').attr('method', 'POST');
                    if (data) {
                        // if (index == 1) {
                        //     $('#sure').hide();
                        // }
                        //加载合作商列表信息
                        loadPartnerInfoList(data.partnerId);
                        //重新装载科室
                        getdepartment(data.hospitalId);
                        form.val('partnerDockingInfo-form', data);
                        form.render();
                    } else {
                        //加载合作商列表信息
                        loadPartnerInfoList();
                    }
                    //自动完成-医院名称
                    autocomplete.render({
                        elem: $('#hospitalName')[0],
                        url: config.base_server + 'api-user/syshospital/findByName',
                        keywordsName: 'hospitalName', //查询关键字名称
                        template_val: '{{d.hospitalName}}', //选择后文本框显示的数据字段
                        template_txt: "<div class='layui-table-cell'>{{d.hospitalName}}</div>", //下拉列表模板
                        onselect: function (resp) {
                            $("#hospitalId").val(resp.id);
                            //重新装载科室
                            getdepartment(resp.id);
                        }
                    });
                    //执行一个laydate实例
                    laydate.render({
                        elem: '#operationTime' //指定元素
                        , type: 'datetime'
                    });
                }
            });
        };
        //加载合作商信息列表
        var loadPartnerInfoList = function (selectVal) {
            admin.req('api-opration/partnerinfo', {
                limit: 100,
                page: 1
            }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    if (data.data.length > 0) {
                        $.each(data.data, function (index, item) {
                            //往下拉菜单里添加元素
                            $('#partnerId').append(new Option(item.partnerName, item.id,
                                false, (!strUtil.isEmpty(selectVal) && selectVal == item.id)));
                        });
                    }
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 2000
                    });
                }
            }, 'get');
        }
        //获取科室
        var getdepartment = function (data) {
            admin.req('api-user/sysdepartment/findListByHospitalId', {
                id: data
            }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    //department = data.data;
                    $('#departmentId').empty();
                    if (data.data.length > 0) {
                        $('#departmentName').val(data.data[0].departmentName);
                    }
                    $.each(data.data, function (index, item) {
                        //往下拉菜单里添加元素
                        $('#departmentId').append(new Option(item.departmentName, item.id,
                            false, false));
                        form.render('select', 'partnerDockingInfo-form');
                    })
                    form.render();
                } else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 2000
                    });
                }
            }, 'get');
        }
    });
</script>
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerInfo.html
@@ -1,9 +1,9 @@
<div class="layui-card">
    <div class="layui-card-header">
        <h2 class="header-title">合作商信息表</h2>
        <h2 class="header-title">合作商管理</h2>
        <span class="layui-breadcrumb pull-right">
          <a href="#!console">首页</a>
          <a><cite>合作商信息表</cite></a>
            <a href="#!console">首页</a>
            <a><cite>合作商管理</cite></a>
        </span>
    </div>
@@ -12,7 +12,15 @@
        <div class="layui-form toolbar">
            搜索:
            <input name="partnerName" id="partnerName-serch" placeholder="按合作商名称" type="text"
                   class="layui-input search-input" maxlength="50" autocomplete="off"/>&emsp;
                class="layui-input search-input" maxlength="50" />&emsp;
            <select id="province" placeholder="省份" lay-filter="province">
            </select>
            <select id="city" placeholder="市" lay-filter="city">
                <option value="">选择市</option>
            </select>
            <select id="area" placeholder="区县" lay-filter="areas">
                <option value="">选择区县</option>
            </select>
            <button id="partnerInfo-btn-search" class="layui-btn icon-btn permissions" permissions="partnerInfo-list"><i
                    class="layui-icon">&#xe615;</i>搜索
            </button>
@@ -22,8 +30,8 @@
        </div>
        <!-- 数据表格 -->
        <table class="layui-table permissions" permissions="equipmentDocking-list" id="partnerInfo-table"
               lay-filter="partnerInfo-table"></table>
        <table class="layui-table permissions" permissions="partnerInfo-list" id="partnerInfo-table"
            lay-filter="partnerInfo-table"></table>
    </div>
</div>
@@ -41,14 +49,14 @@
        <div class="layui-form-item">
            <label class="layui-form-label">合作商名称</label>
            <div class="layui-input-block">
                <input name="partnerName" lay-verify="required" required type="text" class="layui-input"/>
                <input name="partnerName" lay-verify="required" required type="text" class="layui-input" maxlength="50"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">合作商类型</label>
            <div class="layui-input-block">
                <input name="partnerType" id="partnerType" type="hidden" value="" />
                <select name="partnerTypeName" id="partnerTypeName" lay-filter="partnerTypeName"
                <!-- <input name="partnerTypeName" id="partnerTypeName" type="hidden" value=""/> -->
                <select name="partnerType" id="partnerType" lay-filter="partnerTypeName"
                        style="width: 50px;">
                    <option value="">请选择</option>
                    <option value="1">区域经销商</option>
@@ -70,61 +78,56 @@
                        </select></div>
                    <div class="layui-col-sm4">
                        <select id="partnerCity" lay-verify="required" required placeholder="市"
                                lay-filter="hospitalCity"
                                lay-filter="partnerCity"
                                style="width: 350px;">
                            <option value="">选择市</option>
                        </select></div>
                    <div class="layui-col-sm4">
                        <select id="partnerArea" lay-verify="required" required placeholder="区县"
                                lay-filter="hospitalArea"
                                lay-filter="partnerArea"
                                style="width: 350px;">
                            <option value="">选择区县</option>
                        </select>
                    </div>
                    <div class="layui-input-block">
                        <input name="partnerAdress" type="text" class="layui-input" maxlength="100"/>
                    </div>
                </div>
            </div>
        </div>
        <!--        <div class="layui-form-item">-->
        <!--            <label class="layui-form-label">地址</label>-->
        <!--            -->
        <!--        </div>-->
        <div class="layui-form-item">
<!--            <label class="layui-form-label">地址</label>-->
            <div class="layui-input-block">
                <input name="partnerAddress" type="text" class="layui-input" maxlength="100"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">联系人</label>
            <div class="layui-input-block">
                <input name="partnerLinkMan" lay-verify="required" required type="text" class="layui-input"/>
                <input name="partnerLinkMan" lay-verify="required" required type="text" class="layui-input" maxlength="20"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">联系电话</label>
            <div class="layui-input-block">
                <input name="partnerLinkTelephone" lay-verify="required" required type="text" class="layui-input"/>
                <input name="partnerLinkTelephone" lay-verify="required|phone" required type="text" class="layui-input" maxlength="20"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">合作区域</label>
            <div class="layui-input-block">
                <input name="partnerBussinessArea" lay-verify="required" required type="text" class="layui-input"/>
                <input name="partnerBussinessArea" lay-verify="required" required type="text" class="layui-input" maxlength="100"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">简介</label>
            <div class="layui-input-block">
                <input name="partnerIntroduce" lay-verify="required" required type="text" class="layui-input"/>
                <textArea name="partnerIntroduce" class="layui-textarea" maxlength="300"/>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">标识码</label>
            <div class="layui-input-block">
                <input name="partnerUniqueCode" lay-verify="required" required type="text" class="layui-input"/>
            </div>
        </div>
        <div class="layui-form-item model-form-footer">
            <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
            <button class="layui-btn" id="sure" lay-filter="partnerInfo-form-submit" permissions="
            <button class="layui-btn" lay-filter="partnerInfo-form-submit" permissions="
            partner-info-edit" lay-submit>保存
            </button>
        </div>
@@ -132,7 +135,7 @@
</script>
<script>
    layui.use(['form', 'table', 'util', 'config', 'area', 'admin'], function () {
    layui.use(['form', 'table', 'config', 'layer', 'util', 'admin', 'area', 'autocomplete'], function () {
        var form = layui.form;
        var table = layui.table;
        var config = layui.config;
@@ -140,24 +143,32 @@
        var util = layui.util;
        var admin = layui.admin;
        var area = layui.area;
        var autocomplete = layui.autocomplete;
        var laydate = layui.laydate;
        // //省份数据加载
        // area.areaData("#partnerProvince", 1, "", "");
        // //装载市区数据
        // form.on("select(partnerProvince)", function (data) {
        //     area.areasClear("#partnerlArea", 3);
        //     area.areaData("#partnerCity", 2, data.value, "");
        // });
        // //装载区县数据
        // form.on("select(partnerCity)", function (data) {
        //     area.areaData("#partnerArea", 3, data.value, "");
        // });
        //省份数据加载
        area.areaData("#hospitalProvince", 1, "", "");
        area.areaData("#province", 1, "", "");
        //装载市区数据
        form.on("select(hospitalProvince)", function (data) {
            area.areasClear("#hospitalArea", 3);
            area.areaData("#hospitalCity", 2, data.value, "");
            defaultValData();
        form.on("select(province)", function (data) {
            area.areasClear("#area", 3);
            area.areaData("#city", 2, data.value, "");
        });
        //装载区县数据
        form.on("select(hospitalCity)", function (data) {
            area.areaData("#hospitalArea", 3, data.value, "");
            defaultValData();
        });
        //赋值合作商类型数据ID
        form.on("select(partnerTypeName)", function (data) {
            $("#partnerType").val(data.value);
        form.on("select(city)", function (data) {
            area.areaData("#area", 3, data.value, "");
        });
        // 添加按钮点击事件
@@ -166,19 +177,20 @@
        });
        //// 刷新
        $('#partnerInfo-btn-update').click(function () {
            table.reload('app-table', {where: {}});
            table.reload('partnerInfo-table', { where: {} });
        });
        //渲染表格
        table.render({
            elem: '#partnerInfo-table',
            url: config.base_server + 'api-oprationcenter/partnerinfo/list',
            url: config.base_server + 'api-opration/partnerinfo',
            method: 'GET',
            headers: {'Authorization': 'Bearer ' + config.getToken().access_token},
            headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
            page: true,
            cols: [[
                {field: 'partnerName', align: 'left', width: '10%', title: '名称'},
                {field: 'partnerType', align: 'left', width: '10%', title: '类型', templet:function (d) {
                { field: 'partnerName', align: 'left', width: '10%', title: '名称' },
                {
                    field: 'partnerType', align: 'left', width: '10%', title: '类型', templet: function (d) {
                        if (d.partnerType == null) {
                            return "";
                        } else if (d.partnerType == 1) {
@@ -194,19 +206,20 @@
                        } else {
                            return "";
                        }
                    }},
                    }
                },
                {
                    field: 'partnerAddress', align: 'left', width: '10%', title: '地址', templet: function (d) {
                    field: 'partnerAddress', align: 'left', width: '20%', title: '地址', templet: function (d) {
                        return ((d.partnerProvince == null) ? "" : d.partnerProvince) + " " +
                            ((d.partnerCity == null) ? "" : d.partnerCity) + " " +
                            ((d.partnerArea == null) ? "" : d.partnerArea) + " " +
                            ((d.partnerAddress == null) ? "" : d.partnerAddress)
                    }
                },
                {field: 'partnerLinkMan', align: 'left', width: '10%', title: '联系人'},
                {field: 'partnerLinkTelephone', align: 'left', width: '10%', title: '联系电话'},
                {field: 'partnerBussinessArea', align: 'left', width: '10%', title: '合作区域'},
                {field: 'partnerUniqueCode', align: 'left', width: '10%', title: '标识码'},
                { field: 'partnerLinkMan', align: 'left', width: '7%', title: '联系人' },
                { field: 'partnerLinkTelephone', align: 'left', width: '7%', title: '联系电话' },
                { field: 'partnerBussinessArea', align: 'left', width: '15%', title: '合作区域' },
                { field: 'partnerUniqueCode', align: 'left', width: '10%', title: '标识码' },
                {
                    field: 'createTime',
                    align: 'center',
@@ -214,8 +227,7 @@
                    title: '创建日期',
                    templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy/MM/dd')}}</div>"
                },
                {field: 'id', align: 'center', width: '10%', toolbar: '#partnerInfo-bar', title: '操作', fixed: 'right'}
                { field: 'id', align: 'center', width: '10%', toolbar: '#partnerInfo-bar', title: '操作', fixed: 'right' }
            ]],
            done: function (res) {
                permissionsInput(res, config);
@@ -223,7 +235,7 @@
        });
        // 工具条点击事件
        table.on('tool(app-table)', function (obj) {
        table.on('tool(partnerInfo-table)', function (obj) {
            var data = obj.data;
            var layEvent = obj.event;
            if (layEvent === 'edit') { // 查看详情
@@ -235,10 +247,10 @@
                    admin.req('api-opration/partnerinfo/' + obj.data.id, {}, function (data) {
                        layer.closeAll('loading');
                        if (data.code == 0) {
                            layer.msg(data.msg, {icon: 1, time: 2000});
                            table.reload('app-table', {});
                            layer.msg(data.msg, { icon: 1, time: 2000 });
                            table.reload('partnerInfo-table', {});
                        } else {
                            layer.msg(data.msg, {icon: 2, time: 2000});
                            layer.msg(data.msg, { icon: 2, time: 2000 });
                        }
                    }, 'delete');
                });
@@ -246,25 +258,44 @@
        });
        // 搜索按钮点击事件
        $('#app-btn-search').click(function () {
        $('#partnerInfo-btn-search').click(function () {
            var partnerName = $('#partnerName-serch').val();
            table.reload('app-table', {where: {partnerName: partnerName}, page: {curr: 1}});
            var partnerProvince = $("#province option:selected").text() != "选择省" ?
                $("#province option:selected").text() : "";
            var partnerCity = $("#city option:selected").text() != "选择市" ? $(
                "#city option:selected").text() : "";
            var partnerArea = $("#area option:selected").text() != "选择区县" ? $(
                "#area option:selected").text() : "";
            table.reload('partnerInfo-table', { where: { partnerName: partnerName, partnerProvince: partnerProvince, partnerCity: partnerCity, partnerArea: partnerArea }, page: { curr: 1 } });
        });
        // 表单提交事件
        form.on('submit(partnerInfo-form-submit)', function (data) {
            layer.load(2);
            admin.req('api-opration/partnerinfo', JSON.stringify(data.field), function (data) {
                layer.closeAll('loading');
                if (data.code == 0) {
                    // layer.msg(data.msg, { icon: 1, time: 2000 });
                    layer.closeAll();
                    table.reload('app-table', {});
                } else {
                    layer.msg(data.msg, {icon: 2, time: 2000});
                }
            }, "POST");
            if (data.field != null) {
                data.field.partnerProvince = $("#partnerProvince option:selected").text() != "选择省" ?
                    $("#partnerProvince option:selected").text() : "";
                data.field.partnerCity = $("#partnerCity option:selected").text() != "选择市" ? $(
                    "#partnerCity option:selected").text() : "";
                data.field.partnerArea = $("#partnerArea option:selected").text() != "选择区县" ? $(
                    "#partnerArea option:selected").text() : "";
                admin.req('api-opration/partnerinfo', JSON.stringify(data.field), function (data) {
                    layer.closeAll('loading');
                    if (data.code == 0) {
                        // layer.msg(data.msg, { icon: 1, time: 2000 });
                        layer.closeAll();
                        table.reload('partnerInfo-table', {});
                    } else {
                        layer.msg(data.msg, { icon: 2, time: 2000 });
                    }
                }, "POST");
            }
            return false;
        });
@@ -286,20 +317,42 @@
                    $('#app-form')[0].reset();
                    $('#app-form').attr('method', 'POST');
                    if (data) {
                        if (index == 1) {
                            $('#sure').hide();
                        }
                        // if (index == 1) {
                        //     $('#sure').hide();
                        // }
                        form.val('app-form', data);
                        // //重新装载科室
                        // getdepartment(data.hospitalId);
                        // form.render();
                        //装载省市区数据
                        if (!strUtil.isEmpty(data.partnerProvince))
                            area.areaData("#partnerProvince", 1, "", data.partnerProvince);
                        if (!strUtil.isEmpty(data.partnerCity))
                            area.areaData("#partnerCity", 2, $("#partnerProvince").val(), data
                                .partnerCity);
                        if (!strUtil.isEmpty(data.partnerArea))
                            area.areaData("#partnerArea", 3, $("#partnerCity").val(), data
                                .partnerArea);
                        form.render();
                    } else {
                        //省份数据加载
                        area.areaData("#partnerProvince", 1, "", "");
                        //装载市区数据
                        form.on("select(partnerProvince)", function (data) {
                            area.areasClear("#partnerlArea", 3);
                            area.areaData("#partnerCity", 2, data.value, "");
                        });
                        //装载区县数据
                        form.on("select(partnerCity)", function (data) {
                            area.areaData("#partnerArea", 3, data.value, "");
                        });
                    }
                    // //执行一个laydate实例
                    // laydate.render({
                    //     elem: '#startTime' //指定元素
                    //     ,type: 'datetime'
                    // });
                    //执行一个laydate实例
                    laydate.render({
                        elem: '#startTime' //指定元素
                        , type: 'datetime'
                    });
                }