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.text.SimpleDateFormat;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
|
* @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
|
*/
|
@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
|
* @return
|
*/
|
@Override
|
public PageResult<PartnerDockingInfo> findList(Map<String, Object> params){
|
Page<PartnerDockingInfo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
|
List<PartnerDockingInfo> list = baseMapper.findList(page, params);
|
return PageResult.<PartnerDockingInfo>builder().data(list).code(0).count(page.getTotal()).build();
|
}
|
|
/**
|
* 根据PartnerDockingInfo对象当做查询条件进行查询
|
* @param partnerDockingInfo
|
* @return PartnerDockingInfo
|
*/
|
@Override
|
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;
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
String createTime = "";
|
String updateTime = "";
|
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);
|
createTime = simpleDateFormat.format(hospitalInfo.getCreateTime());
|
updateTime = simpleDateFormat.format(hospitalInfo.getUpdateTime());
|
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()+ "', " +
|
"'" + createTime+ "', " +
|
"'" + updateTime+"' " +
|
");\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) {
|
createTime = simpleDateFormat.format(partnerInfo.getCreateTime());
|
updateTime = simpleDateFormat.format(partnerInfo.getUpdateTime());
|
|
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() + "', " +
|
"0, 1, "+ partnerInfo.getCreateUserId() + ", " +
|
"'" +partnerInfo.getCreateUserName() + "', " +
|
"'" +createTime + "', " +
|
+ partnerInfo.getUpdateUserId() + ", " +
|
"'" +partnerInfo.getUpdateUserName() + "', " +
|
"'" +updateTime + "' " +
|
");\n\r";
|
}
|
// 6、读取服务器信息表Server_Info,生成SQL文
|
if ((partnerDockingInfo.getAccessKey() != null) && (!partnerDockingInfo.getAccessKey().isEmpty())) {
|
createTime = simpleDateFormat.format(partnerDockingInfo.getCreateTime());
|
updateTime = simpleDateFormat.format(partnerDockingInfo.getUpdateTime());
|
|
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() + "', " +
|
"'" + createTime + "', " +
|
partnerDockingInfo.getUpdateUserId() + ", " +
|
"'" + partnerDockingInfo.getUpdateUserName() + "', " +
|
"'" + updateTime + "', " +
|
");\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;
|
};
|
}
|