package com.ltkj.web.jmreport; import cn.hutool.http.server.HttpServerRequest; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.enums.DataSourceType; import com.ltkj.db.DataSourceConfig; import com.ltkj.db.DataSourceContextHolder; import com.ltkj.hosp.domain.DictCommonHisConfig; import com.ltkj.hosp.domain.DictHosp; import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.service.DictCommonHisConfigService; import com.ltkj.hosp.service.IDictHospService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.omg.CORBA.Environment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; /** * @Company: 西安路泰科技有限公司 * @Author: lige * @Date: 2023/3/7 11:49 */ @RestController @RequestMapping("/report/jmreport") @Api(tags = "PC端 积木报表接口集") @Slf4j public class JimuController { @Autowired private DictCommonHisConfigService dictCommonHisConfigService; // @Value("${jimu.path}") private static String value; private static String CONFIG_PATH; @Autowired private TestMapper testMapper; @Autowired private DataSourceConfig dataSourceConfig; @Autowired private IDictHospService dictHospService; @Value ("${config.properties}") public void setConfigPath(String path) { CONFIG_PATH = path; try { FileInputStream inputStream = new FileInputStream(CONFIG_PATH); Properties props = new Properties(); props.load(inputStream); value= props.getProperty("jmurl"); } catch (IOException throwables) { throwables.printStackTrace(); } } // static { // Properties props = new Properties(); // try { // // 从文件中读取配置信息 // FileInputStream fis = null; // try { // fis = new FileInputStream("D:\\ltkjprojectconf\\sfconfig.properties"); // } catch (FileNotFoundException e) { // e.printStackTrace(); // } // props.load(fis); // fis.close(); // // 获取属性值并赋值 // } catch (Exception e) { // log.info("数据库连接失败 请联系管理员!"); // e.printStackTrace(); // } // value= props.getProperty("jmurl"); // } @GetMapping("/index") @ApiOperation(value = "index") // @PreAuthorize("@ss.hasPermi('report:jmreport:index')") public String index(){ return value+"/jmreport/list"; } // @GetMapping("/index") // @PreAuthorize("@ss.hasPermi('report:jimu:index')") // public int index(){ // return 1; // } @GetMapping("/view") @ApiOperation(value = "view") //@PreAuthorize("@ss.hasPermi('report:jimu:view')") public String view(HttpServletRequest request){ // dataSourceConfig.addDataSource(DataSourceType.MASTER.name()); // DataSourceContextHolder.setDataSourceKey(DataSourceType.MASTER.name()); // String hospId = request.getHeader("hospId"); // LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(DictHosp::getCode,hospId); // DictHosp hosp = dictHospService.getOne(wrapper); // if (hosp != null && StringUtil.isNotBlank(hosp.getDbname())) { // dataSourceConfig.addDataSource(hosp.getDbname()); // DataSourceContextHolder.setDataSourceKey(hosp.getDbname()); // } return value+"/jmreport/view"; } @GetMapping("/exportPdf") @ApiOperation(value = "exportPdf") public String exportPdf(){ return value+"/jmreport/exportPdfStream"; } // @GetMapping("/view") // @PreAuthorize("@ss.hasPermi('report:jimu:view')") // public int view(){ // return 1; // } @GetMapping("/getBingZhong") public String getBingZhongInfo(@RequestParam("start") String start, @RequestParam("end") String end,@RequestParam(required = true,value = "hospId") String hospId){ try { DictCommonHisConfig hisConfig = dictCommonHisConfigService.getOne(new LambdaQueryWrapper().eq(DictCommonHisConfig::getHospital, hospId)); dataSourceConfig.addDataSource(hisConfig.getDbName()); DataSourceContextHolder.setDataSourceKey(hisConfig.getDbName()); JSONObject object = JSONUtil.createObj(); object.putOpt("data",testMapper.getBingZhongInfo(start,end)); return JSONUtil.toJsonStr(object); }finally { DataSourceContextHolder.setDataSourceKey("default"); } } }