📄 wdscyhswdscblh.java
字号:
} catch (Exception e) {
log.sysError("生成一户式文档失败,纳税人内部码:" + nsrnbm +
",错误信息:" + e.getMessage());
String err = e.getMessage();
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21300";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21300";
}
}
} else {
err = "YCWDSC21300";
}
throw new Exception(err);
}
//生成对应一户式文档的名称,名称规则:纳税人编码+年月日(由于生成一户式文档的时间粒度不会小于一天,故
//只取年月日)
yhsWdName = nsrnbm + CurrYearMonthDay;
//生成文档,然后插入到数据库
//wd = new WDSCwdDAO();
wd.setM_conn(conn);
wd.setM_strWdNr(wdNr);
wd.setM_wdmc(yhsWdName);
if (!WDSCconstant.boolBatchProcess) {
wd.setNsrnbm(nsrnbm);
wd.setM_strWdscsj(this.CurrYearMonthDayHMS);
wd.setM_wdsm("一户式文档");
wd.setM_wdczy("000000");
wd.setM_wdmbbm(wdmb.getMB_DM());
wd.setM_wdnr(BLOB.empty_lob());
wd.setM_swjg("%");
}
try {
wd.insertWd();
} catch (Exception e) {
log.sysError("插入生成的一户式文档失败, 第" +
String.valueOf(totalNsr) + "个纳税人内部码:" +
nsrnbm + ",错误信息:" + e.getMessage());
String err = e.getMessage();
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21301";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21301";
}
}
} else {
err = "YCWDSC21301";
}
throw new Exception(err);
}
} catch (SQLException e) {
String errInfo = "出现SQLException错误,生成一户式文档退出,错误信息:" +
e.getMessage();
log.sysError(errInfo);
String err = e.getMessage();
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21302";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21302";
}
}
} else {
err = "YCWDSC21302"; //生成的一户式文档失败(SQLEXCEPTION)
}
throw new SQLException(err);
} catch (Exception e) {
String errInfo = "第" + String.valueOf(totalNsr) +
"个纳税人内部编码:" + nsrnbm +
" 生成一户式文档失败,错误信息:\n" + e.getMessage() +
"。\n";
log.sysError(errInfo);
String err = e.getMessage();
if (err != null) {
if (err.length() != 11) {
err = "YCWDSC21303";
} else {
if (err.indexOf("YCWDSC2") == -1) {
err = "YCWDSC21303";
}
}
} else {
err = "YCWDSC21303"; //生成的一户式文档失败(EXCEPTION)
}
throw new SQLException(err);
}
}
if (type.equals("single")) {
break;
}
if (m_end > 0) {
if (begin > m_end) {
break;
}
}
} //end while
t_end = Calendar.getInstance().getTimeInMillis();
tempStr = "本次一户式文档生成完毕!生成文档 " + String.valueOf(totalNsr) +
"份,共耗时:" + String.valueOf(t_end - t_run) +
"毫秒,其中文档生成耗时:" + String.valueOf(t_end - t_begin) + "毫秒!";
System.out.println(tempStr);
log.sysInfo(tempStr);
sInfo.append(tempStr);
} catch (SQLException eSql) {
eSql.printStackTrace();
throw new SQLException(eSql.getMessage());
} catch (Exception e) {
e.printStackTrace();
throw new Exception(e.getMessage());
} finally {
if (conn != null) conn.close();
}
return sInfo.toString();
}
/**
* 生成文档(分析模板,将模板指标信息填入一户式文档模板生成一户式文档)
*
* @param 模板指标
* @param wdmb
* @return 一户式文档
* @roseuid 42B6352801A5
*/
//USED
public String makeWd(WDSCwdmbDAO wdmb) throws Exception {
if (wdmb == null) {
throw new Exception("参数为空!");
}
StringBuffer sBuffer = null;
String key = "", keyValue = "";
Vector vNewZbMsg = null, vvNewZbMsg = null, vZb = null, vZbNr = null;
WDSCwdmbzbDAO wdzb = new WDSCwdmbzbDAO();
List list = null;
try {
//一户式文档模板
sBuffer = wdmb.getMB_NR_BUFFER();
vZb = wdmb.getMB_ZB_MSG();
//查找是否有循环标志,将循环部分替换,返回内容为:置换后的字符串,添加指标后的指标
list = replaceLoopStringByKey(constant.loopLeft, constant.loopRight, sBuffer, vZb);
sBuffer = (StringBuffer)list.get(0);
vvNewZbMsg = (Vector)list.get(1);
vNewZbMsg = new Vector();
if (vvNewZbMsg != null) {
for (int i=0; i<vvNewZbMsg.size(); i++) {
Vector vv=(Vector)vvNewZbMsg.get(i);
if (vv != null) {
for (int j=0; j<vv.size(); j++) {
vNewZbMsg.add(vv.get(j));
}
}
}
}
if (vNewZbMsg.size() > 0) {
list = replaceLoopStringByKey(constant.sumLeft,
constant.sumRight, sBuffer,
vNewZbMsg);
sBuffer = (StringBuffer) list.get(0);
}
//////////////////////////////////////////////
wdzb.setZB_DM(WDSCconstant.WDSCSJ); //WDSCSJ
Vector vtemp = new Vector();
vtemp.add(this.CurrYearMonthDayHMS);
wdzb.setZB_NR(vtemp);
vZb.add(wdzb);
vZb = constant.addSysZb(vZb);//增加系统指标
///////////////////////////////////////////////
int pos = 0, keyLen = 0, izbLen = 0;
izbLen = vZb.size();
for (int i = 0; i < izbLen; i++) {
wdzb = (WDSCwdmbzbDAO) vZb.get(i);
if (wdzb != null) {
key = wdzb.getZB_DM();
vZbNr = wdzb.getZB_NR();
//如果系统的指标前面带有sysflag(sys:)标记,则处理流程如下
keyLen = key.length();
while ((pos = sBuffer.indexOf(WDSCconstant.flagLeft + key + WDSCconstant.flagRight,
pos)) != -1) {
if (key.indexOf(WDSCconstant.sysflag) >= 0) {
keyValue = "通过接口取得系统参数信息(带有sys:标记)";
//查找指标名称为: key.substring(key.indexOf(sysflag) + sysflag.length() + flagLeft.length()));
sBuffer.replace(pos,
pos + keyLen +
(WDSCconstant.flagLeft.length() +
WDSCconstant.flagRight.length()), keyValue);
} else {
if ((vZbNr != null) && (vZbNr.size() >= 1)) {
keyValue = (String) vZbNr.get(0);
if (keyValue == null) {
//取系统文书号
if (key.equals(constant.KEY_SYS_WSH)) {
keyValue = constant.getSysWsh();
} else {
keyValue = " ";
}
}
sBuffer.replace(pos,
pos + keyLen +
(WDSCconstant.flagLeft.length() +
WDSCconstant.flagRight.length()), keyValue);
} else {
sBuffer.replace(pos,
pos + keyLen +
(WDSCconstant.flagLeft.length() +
WDSCconstant.flagRight.length()), " ");
}
}
pos = pos + 1;
if (pos > sBuffer.length()) {
break;
}
} //end while
//处理带有系统标记的指标
//如果系统的指标前面没有带 sysflag(sys:)标记,则处理流程如下
pos = 0;
keyLen = key.length() + WDSCconstant.sysflag.length();
while ((pos = sBuffer.indexOf(WDSCconstant.flagLeft + WDSCconstant.sysflag + key +
WDSCconstant.flagRight, pos)) != -1) {
keyValue = "通过接口取得系统参数信息(没有带sys:标记)";
sBuffer.replace(pos,
pos + keyLen +
(WDSCconstant.flagLeft.length() + WDSCconstant.flagRight.length()),
keyValue);
pos = pos + 1;
if (pos > sBuffer.length()) {
break;
}
} //end while
} //end wdzb != null
}
/*
//将字符流保存为临时文件
StringReader sReader = new StringReader(sBuffer.toString());
StringWriter sWriter = new StringWriter();
BufferedReader inReader = new BufferedReader(sReader);
long time = System.currentTimeMillis();
fileName = this.double2String(time);
fileName = TempWdFileName;
//BufferedWriter outWriter = new BufferedWriter(new FileWriter(TempWdFileName));
BufferedWriter outWriter = new BufferedWriter(sWriter);
int c = 0;
while ((c=inReader.read()) != -1) {
outWriter.write(c);
}
*/
/*
char ch[] = new char[1024];
while ((inReader.read(ch)) != -1) {
outWriter.write(ch);
}*/
//sReader.close();
//inReader.close();
//outWriter.close();
} catch (Exception e) {
System.out.println(e.getMessage());
throw new Exception(e.getMessage());
} finally {
}
return sBuffer.toString();
}
//通过type查找纳税人信息
//作为文档生成外部接口,获得一户式指标信息
//返回vector:vector包含hashTable信息
//hashTable中保存指标名称和指标值,指标名称和表T_WDSC_WDMBZB中定义指标一致
//USED
public Vector getYhsMsg(String type, String nsrbm, int begin, int end) throws
Exception {
Vector v = new Vector();
type = ((type == null) ? "" : type.trim());
nsrbm = ((nsrbm == null) ? "" : nsrbm.trim());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -