📄 read
字号:
package com.zx.gwgl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import com.work.db.*;
import com.work.exception.OurException;
public class ShouWenDjTask {
/**
* 为了实现发文流程中的数据自动登记;<br>
* 实现思路:首先将发文流程中的数据从zx_fawen表中查询出来,
* 然后插入到表zx_fawendj中去,同时将zx_fawen表中符合条件记录的sfygd设置为1
*
* @return
*/
public void shouWenDj() throws OurException{
String fawenSql = "select swsj as rq," + // 日期 收文时间
"wenhao as lwzh," + // 来文字号 文号
"lwjg ," + // 来文机关 来文机关
"cwrq," + // 成文日期 成文日期
"ys," + // 页数 页数
"wjbt," + // 文件标题 文件标题
"swbh," + // 收文编号 收文编号
"'' as sjr," + // 收件人 手工录入,默认为空字符串
"id as sw_id " + // 系统id 对应一个流程实例编号(就是zx_shouwen的id)
"from zx_shouwen " + "where sfygd=0";
List srcList = DbUtil.executeQueryList(fawenSql);
if(srcList == null ){
System.out.println("没有需要归档的收文流程记录。");
return ;
}
int LEN = srcList.size(); //需要登记的收文流程记录数;
System.out.println("归档收文流程的记录数为:"+LEN+"条。");
String djSql = "insert into zx_shouwendj "
+ "(rq,lwzh,lwjg.cwrq,ys,wjbt,swbh,sjr,sw_id) values (?,?,?,?,?,?,?,?,?)";
String sfygdSql = "update zx_shouwendj set sfygd=1 where sw_id =? "; //更新发文流程中对应的记录数
String rq = "";
String lwzh ="";
String lwjg ="";
String cwrq ="";
int ys =0;
String wjbt ="";
String swbh = "";
String sjr="";
String sw_id = "";
Connection conn = DbConnection.getConn();
if(conn == null )
throw new OurException("获取数据库连接失败!");
PreparedStatement pst = null;
PreparedStatement pst2 = null;
try{
conn.setAutoCommit(false);
pst = conn.prepareStatement(djSql);
pst2 = conn.prepareStatement(sfygdSql);
for(int i=0;i<LEN;i++){
HashMap map = (HashMap)srcList.get(i);
rq = (String)map.get("rq");
lwzh = (String)map.get("lwzh");
lwjg = (String)map.get("lwjg");
cwrq = (String)map.get("cwrq");
ys = ((Integer)map.get("ys")).intValue();
wjbt = (String)map.get("wjbt");
swbh = (String)map.get("swbh");
sjr = (String)map.get("sjr");
sw_id = (String)map.get("sw_id");
pst.setString(1,rq);
pst.setString(2,lwzh);
pst.setString(3,lwjg);
pst.setString(4,cwrq);
pst.setInt(5,ys);
pst.setString(6,wjbt);
pst.setString(7,swbh);
pst.setString(8,sjr);
pst.setString(9,sw_id);
pst2.setString(1,sw_id);
}
int result = pst.executeUpdate();
int result2 = pst2.executeUpdate();
//将已经归档的zx_shouwen中对应的记录设置sfygd为1
conn.commit();
System.out.println("共"+result+"条收文流程记录登记成功!共"+result2+"条收文流程记录设置登记标志成功!");
if(result ==result2){
System.out.println("成功的自动登记了"+result+"条收文!");
}else{
conn.rollback();
throw new OurException("由于登记了"+result+"记录,更新了"+result2+"条记录!所以登记失败!" +
"估计是记录数目太多,超出了PreparedStatement的缓存数!");
}
}catch(SQLException e){
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
// String temp =" select swsj as rq,wenhao as lwzh,lwjg ,cwrq,ys,wjbt,swbh,'' as sjr," +
// "id as sw_id ,0 as sfygd from zx_shouwen where sfygd=0";
throw new OurException("收文流程自动登记执行失败!请通知管理员!",e);
}finally{
DbUtil.closeStatement(pst2);
DbUtil.closeStatement(pst);
DbUtil.closeConnection(conn);
}
}
}
// 收文流程中的数据登记()
//
// 日期 收文时间
// 来文字号 文号
// 来文机关 来文机关
// 成文日期 成文日期
// 页数 页数
// 文件标题 文件标题
// 收文编号 收文编号
// 收件人 手工录入
// 系统id 对应一个流程实例编号(就是zx_shouwen的id)
//
// 然后将zx_shouwen中的是否预归档置为1
//
// insert into zx_shouwendj (rq,lwzh,lwjg.cwrq,ys,wjbt,swbh,sjr,sw_id)
//
// values (select swsj,wenhao,lwjg,cwrq,ys,wjbt,swbh,'',id from zx_shouwen where
// sfygd=0)
//
//
// insert into zx_shouwendj
// select swsj as rq,wenhao as lwzh,lwjg ,cwrq,ys,wjbt,swbh,'' as sjr,id as
// sw_id ,0 as sfygd
// from zx_shouwen where sfygd=0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -