forked from kidgrow-microservices-platform

luliqiang
2021-02-19 e613dc170308423742325db4a8bd9a3e01659add
增加合作商信息管理功能
4 files added
2 files modified
429 ■■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java 34 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java 41 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/PartnerDockingInfoServiceImpl.java 2 ●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/template/imageServer_template.sql 6 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java 194 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java 152 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerDockingInfoMapper.java
New file
@@ -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);
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/PartnerInfoMapper.java
New file
@@ -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);
}
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());
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 '钩骨等级',
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerDockingInfoController.java
New file
@@ -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();
                }
            }
        }
    }
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/PartnerInfoController.java
New file
@@ -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("删除失败");
        }
    }
}