forked from kidgrow-microservices-platform

kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDepartmentController.java
@@ -6,8 +6,9 @@
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.model.SysOrganization;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.common.model.SysUser;
import com.kidgrow.common.utils.AesUtils;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.usercenter.model.SysDepartment;
import com.kidgrow.usercenter.service.ISysDepartmentService;
import com.kidgrow.usercenter.service.ISysOrganizationService;
@@ -22,7 +23,12 @@
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;
@@ -73,6 +79,7 @@
        SysDepartment model = sysDepartmentService.getById(id);
        return ResultBody.ok().data(model).msg("查询成功");
    }
    /**
     * 查询
     */
@@ -82,6 +89,7 @@
        boolean isPays = sysDepartmentService.updatePay(departmentId,isPay);
        return ResultBody.ok().data(isPays).msg("操作成功");
    }
    /**
     * 查询
     */
@@ -91,6 +99,7 @@
        SysDepartment model = sysDepartmentService.getById(departmentId);
        return ResultBody.ok().data(model.getIsPay()).msg("操作成功");
    }
    /**
     * 根据SysDepartment当做查询条件进行查询
     */
@@ -115,15 +124,16 @@
    /**
     * 检查科室名是否存在
     *
     * @param hosId
     * @param departmentName
     * @return
     */
    private Boolean departMentNameIsUsed(Long hosId,String departmentName)
    {
    private Boolean departMentNameIsUsed(Long hosId, String departmentName) {
        String departName=sysDepartmentService.checkDepartmentName(hosId,departmentName);
        return StringUtils.isNotBlank(departName);
    }
    /**
     * 新增or更新
     */
@@ -204,6 +214,7 @@
    public ResultBody findListByHospitalId(@RequestParam Map<String, Object> params) {
        return sysDepartmentService.findListByHospitalId(params);
    }
    @PostMapping
    public ResultBody update(@RequestBody SysDepartment sysDepartment){
        if(sysDepartment.getId()==null){
@@ -218,6 +229,7 @@
            return ResultBody.failed("更新数据失败");
        }
    }
    /**
     *运动处方调用 是否开通服务
     */
@@ -230,4 +242,120 @@
        return sysDepartmentService.getHealth(sysDepartment);
    }
    /**
     * 下载私有云服务器License文件
     *
     * @param departmentId 科室ID
     * @param response     HttpServletResponse
     * @return void
     */
    @PostMapping("/downloadLicense")
    public void downloadLicense(@RequestParam Long departmentId, HttpServletResponse response) {
        SysDepartment department = sysDepartmentService.getById(departmentId);
        String serverLicense = "";
        OutputStream out = null;
        InputStream fileInputStream = null;
        try {
            if (department != null) {
                if (department.getIsPrivate() == 1) {
                    if ((department.getPrivateServerGuuid() != null) && (!department.getPrivateServerGuuid().isEmpty())) {
                        serverLicense = AesUtils.encrypt(department.getPrivateServerGuuid());
                    } else {
                        serverLicense = String.format("此科室【%s】未设置服务器GUUID,不能下载私有云服务器License", departmentId);
                        log.error(serverLicense);
                    }
                } else {
                    serverLicense = String.format("此科室【%s】非私有云客户,不能下载私有云服务器License", departmentId);
                    log.error(serverLicense);
                }
            } else {
                serverLicense = String.format("此科室【%s】不存在,不能下载私有云服务器License", departmentId);
                log.error(serverLicense);
            }
            byte[] arr = serverLicense.getBytes();
            // 设置输出的格式
            response.reset();
            response.setContentType("application/x-msdownload");
            response.addHeader("Content-Length", "" + arr.length);
            response.addHeader("Content-Disposition", "attachment; filename=\"" + department.getDepartmentName() + "License.txt\"");
            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();
            //log.error("私有云服务器Guuid加密出错");
        } finally {
            if (fileInputStream != null) {
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * 下载私有云本地数据库初始化数据
     * @param hospitalId
     * @param departmentId
     * @param response
     * @return void
     */
    @PostMapping("/downloadData")
    public void downloadPrivateData(@RequestParam("hospitalId") Long hospitalId,@RequestParam("departmentId") Long departmentId, HttpServletResponse response){
        String dataSql = "";
        dataSql = sysDepartmentService.initPrivateData(hospitalId,departmentId);
        OutputStream out = null;
        InputStream fileInputStream = null;
        try {
            byte[] arr = dataSql.getBytes();
            // 设置输出的格式
            response.reset();
            response.setContentType("application/x-msdownload");
            response.addHeader("Content-Length", "" + arr.length);
            response.addHeader("Content-Disposition", "attachment; filename=\"" + departmentId.toString() + ".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();
                }
            }
        }
    }
}