From e613dc170308423742325db4a8bd9a3e01659add Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Fri, 19 Feb 2021 10:28:11 +0800 Subject: [PATCH] 增加合作商信息管理功能 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql | 6 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java | 194 ++++++++++++++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java | 41 +++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java | 152 +++++++++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java | 34 ++++ 6 files changed, 426 insertions(+), 3 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java new file mode 100644 index 0000000..3d697e9 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java @@ -0,0 +1,34 @@ +package com.kidgrow.oprationcenter.mapper; + +import com.kidgrow.oprationcenter.model.PartnerDockingInfo; +import com.kidgrow.db.mapper.SuperMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +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 + */ +public interface PartnerDockingInfoMapper extends SuperMapper<PartnerDockingInfo> { + /** + * 分页查询合作商客户对接信息表列表 + * @param page + * @param params + * @return + */ + List<PartnerDockingInfo> findList(Page<PartnerDockingInfo> page, @Param("p") Map<String, Object> params); + + /** + * 根据PartnerDockingInfo对象当做查询条件进行查询 + * @param + * @return PartnerDockingInfo对象 + */ + PartnerDockingInfo findByObject(@Param("p") PartnerDockingInfo partnerDockingInfo); +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java new file mode 100644 index 0000000..6a43fc1 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java @@ -0,0 +1,41 @@ +package com.kidgrow.oprationcenter.mapper; + +import com.kidgrow.oprationcenter.model.PartnerInfo; +import com.kidgrow.db.mapper.SuperMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * @Description: 合作商信息表<br> + * @Project: 运营中心<br> + * @CreateDate: Created in 2020-12-08 14:35:30 <br> + * @Author: <a href="1024030301@kidgrow.com">LuLiQiang</a> + * @version 1.0 + */ +public interface PartnerInfoMapper extends SuperMapper<PartnerInfo> { + /** + * 分页查询合作商信息表列表 + * @param page + * @param params + * @return + */ + List<PartnerInfo> findList(Page<PartnerInfo> page, @Param("p") Map<String, Object> params); + + /** + * 根据PartnerInfo对象当做查询条件进行查询 + * @param + * @return PartnerInfo对象 + */ + PartnerInfo findByObject(@Param("p") PartnerInfo partnerInfo); + + /** + * 根据名称查询合作商名称列表 + * @param partnerName + * @return + */ + List<PartnerInfo> findByName(@Param("partnerName") String partnerName); +} 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 66befdd..a19ff55 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 @@ -292,7 +292,7 @@ updateTime + " " + ");\n\r"; - // 7、Todo 订单、订单明细(服务期限和数量)的数据生成 + // 7、订单、订单明细(服务期限和数量)的数据生成 // 7.1 订单数据 Map<String, Object> orderMap = new HashMap<>(); orderMap.put("hospital_id", partnerDockingInfo.getHospitalId()); 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 d355d67..00dfba6 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 @@ -1,6 +1,6 @@ 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 '光片名称', + `OriginName` varchar(255) 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:分析完成', @@ -176,7 +176,7 @@ `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 '光片名称', + `xray_name` varchar(255) 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:已生成)', @@ -404,6 +404,7 @@ `rus_bone_age` decimal(4, 2) NULL COMMENT '掌指骨骨龄', `rus_bone_age_twelve` varchar(50) NULL COMMENT '十二进制掌指骨骨龄', `rus_bone_age_percentile` varchar(8) NULL COMMENT '掌指骨骨龄百分位', + `rus_bone_age_score` decimal(4, 0) NULL COMMENT '掌指骨骨龄成熟度得分', `rg_level` varchar(5) NULL COMMENT '桡骨等级', `cg_level` varchar(5) NULL COMMENT '尺骨等级', `zgi_level` varchar(5) NULL COMMENT '掌骨I等级', @@ -420,6 +421,7 @@ `carpal_evaluation_method` varchar(20) NULL COMMENT '腕骨评价方法', `carpal_bone_age` decimal(4, 2) NULL COMMENT '腕骨骨龄', `carpal_bone_age_percentile` varchar(8) NULL COMMENT '腕骨骨龄百分位', + `carpal_bone_age_score` decimal(4, 0) 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 '钩骨等级', diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java new file mode 100644 index 0000000..b2c532a --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java @@ -0,0 +1,194 @@ +package com.kidgrow.oprationcenter.controller; + +import com.kidgrow.common.constant.SecurityConstants; +import com.kidgrow.common.controller.BaseController; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.common.utils.EncryptUtils; +import com.kidgrow.oprationcenter.model.PartnerDockingInfo; +import com.kidgrow.oprationcenter.service.IPartnerDockingInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @Description: 合作商客户对接信息表 + * @Project: 运营中心 + * @CreateDate: Created in 2020-12-08 14:35:33 <br> + * @Author: <a href="1024030301@kidgrow.com">LuLiQiang</a> + * @version: 1.0 + */ +@Slf4j +@RestController +@RequestMapping("/partnerdockinginfo") +@Api(tags = "合作商客户对接信息表") +public class PartnerDockingInfoController extends BaseController { + @Autowired + private IPartnerDockingInfoService partnerDockingInfoService; + + /** + * 列表 + */ + @ApiOperation(value = "查询列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") + }) + @GetMapping + public PageResult list(@RequestParam Map<String, Object> params) { + if (params.size() == 0) { + params.put("page", 1); + params.put("limit", 10); + } + return partnerDockingInfoService.findList(params); + } + + /** + * 查询 + */ + @ApiOperation(value = "查询") + @GetMapping("/{id}") + public ResultBody findById(@PathVariable Long id) { + PartnerDockingInfo model = partnerDockingInfoService.getById(id); + return ResultBody.ok().data(model).msg("查询成功"); + } + + /** + * 根据PartnerDockingInfo当做查询条件进行查询 + */ + @ApiOperation(value = "根据PartnerDockingInfo当做查询条件进行查询") + @PostMapping("/query") + public ResultBody findByObject(@RequestBody PartnerDockingInfo partnerDockingInfo) { + PartnerDockingInfo model = partnerDockingInfoService.findByObject(partnerDockingInfo); + return ResultBody.ok().data(model).msg("查询成功"); + } + + /** + * 新增or更新 + */ + @ApiOperation(value = "保存") + @PostMapping + public ResultBody save(@Valid @RequestBody PartnerDockingInfo partnerDockingInfo, BindingResult bindingResult) { + List<String> errMsg = new ArrayList<>(); + if (bindingResult.hasErrors()) { + for (ObjectError error : bindingResult.getAllErrors()) { + errMsg.add(error.getDefaultMessage()); + } + return ResultBody.failed().msg(errMsg.toString()); + } else { + // 为产品制作服务器识别码 + String accessKey = ""; + // 若服务器机器码不为空,则根据合作商、医院、科室、服务器机器码生成识别码。 + if ((partnerDockingInfo.getServerMachineCode() != null) && (!partnerDockingInfo.getServerMachineCode().isEmpty())){ + accessKey = EncryptUtils.encryptAES((partnerDockingInfo.getPartnerId().toString() + "|" + partnerDockingInfo.getHospitalId().toString() + "|" + partnerDockingInfo.getDepartmentId().toString() + "|" + partnerDockingInfo.getServerMachineCode()), SecurityConstants.AES_KEY); + + } + // 若服务器机器码为空,则根据合作商、医院、科室生成识别码。 + else { + accessKey = EncryptUtils.encryptAES((partnerDockingInfo.getPartnerId().toString() + "|" + partnerDockingInfo.getHospitalId().toString() + "|" + partnerDockingInfo.getDepartmentId().toString()), SecurityConstants.AES_KEY); + } + partnerDockingInfo.setAccessKey(accessKey); + boolean v = partnerDockingInfoService.saveOrUpdate(partnerDockingInfo); + if (v) { + return ResultBody.ok().data(partnerDockingInfo).msg("保存成功"); + } else { + return ResultBody.failed().msg("保存失败"); + } + } + } + + /** + * 更新状态 + */ + @ApiOperation(value = "更新状态") + @PostMapping("/updatestatus") + public ResultBody updateStatus(@RequestBody PartnerDockingInfo partnerDockingInfo) { + boolean v = partnerDockingInfoService.saveOrUpdate(partnerDockingInfo); + if (v) { + return ResultBody.ok().data(partnerDockingInfo).msg("状态更新成功"); + } else { + return ResultBody.failed().data("状态更新失败"); + } + } + + /** + * 删除 + */ + @ApiOperation(value = "删除") + @DeleteMapping("/{id}") + public ResultBody delete(@PathVariable Long id) { + boolean v = partnerDockingInfoService.removeById(id); + if (v) { + return ResultBody.ok().msg("删除成功"); + } else { + return ResultBody.failed().msg("删除失败"); + } + } + + /** + * 创建该客户所需的私有云数据库脚本 + * + * @param partnerDockingInfo + * @return + */ + @ApiOperation(value = "创建并下载私有云数据库脚本") + @PostMapping("/downloaddb") + public void downLoadDataBase(@RequestBody PartnerDockingInfo partnerDockingInfo, HttpServletResponse response) { + String dbSql = partnerDockingInfoService.createSQL(partnerDockingInfo); + + OutputStream out = null; + InputStream fileInputStream = null; + try { + //BASE64Decoder dencoder = new BASE64Decoder(); + byte[] arr = dbSql.getBytes(); + + // 设置输出的格式 + response.reset(); + response.setContentType("application/x-msdownload"); + response.addHeader("Content-Length", "" + arr.length); + response.addHeader("Content-Disposition", "attachment; filename=\"" + partnerDockingInfo.getHospitalName()+partnerDockingInfo.getDepartmentName() + ".sql\""); + + + + out = response.getOutputStream(); + fileInputStream = new ByteArrayInputStream(arr); + byte[] buffer = new byte[1024 * 10] ; + int len = 0; + while ((len = fileInputStream.read(buffer)) > 0) { + out.write(buffer, 0, len); + } + + } catch (Exception e) { + e.printStackTrace(); + + } finally { + + if (fileInputStream != null) { + try { + fileInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java new file mode 100644 index 0000000..913a1ee --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java @@ -0,0 +1,152 @@ +package com.kidgrow.oprationcenter.controller; + +import com.kidgrow.common.constant.SecurityConstants; +import com.kidgrow.common.controller.BaseController; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.common.utils.EncryptUtils; +import com.kidgrow.oprationcenter.model.PartnerInfo; +import com.kidgrow.oprationcenter.service.IPartnerInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * @Description: 合作商信息表 + * @Project: 运营中心 + * @CreateDate: Created in 2020-12-08 14:35:30 <br> + * @Author: <a href="1024030301@kidgrow.com">LuLiQiang</a> + * @version: 1.0 + */ +@Slf4j +@RestController +@RequestMapping("/partnerinfo") +@Api(tags = "合作商信息表") +public class PartnerInfoController extends BaseController{ + @Autowired + private IPartnerInfoService partnerInfoService; + + /** + * 列表 + */ + @ApiOperation(value = "查询列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") + }) + @GetMapping + public PageResult list(@RequestParam Map<String, Object> params) { + if(params.size()==0){ + params.put("page",1); + params.put("limit",10); + } + return partnerInfoService.findList(params); + } + + /** + * 查询 + */ + @ApiOperation(value = "查询") + @GetMapping("/{id}") + public ResultBody findById(@PathVariable Long id) { + PartnerInfo model = partnerInfoService.getById(id); + return ResultBody.ok().data(model).msg("查询成功"); + } + + /** + * 根据PartnerInfo当做查询条件进行查询 + */ + @ApiOperation(value = "根据PartnerInfo当做查询条件进行查询") + @PostMapping("/query") + public ResultBody findByObject(@RequestBody PartnerInfo partnerInfo) { + PartnerInfo model = partnerInfoService.findByObject(partnerInfo); + return ResultBody.ok().data(model).msg("查询成功"); + } + + /** + * 查询 + */ + @ApiOperation(value = "查询") + @GetMapping("/findByName") + public ResultBody findByName(@RequestParam String partnerName) { + if (!partnerName.isEmpty()) { + return ResultBody.ok().data(partnerInfoService.findByName(partnerName)).msg("查询成功"); + } else { + return ResultBody.ok().data(null).msg(""); + } + } + + /** + * 新增or更新 + */ + @ApiOperation(value = "保存") + @PostMapping + public ResultBody save(@Valid @RequestBody PartnerInfo partnerInfo, BindingResult bindingResult) { + List<String> errMsg= new ArrayList<>(); + if (bindingResult.hasErrors()) { + for (ObjectError error : bindingResult.getAllErrors()) { + errMsg.add(error.getDefaultMessage()); + } + return ResultBody.failed().msg(errMsg.toString()); + } else { + // 数据更新 + if (partnerInfo.getId() != null){ + boolean v= partnerInfoService.saveOrUpdate(partnerInfo); + if(v) { + return ResultBody.ok().data(partnerInfo).msg("保存成功"); + } + else { + return ResultBody.failed().msg("保存失败"); + } + } + // 数据新增 + else { + boolean v= partnerInfoService.saveOrUpdate(partnerInfo); + if(v) { + // 为合作商制作识别码【AES(ID)】 + String uniqueCode = EncryptUtils.encryptAES(partnerInfo.getId().toString(), SecurityConstants.AES_KEY); + partnerInfo.setPartnerUniqueCode(uniqueCode); + v= partnerInfoService.saveOrUpdate(partnerInfo); + if(v) { + return ResultBody.ok().data(partnerInfo).msg("保存成功"); + } + else { + return ResultBody.failed().msg("保存失败"); + } + } + else { + return ResultBody.failed().msg("保存失败"); + } + } + + } + } + + /** + * 删除 + */ + @ApiOperation(value = "删除") + @DeleteMapping("/{id}") + public ResultBody delete(@PathVariable Long id) { + boolean v= partnerInfoService.removeById(id); + if(v) { + return ResultBody.ok().msg("删除成功"); + } + else { + return ResultBody.failed().msg("删除失败"); + } + } +} -- Gitblit v1.8.0