From f41b3b53dad6a8468fc1ae9babb85a0270124d01 Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Mon, 28 Dec 2020 16:38:55 +0800 Subject: [PATCH] 修正影像版私有云数据库模板Bug 完善相关验证字符串的加密方式 --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java | 347 ++++++++++++++++++++++++++------------ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql | 142 +++++++-------- kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java | 6 4 files changed, 308 insertions(+), 189 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java index ce53cc6..66befdd 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java @@ -3,14 +3,20 @@ import cn.hutool.core.date.DateTime; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.impl.SuperServiceImpl; +import com.kidgrow.common.utils.EncryptUtils; import com.kidgrow.oprationcenter.mapper.PartnerDockingInfoMapper; import com.kidgrow.oprationcenter.model.PartnerDockingInfo; import com.kidgrow.oprationcenter.model.PartnerInfo; +import com.kidgrow.oprationcenter.model.ProductOrder; +import com.kidgrow.oprationcenter.model.ProductOrderRecord; import com.kidgrow.oprationcenter.service.IPartnerDockingInfoService; import com.kidgrow.oprationcenter.service.IPartnerInfoService; +import com.kidgrow.oprationcenter.service.IProductOrderRecordService; +import com.kidgrow.oprationcenter.service.IProductOrderService; import com.kidgrow.usercenter.feign.SysDepartmentService; import com.kidgrow.usercenter.feign.SysDoctorService; import com.kidgrow.usercenter.feign.SysHospitalService; @@ -34,11 +40,12 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © 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 */ @Slf4j @Service @@ -59,36 +66,45 @@ @Autowired IPartnerInfoService partnerInfoService; + @Autowired + IProductOrderService productOrderService; + + @Autowired + IProductOrderRecordService productOrderRecordService; + /** * 列表 + * * @param params * @return */ @Override - public PageResult<PartnerDockingInfo> findList(Map<String, Object> params){ + 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); + List<PartnerDockingInfo> list = baseMapper.findList(page, params); return PageResult.<PartnerDockingInfo>builder().data(list).code(0).count(page.getTotal()).build(); } /** - * 根据PartnerDockingInfo对象当做查询条件进行查询 - * @param partnerDockingInfo - * @return PartnerDockingInfo - */ + * 根据PartnerDockingInfo对象当做查询条件进行查询 + * + * @param partnerDockingInfo + * @return PartnerDockingInfo + */ @Override - public PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo){ + public PartnerDockingInfo findByObject(PartnerDockingInfo partnerDockingInfo) { return baseMapper.findByObject(partnerDockingInfo); } /** * 根据对接类型版本等信息,创建客户私有云数据库脚本 + * * @param partnerDockingInfo * @return */ @Override - public String createSQL( PartnerDockingInfo partnerDockingInfo ){ + public String createSQL(PartnerDockingInfo partnerDockingInfo) { // 模板SQL文 String dbSql = ""; // 医院信息SQL文 @@ -100,10 +116,14 @@ // 合作商信息SQL文 String partnerSQL = ""; // 服务器信息SQL文 - String serverSQL= ""; - InputStream fileImput =null; + String serverSQL = ""; + // 服务期限和数量的SQL文 + String serviceSQL = ""; - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + InputStream fileImput = null; + // 时间转换格式 + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String createTime = ""; String updateTime = ""; @@ -114,67 +134,71 @@ dbSql = FileUtils.readFile(fileImput); // 2、读取医院信息表Hospital_Info,插入SQL文中 - Map<String,Object> hospitalMap = new HashMap<>(); - hospitalMap.put("id",partnerDockingInfo.getHospitalId()); + Map<String, Object> hospitalMap = new HashMap<>(); + hospitalMap.put("id", partnerDockingInfo.getHospitalId()); ResultBody hospitalResult = sysHospitalService.findAllByMap(hospitalMap); - if (hospitalResult.isOk()){ + if (hospitalResult.isOk()) { String jsonData = JSONObject.toJSONString(hospitalResult.getData()); - List<SysHospital> hospitalLists= JSONObject.parseArray(jsonData,SysHospital.class); - if (hospitalLists.size()> 0) { + 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()); + createTime = "'" + dateTimeFormat.format(hospitalInfo.getCreateTime()) + "'"; + updateTime = (hospitalInfo.getUpdateTime() == null) ? "NULL" : "'" + dateTimeFormat.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()+ "', " + + "'" + 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.getHospitalAbout() + "', " + hospitalInfo.getHospitalState() + ", " + hospitalInfo.getEnabled() + ", " + hospitalInfo.getIsDel() + ", " + hospitalInfo.getCreateUserId() + ", " + - "'" + hospitalInfo.getCreateUserName()+ "', " + + "'" + hospitalInfo.getCreateUserName() + "', " + hospitalInfo.getUpdateUserId() + ", " + - "'" + hospitalInfo.getUpdateUserName()+ "', " + - "'" + createTime+ "', " + - "'" + updateTime+"' " + + "'" + hospitalInfo.getUpdateUserName() + "', " + + createTime + ", " + + updateTime + " " + ");\n\r"; + } else { + return "医院信息读取失败,请重新生成SQL!"; } - + } else { + return "医院信息读取失败,请重新生成SQL!"; } // 3、读取科室信息表Department_Info,生成SQL文 - departmentSQL = "INSERT INTO sys_department VALUES ("+ - +partnerDockingInfo.getDepartmentId()+ ", "+ - "'" + partnerDockingInfo.getDepartmentName() +"', " + + departmentSQL = "INSERT INTO sys_department VALUES (" + + +partnerDockingInfo.getDepartmentId() + ", " + + "'" + partnerDockingInfo.getDepartmentName() + "', " + + +partnerDockingInfo.getHospitalId() + ", " + "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); + 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()) { @@ -184,97 +208,194 @@ 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()+ "', " + + +doctorInfo.getHospitalId() + ", " + + "'" + doctorInfo.getHospitalName() + "', " + + +doctorInfo.getDepartmentId() + ", " + + "'" + doctorInfo.getDepartmentName() + "', " + + "'" + doctorInfo.getDoctorName() + "', " + + "NULL, NULL, " + + "'" + 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 , '喜高科技', " + + doctorInfo.getDoctorState() + ", " + + doctorInfo.getDoctorType() + ", " + + "1, 0, '喜高科技', 0 , '喜高科技', " + "'" + DateTime.now().toString() + "', " + "'" + DateTime.now().toString() + "', " + "1" + ");\n\r"; + } else { + return "医生信息读取失败,请先创建管理员,再重新生成SQL!"; } + } else { + return "医生信息读取失败,请先创建管理员,再重新生成SQL!"; } // 5、读取合作商信息表Partner_Info,生成SQL文 PartnerInfo partnerInfo = partnerInfoService.getById(partnerDockingInfo.getPartnerId()); - if (partnerInfo!= null) { - createTime = simpleDateFormat.format(partnerInfo.getCreateTime()); - updateTime = simpleDateFormat.format(partnerInfo.getUpdateTime()); + if (partnerInfo != null) { + createTime = "'" + dateTimeFormat.format(partnerInfo.getCreateTime()) + "'"; + updateTime = (partnerInfo.getUpdateTime() == null) ? "NULL" : "'" + dateTimeFormat.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"; + "'" + 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"; + } else { + return "合作商信息读取失败,请重新生成SQL!"; } // 6、读取服务器信息表Server_Info,生成SQL文 - if ((partnerDockingInfo.getAccessKey() != null) && (!partnerDockingInfo.getAccessKey().isEmpty())) { - createTime = simpleDateFormat.format(partnerDockingInfo.getCreateTime()); - updateTime = simpleDateFormat.format(partnerDockingInfo.getUpdateTime()); + createTime = "'"+ dateTimeFormat.format(partnerDockingInfo.getCreateTime())+"'"; + updateTime = (partnerDockingInfo.getUpdateTime() == null) ? "NULL" : "'"+ dateTimeFormat.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"; + serverSQL = "INSERT INTO server_info VALUES(" + + partnerDockingInfo.getId() + ", " + + partnerDockingInfo.getPartnerId() + ", " + + partnerDockingInfo.getHospitalId() + ", " + + partnerDockingInfo.getDepartmentId() + ", " + + "NULL, NULL, NULL, NULL, "; + // 判断机器码是否为空,拼接不同的字符串。 + if ((partnerDockingInfo.getServerMachineCode() == null) || (partnerDockingInfo.getServerMachineCode().isEmpty())) { + serverSQL += "NULL, "; + } else { + serverSQL += "'" + partnerDockingInfo.getServerMachineCode() + "', "; } - // 7、所有SQL文合并入基本的SQL中 - dbSql += hospitalSQL + departmentSQL + doctorSQL + partnerSQL +serverSQL; + serverSQL += "NULL, NULL, " + + "'" + partnerDockingInfo.getAccessKey() + "', " + + "0, 1, " + + partnerDockingInfo.getCreateUserId() + ", " + + "'" + partnerDockingInfo.getCreateUserName() + "', " + + createTime + ", " + + partnerDockingInfo.getUpdateUserId() + ", " + + "'" + partnerDockingInfo.getUpdateUserName() + "', " + + updateTime + " " + + ");\n\r"; - } catch (Exception e){ + // 7、Todo 订单、订单明细(服务期限和数量)的数据生成 + // 7.1 订单数据 + Map<String, Object> orderMap = new HashMap<>(); + orderMap.put("hospital_id", partnerDockingInfo.getHospitalId()); + orderMap.put("department_id", partnerDockingInfo.getDepartmentId()); + orderMap.put("enabled", 1); + orderMap.put("is_del", 0); + List<ProductOrder> productOrderList = productOrderService.listByMap(orderMap); + if ((productOrderList != null) && (productOrderList.size() > 0)) { + for (int i = 0; i < productOrderList.size(); i++) { + ProductOrder productOrder = productOrderList.get(i); + createTime = "'"+dateTimeFormat.format(productOrder.getCreateTime()) +"'"; + updateTime = (productOrder.getUpdateTime() == null) ? "NULL" : "'"+dateTimeFormat.format(productOrder.getUpdateTime())+"'"; + serviceSQL += "INSERT INTO order_record VALUES(" + + productOrder.getId() + ", " + + productOrder.getHospitalId() + ", " + + "'" + productOrder.getHospitalName() + "', " + + productOrder.getDepartmentId() + ", " + + "'" + productOrder.getDepartmentName() + "', " + + "'" + productOrder.getContractNo() + "', " + + "'" + productOrder.getContractTitle() + "', " + + "'" + dateFormat.format(productOrder.getContractBeginTime()) + "', " + + "'" + dateFormat.format(productOrder.getContractEndTime()) + "', " + + "'" + dateTimeFormat.format(productOrder.getContractTime()) + "', " + + productOrder.getIsDel() + ", " + + productOrder.getEnabled() + ", " + + createTime + ", " + + productOrder.getCreateUserId() + ", " + + "'" + productOrder.getCreateUserName() + "', " + + updateTime + ", " + + productOrder.getUpdateUserId() + ", " + + "'" + productOrder.getUpdateUserName() + "' " + + ");\n\r"; + + // 7.2 订单明细数据 + orderMap.clear(); + orderMap.put("order_id", productOrder.getId()); + orderMap.put("enabled", 1); + orderMap.put("is_del", 0); + List<ProductOrderRecord> productOrderRecordList = productOrderRecordService.listByMap(orderMap); + + if ((productOrderRecordList != null) && (productOrderRecordList.size() > 0)) { + + for (i = 0; i < productOrderRecordList.size(); i++) { + ProductOrderRecord productOrderRecord = productOrderRecordList.get(i); + createTime = "'"+dateTimeFormat.format(productOrderRecord.getCreateTime())+"'"; + updateTime = (productOrderRecord.getUpdateTime() == null) ? "NULL" : "'"+dateTimeFormat.format(productOrderRecord.getUpdateTime())+"'"; + serviceSQL += "INSERT INTO order_detail VALUES( " + + productOrderRecord.getId() + ", " + + productOrderRecord.getOrderId() + ", " + + productOrderRecord.getProId() + ", " + + productOrderRecord.getProType() + ", " + + "'" + productOrderRecord.getProName() + "', " + + productOrderRecord.getAilightCount() + ", " + + productOrderRecord.getRecordCount() + ", " + + "'" + dateFormat.format(productOrderRecord.getProBegintime()) + "', " + + "'" + dateFormat.format(productOrderRecord.getProEndtime()) + "', " + + productOrderRecord.getIsShare() + ", " + + "0, 0, " + + // 服务验证字符串【合作商ID、医院ID、科室ID、产品ID、开始日期、结束日期、读片数量、报告数量、已使用读片数量、已使用报告数量】 + "'" + EncryptUtils.encryptAES((partnerDockingInfo.getPartnerId().toString() + "|" + + partnerDockingInfo.getHospitalId().toString() + "|" + + partnerDockingInfo.getDepartmentId().toString() + "|" + + productOrderRecord.getProId().toString() + "|" + + dateFormat.format(productOrderRecord.getProBegintime()) + "|" + + dateFormat.format(productOrderRecord.getProEndtime()) + "|" + + productOrderRecord.getAilightCount().toString() + "|" + + productOrderRecord.getRecordCount() + "|" + + "0|0"), SecurityConstants.AES_KEY) + "', " + + productOrderRecord.getIsDel() + ", " + + productOrderRecord.getEnabled() + ", " + + createTime + ", " + + productOrderRecord.getCreateUserId() + ", " + + "'" + productOrderRecord.getCreateUserName() + "', " + + updateTime + ", " + + productOrderRecord.getUpdateUserId() + ", " + + "'" + productOrderRecord.getUpdateUserName() + "' " + + ");\n\r"; + } + } else { + return "没有已开通的服务记录,请先充值,再生成SQL文"; + } + } + } else { + return "没有已开通的服务记录,请先充值,再生成SQL文"; + } + + + // 8、所有SQL文合并入基本的SQL中 + dbSql += hospitalSQL + departmentSQL + doctorSQL + partnerSQL + serverSQL + serviceSQL; + + } catch (Exception e) { e.printStackTrace(); } finally { try { fileImput.close(); - } catch (IOException e){ + } catch (IOException e) { e.printStackTrace(); } } + return dbSql; + } - - return dbSql; - }; + ; } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql index 9848bbc..d355d67 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql @@ -5,9 +5,9 @@ `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 '结果返回时间', + `ReturnTime` timestamp(0) NULL 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分析完成时间', + `CompleteTime` timestamp(0) NULL 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', @@ -143,7 +143,7 @@ `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; +) COMMENT = 'AI骨等级分析记录表' ; CREATE TABLE `child_info` ( `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '孩子唯一标识', @@ -165,8 +165,7 @@ `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 '孩子名字和出生日的普通索引' + UNIQUE INDEX `pk_id`(`id`) USING BTREE COMMENT '主键唯一索引' ) COMMENT = '孩子档案信息表'; CREATE TABLE `diagnose_record` ( @@ -310,80 +309,74 @@ PRIMARY KEY (`id`) ) COMMENT = '合作商信息表'; -CREATE TABLE `product_order` ( - `id` bigint(20) NOT NULL COMMENT '充值记录ID', +CREATE TABLE `order_detail` ( + `id` bigint(20) NOT NULL COMMENT '订单明细ID', + `order_id` bigint(20) NOT NULL COMMENT '订单id', + `product_id` bigint(20) NOT NULL COMMENT '产品ID', + `product_type` tinyint(1) NOT NULL COMMENT '产品类型(0:试用;1:正式)', + `product_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品名称', + `reading_count` int(6) NOT NULL DEFAULT 0 COMMENT '读片量', + `report_count` int(6) NOT NULL COMMENT '报告量', + `product_begintime` datetime(0) NULL DEFAULT NULL COMMENT '有效的开始时间', + `product_endtime` datetime(0) NULL DEFAULT NULL COMMENT '有效的结束时间', + `is_share` bit(1) NOT NULL COMMENT '是否共享 0否 1是', + `used_reading_count` int(6) NOT NULL DEFAULT 0 COMMENT '已用读片量', + `used_report_count` int(6) NULL DEFAULT 0 COMMENT '已生成报告量', + `validate_key` varchar(500) NULL COMMENT '服务验证串', + `is_del` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除,1删除,0未删除', + `enabled` bit(1) NULL DEFAULT b'1' COMMENT '状态,1启用,0停用', + `create_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_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 '更新人账号', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_sumption_other`(`product_id`, `order_id`) USING BTREE +) COMMENT = '订单(充值)明细表' ; + +CREATE TABLE `doctor_daily_statistics` ( + `id` bigint(20) NOT NULL COMMENT 'ID', + `hospital_id` bigint(20) NOT NULL COMMENT '医院ID', + `department_id` bigint(20) NOT NULL COMMENT '科室ID', + `doctor_id` bigint(20) NOT NULL COMMENT '医生ID', + `item_code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '统计项目编码(1201:报告数量;1301:读片数量)', + `item_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统计项目名称', + `collect_date` date NOT NULL COMMENT '统计日期', + `item_value` bigint(20) NULL DEFAULT NULL COMMENT '统计项目数值', + `is_del` bit(1) NULL DEFAULT b'0' COMMENT '是否删除(0:未删除;1:已删除)', + `enable` bit(1) NULL DEFAULT b'1' COMMENT '是否启用(0:未启用;1:已启用)', + `create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID', + `create_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者账号', + `create_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `update_user_id` bigint(20) NULL DEFAULT NULL COMMENT '更新者ID', + `update_user_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者账号', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + PRIMARY KEY (`id`) +) COMMENT = '医生日服务统计表'; + +CREATE TABLE `order_record` ( + `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 '合同签订日期', + `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_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_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 '更新人账号', - `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; +) COMMENT = '订单(充值)记录' ; CREATE TABLE `report_content` ( `id` bigint(20) NOT NULL COMMENT '唯一ID', @@ -448,7 +441,7 @@ PRIMARY KEY (`id`) ) COMMENT = '报告内容表'; -CREATE TABLE `server_Info` ( +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', @@ -460,7 +453,7 @@ `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 '应用系统唯一标识符', + `application_system_unique_code` varchar(500) 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', @@ -487,7 +480,7 @@ `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; +) COMMENT = '科室表' ; CREATE TABLE `sys_doctor` ( `id` bigint(20) NOT NULL COMMENT '医生ID', @@ -496,7 +489,7 @@ `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_logo` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL 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 '登录密码', @@ -518,7 +511,7 @@ `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; +) COMMENT = '医生信息表' ; CREATE TABLE `sys_hospital` ( `id` bigint(20) NOT NULL COMMENT '医院ID', @@ -551,7 +544,6 @@ `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; + PRIMARY KEY (`id`) +) COMMENT = '医院基础信息表' ; diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java index a19375d..523e0cc 100644 --- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java +++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java @@ -207,4 +207,10 @@ * rsa公钥 */ String RSA_PUBLIC_KEY = "pubkey.txt"; + + /** + * AES 加解密 Key + */ + String AES_KEY= "Kidgrow@2801"; + } diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html index 11028d9..35d66c0 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/partnerDockingInfo.html @@ -96,7 +96,7 @@ <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;"/> + <input name="serverMachineCode" type="text" class="layui-input" maxlength="100" style="width: 200px;"/> </div> </div> <div class="layui-form-item"> -- Gitblit v1.8.0