读取 excel文件组装字典数据
package com.murong.ecp.app.mbu.action.bmbuurm8;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.murong.ecp.app.mbu.common.BuiMessageCode;
import com.murong.ecp.app.mbu.dao.bmbuurm8.XyHealthDictMapper;
import com.murong.ecp.app.pub.atc.PUBATCUtil;
import com.yuangou.ecp.biz.transengine.AbstractTransaction;
import com.yuangou.ecp.biz.transengine.Utils;
import com.yuangou.ecp.bp.core.common.exception.YGException;
import com.yuangou.ecp.bp.core.common.message.YGBizMessage;
import com.yuangou.ecp.bp.core.common.message.YGBizMessageContext;
import com.yuangou.ecp.bp.core.common.message.YGEDB;
import com.yuangou.ecp.bp.core.common.yglog4j.Logger;
import com.yuangou.ecp.bp.core.common.yglog4j.YGLogger;
@Service("healthdictexport")
public class XyHealthDictExportAction extends AbstractTransaction{
@Autowired
XyHealthDictMapper xyHealthDictMapper;
@Override
public void doProcess(YGBizMessageContext bizCtx) throws YGException {
YGBizMessage yGBizMessage = bizCtx.getCurrentMsg();
Logger logger = YGLogger.getLogger(yGBizMessage);
YGEDB edb = yGBizMessage.getEDBBody();
edb.setData("rsp_ajx", "true");
PUBATCUtil.GDASetMsg(bizCtx, BuiMessageCode.SUCCESS, "");
logger.info("导出医疗字典到js文件start");
logger.info("开启游标:");
PUBATCUtil.openCursor(bizCtx, "qryHealthDictList", "healthDictListCursor");
logger.info("开启游标:");
List<String> typList = new ArrayList<>();
//将数据拼接成字符串
StringBuffer stringBuffer=new StringBuffer("var mrdict = new Object();");
int i=0;
while (true) {
PUBATCUtil.fetchCursor(bizCtx, "healthDictListCursor", "healthDictListCursor"+i);
if (Utils.eval(bizCtx, "~retcod=2")) {
logger.info("关闭游标:11");
PUBATCUtil.closeCursor(bizCtx, "healthDictListCursor");
logger.info("关闭游标:12");
break;
}else{
String idStr = edb.getData("healthDictListCursor"+i+".id");
String textStr = edb.getData("healthDictListCursor"+i+".text");
String typStr = edb.getData("healthDictListCursor"+i+".typ");
//直接拼接
logger.info("i======================================="+i);
if (typList.contains(typStr)) {
stringBuffer.append(",").append("\""+idStr+"\":\""+textStr+"\"");
}else {
//先将typName放入Set,再拼接
typList.add(typStr);
//非首次进入判断才追加"}"
if (i != 0) {
stringBuffer.append("};");
}
stringBuffer.append("\n").append("mrdict.").append(typStr).append("={\""+idStr+"\":\""+textStr+"\"");
}
i++;
}
}
logger.info("游标执行总数="+i);
logger.info("关闭游标:21");
PUBATCUtil.closeCursor(bizCtx, "healthDictListCursor");
logger.info("关闭游标:22");
String line = "\r\n";
String t ="\t";
String fn = "Formatter = function(val,row) {"+line+t+
"var data = mrdict.";
String fn1 = line+t+"try { "+line+t+
"if( !data.hasOwnProperty(val) ) {"+line+t+
"return val;"+line+t+
"}"+line+t+
" } catch(error) {"+line+t+
"console.error(error);"+line+t+
"return val;"+line+t+
" }"+line+t+
"return data[val];"+line+
"}";
stringBuffer.append("};");
for (int j = 0; j < typList.size(); j++) {
stringBuffer.append("\n").append("mrdict.").append(typList.get(j)).append(fn).append(typList.get(j)+";").append(fn1);
}
//上传到服务器的位置
String path = "/home/iver/ejbs/mrbui/healthDict.js";
try {
OutputStream output = new FileOutputStream(path);
byte[] date=stringBuffer.toString().getBytes();
output.write(date);
output.close();
logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
} catch (Exception e) {
logger.info("医疗字典导出js文件异常");
logger.info(e);
}
PUBATCUtil.GDASetMsg(bizCtx, "CMM00000", "");
logger.info("导出医疗字典到js文件over");
}
}
读取 excel文件组装字典数据的更多相关文章
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- matlab读取excel文件中的数据
1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...
- gridview读取Excel文件中的数据,并将其导入数据库
原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器 string filePath = "" ...
- java 读取Excel文件并数据持久化方法Demo
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...
- spring boot 使用 POI 读取Excel文件
内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...
- 如何在C#中打开和读取EXCEL文件
这篇文章向您展示如何在C#Windows Forms Application中使用ExcelDataReader,ExcelDataReader.DataSet打开和读取Excel文件.创建一个新的W ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
- python xlwt模块生成excel文件并写入数据 xlrd读取数据
python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...
随机推荐
- [BUGCASE]FixedDataTable表格数据渲染错误
一.问题描述 广告配置中绑定第三方规格ID表格数据,有一部分展示错乱,具体如下: 表格组件使用 Facebook 的 (fixed-data-table) 组件 二.原因分析 1.检查props 先查 ...
- How tomcat works(深入剖析tomcat)生命周期Lifecycle
How Tomcat Works (6)生命周期Lifecycle 总体概述 这一章讲的是tomcat的组件之一,LifeCycle组件,通过这个组件可以统一管理其他组件,可以达到统一启动/关闭组件的 ...
- Mysql主从同步机制
1.1 主从同步介绍和优点 *在多台数据服务器中,分为主服务器和从服务器.一台主服务器对应多台从服务器. *主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序读取数据 *主服务器写 ...
- 在 Windows 中使用 C# 启动其他程序
因为某些原因需要自动启动一个 Winform 程序,可能是因为第三方资源的原因,使用 System.Diagnostics.Process 无法成功启动 (可以看到界面,但是会报 Unhandled ...
- 基于CefSharp开发(二)自定义浏览器窗体
上一篇 https://www.cnblogs.com/mchao/p/13914726.html 简单了解了CefSharp引用配置但页面光秃秃的,这一篇着手开发简单浏览器窗体 一.Edge浏览器窗 ...
- Linux之【安装系统后的调优和安全设置】
关闭SElinux功能 •修改配置文件使其永远生效 第一种修改方法vi vi /etc/sysconfig/selinuc 或者 vi /etc/selinux/config修改: SELINUX=d ...
- 最常用的分布式ID解决方案,你知道几个
一.分布式ID概念 说起ID,特性就是唯一,在人的世界里,ID就是身份证,是每个人的唯一的身份标识.在复杂的分布式系统中,往往也需要对大量的数据和消息进行唯一标识.举个例子,数据库的ID字段在单体的情 ...
- 4、Spring Cloud Eureka
1.Eureka简介 (1).CAP简介 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition toleran ...
- 第十四章、Model/View开发:Model/View架构程序设计模式
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...
- PyQt学习随笔:槽函数获取信号发送对象的方法
在PyQt中,相似控件发送的信号可以每个控件信号对应一个槽函数,也可以将相似控件的相同信号对应到一个槽函数,但如果槽函数相同,怎么区分信号是谁发送的呢?那就是在信号函数中使用sender()函数获取信 ...