ENDRPrint/.svn/pristine/60/602656f6c2884b732a0e42f3d9015185e584e1a6.svn-base

1185 lines
38 KiB
Plaintext
Raw Normal View History

2024-08-14 10:33:27 +07:00
package th.co.muangthai.endrprint.dao.serviceImp;
import oracle.jdbc.OracleTypes;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import th.co.muangthai.endrprint.dao.serviceInterface.CommonServiceInterface;
import th.co.muangthai.endrprint.model.bean.form.MsgErrorForm;
import th.co.muangthai.endrprint.model.bean.form.SqlShowForm;
import th.co.muangthai.endrprint.model.bean.form.data.PrinterDataTxtForm;
import th.co.muangthai.endrprint.model.bean.form.data.PrintingDataForm;
import th.co.muangthai.endrprint.model.bean.form.master.EndrProvincialForm;
import th.co.muangthai.endrprint.model.bean.form.master.EndrUserLoginForm;
import th.co.muangthai.endrprint.model.bean.form.master.PrinterForm;
import th.co.muangthai.endrprint.model.bean.form.master.TeamForm;
import th.co.muangthai.endrprint.model.bean.tmp.EndrTmpDataPrintBean;
import th.co.muangthai.endrprint.model.hibernate.DatasourceUtil;
import th.co.muangthai.endrprint.model.hibernate.HibernateUtil;
import th.co.muangthai.endrprint.util.DateUtil;
import th.co.muangthai.endrprint.util.TextContent;
import th.co.muangthai.endrprint.util.VSMUtil;
import java.io.*;
import java.math.BigDecimal;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
/**
* Information management CommonService Implement
*/
public class CommonServiceImp implements CommonServiceInterface {
private Logger log = Logger.getLogger(CommonServiceImp.class);
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", VSMUtil.LOCALE);
private SimpleDateFormat dateFormat2 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", VSMUtil.LOCALE);
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", VSMUtil.LOCALE);
/**
* Check Connect Database
* @return Boolean Result
*/
public boolean chkConnectDB(){
Session session = null;
try {
session = HibernateUtil.getCurrentSession();
return true;
}catch (Exception e){
e.printStackTrace();
}finally {
HibernateUtil.closeSession( session );
}
return false;
}
/**
* Update Table
* @param obj -Data Object
* @return Boolean Result
*/
public boolean updateTable(Object obj){
Session session = HibernateUtil.getCurrentSession();
Transaction tx = session.beginTransaction();
try {
if( obj instanceof List ){
Iterator iter = ((List)obj ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj );
}
tx.commit();
//HibernateUtils.closeSession();
return true;
}catch (Exception e) {
e.printStackTrace();
tx.rollback();
//HibernateUtils.closeSession();
return false;
}finally{
HibernateUtil.closeSession( session );
}
}
/**
* Update Table
* @param obj -Data Object
* @param obj2 -Data Object
* @param obj3 -Data Object
* @param obj4 -Data Object
* @param obj5 -Data Object
* @return Boolean Result
*/
public boolean updateTable(Object obj,Object obj2,Object obj3,Object obj4,Object obj5){
Session session = HibernateUtil.getCurrentSession();
Transaction tx = session.beginTransaction();
try {
if(null != obj){
if( obj instanceof List ){
Iterator iter = ((List)obj ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj );
}
}
if(null != obj2){
if( obj2 instanceof List ){
Iterator iter = ((List)obj2 ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj2 );
}
}
if(null != obj3){
if( obj3 instanceof List ){
Iterator iter = ((List)obj3 ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj3 );
}
}
if(null != obj4){
if( obj4 instanceof List ){
Iterator iter = ((List)obj4 ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj4 );
}
}
if(null != obj5){
if( obj5 instanceof List ){
Iterator iter = ((List)obj5 ).iterator();
while( iter.hasNext() ){
session.saveOrUpdate( iter.next() );
}
}else{
session.saveOrUpdate( obj5 );
}
}
tx.commit();
//HibernateUtils.closeSession();
return true;
}catch (Exception e) {
log.error(e.toString(), e);
//e.printStackTrace();
tx.rollback();
//HibernateUtils.closeSession();
throw new RuntimeException(e.toString(), e);
}finally{
HibernateUtil.closeSession( session );
}
}
/**
* Search Class By Primary key
* @param obj -Data Object
* @param pk -Primary key
* @return Object Result
*/
public Object searchClassByPK(Object obj , BigDecimal pk) {
Object searchObj = null;
Session session = HibernateUtil.getCurrentSession();
try {
if(VSMUtil.isNotEmpty(pk)){
searchObj = session.get( obj.getClass() , pk );
}
}
catch (Exception e) {
e.printStackTrace();
}finally{
HibernateUtil.closeSession( session );
}
return searchObj;
}
/**
* Search Class By Primary key BigDecimal
* @param obj -Data Object
* @param pk -Primary key
* @return Object Result
*/
public Object searchClassByPKBigDecimal(Object obj , BigDecimal pk) {
Object searchObj = null;
Session session = HibernateUtil.getCurrentSession();
try {
if(VSMUtil.isNotEmpty(pk)){
searchObj = session.get( obj.getClass() , pk );
}
}
catch (Exception e) {
e.printStackTrace();
}finally{
HibernateUtil.closeSession( session );
}
return searchObj;
}
/**
* Search Class By Primary key
* @param obj -Data Object
* @param pk -Primary key
* @return Object Result
*/
public Object searchClassByPK(Object obj , String pk) {
Object searchObj = null;
Session session = HibernateUtil.getCurrentSession();
try {
if(VSMUtil.isNotEmpty(pk)){
searchObj = session.get( obj.getClass() , pk );
}
}
catch (Exception e) {
e.printStackTrace();
}finally{
HibernateUtil.closeSession( session );
}
return searchObj;
}
/**
* Search user login by package
* @param userId - userId
* @param passWord - password
* @return EndrUserLoginForm - data
*/
public EndrUserLoginForm searchUserLoginBeanByUserId(String userId,String passWord){
log.info("searchUserLoginBeanByUserId");
EndrUserLoginForm dbn = null;
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_user_login(?,?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR );
cstm.setString(2, userId);
cstm.setString(3, passWord);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
while (rs.next()){
dbn = new EndrUserLoginForm();
dbn.setUserId(rs.getString("user_id"));
dbn.setUserPassword(rs.getString("user_password"));
dbn.setFirstname(rs.getString("firstname"));
dbn.setLastname(rs.getString("lastname"));
dbn.setTel(rs.getString("tel"));
dbn.setUserName(rs.getString("user_name"));
dbn.setCreateBy(rs.getString("create_by"));
dbn.setCreateDate(rs.getTimestamp("create_date"));
dbn.setUpdateBy(rs.getString("update_by"));
dbn.setUpdateDate(rs.getTime("update_date"));
dbn.setOperId(rs.getString("oper_id"));
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return dbn;
}
/**
* Search user login by package
* @param userId - userId
* @param firstname - firstname
* @param lastname - lastname
* @param operId - operId
* @return List fo EndrUserLoginForm - data
*/
public List<EndrUserLoginForm> searchLstUserLoginBeanFormPkg(String userId,String firstname,String lastname,String operId){
log.info("searchLstUserLoginBeanFormPkg");
EndrUserLoginForm dbn = null;
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
List<EndrUserLoginForm> lst = new ArrayList<EndrUserLoginForm>();
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_user_login_lst(?,?,?,?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR);
cstm.setString(2, userId);
cstm.setString(3, firstname);
cstm.setString(4, lastname);
cstm.setString(5, operId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
while (rs.next()){
dbn = new EndrUserLoginForm();
dbn.setUserId(rs.getString("user_id"));
dbn.setUserPassword(rs.getString("user_password"));
dbn.setFirstname(rs.getString("firstname"));
dbn.setLastname(rs.getString("lastname"));
dbn.setTel(rs.getString("tel"));
dbn.setUserName(rs.getString("user_name"));
dbn.setCreateBy(rs.getString("create_by"));
dbn.setCreateDate(rs.getTimestamp("create_date"));
dbn.setUpdateBy(rs.getString("update_by"));
dbn.setUpdateDate(rs.getTime("update_date"));
dbn.setOperId(rs.getString("oper_id"));
lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Search ENDR data print
* @param dataForm - PrintingDataForm
* @return - List of PrintingDataForm
*/
public List<PrintingDataForm> searchPrintingDataFormPkg(PrintingDataForm dataForm){
List<PrintingDataForm> lst = new ArrayList<PrintingDataForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_data_print(?,?,?,?,?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR );
cstm.setString(2, dataForm.getTeam());
cstm.setString(3, dataForm.getPolicyNo());
cstm.setString(4, dataForm.getClientNo());
cstm.setBigDecimal(5, null); // 0=print ,1=reprint
if (VSMUtil.isNotEmpty(dataForm.getType())){
cstm.setBigDecimal(5, new BigDecimal(dataForm.getType()));
}
cstm.setString(6, null); //
if (VSMUtil.isNotEmpty(dataForm.getApproveDate())){
//String str = DateUtil.toFormatString(dataForm.getApproveDate(), "yyyyMMdd");
//String str2 = DateUtil.toFormatStringWebEN(dataForm.getApproveDate());
String str3 = DateUtil.convertToBCCheckLocal2(dataForm.getApproveDate());
cstm.setString(6, str3);
}
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
PrintingDataForm dbn = null;
while (rs.next()){
dbn = new PrintingDataForm();
dbn.setPrintingData(rs);
lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Search master team by package
* @param userId - userId
* @return List of TeamForm
*/
public List<TeamForm> searchTeamFormPkg(String userId){
List<TeamForm> lst = new ArrayList<TeamForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_team(?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR);
cstm.setString(2, userId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
TeamForm dbn = null;
while (rs.next()){
dbn = new TeamForm();
dbn.setTeamData(rs);
lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Search master printer by package
* @param userId - userId
* @return List of PrinterForm
*/
public List<PrinterForm> searchPrinterFormPkg(String userId){
List<PrinterForm> lst = new ArrayList<PrinterForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_printer(?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR);
cstm.setString(2, userId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
PrinterForm dbn = null;
while (rs.next()){
dbn = new PrinterForm();
dbn.setPrinterData(rs);
lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Search master provincial by package
* @param userId - userId
* @return object of EndrProvincialForm
*/
public EndrProvincialForm searchProvincialFormPkg(String userId){
EndrProvincialForm form = null;
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_provincial(?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR );
cstm.setString(2, userId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
while (rs.next()){
form = new EndrProvincialForm();
form.setProvincialData(rs);
//lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return form;
}
/**
* Search master provincial by package
* @param provincial - provincial
* @return boolean
*/
public boolean isProvincialFormPkg(EndrProvincialForm provincial){
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
boolean f = false;
EndrProvincialForm form = null;
if (null == provincial)
return f;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_chk_provincial(?,?)}");
cstm.registerOutParameter(1, OracleTypes.VARCHAR);
cstm.setBigDecimal(2, provincial.getProvincialId());
cstm.execute();
String str = (String) cstm.getObject(1);
// while (rs.next()){
// form = new EndrProvincialForm();
// form.setIsProvincial(rs.getString(1));
// f = Boolean.parseBoolean(form.getIsProvincial());
// //lst.add(dbn);
// }
f = Boolean.parseBoolean(str);
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return f;
}
/**
* Insert/Save ENDR print data into temp table by package
* @param lstEndrTmpDataPrintBean - list of ENDR print data
* @return boolean
*/
public boolean insertEndrTmpDataPrint(List<EndrTmpDataPrintBean> lstEndrTmpDataPrintBean) {
Connection conn = null;
Session session = null;
session = HibernateUtil.getCurrentSession();
Transaction tx = session.beginTransaction();
try {
conn = HibernateUtil.getConnection();
if (VSMUtil.isNotEmptyLst(lstEndrTmpDataPrintBean) && lstEndrTmpDataPrintBean.size() > 0) {
for (int i = 0; i < lstEndrTmpDataPrintBean.size(); i++) {
session.save(lstEndrTmpDataPrintBean.get(i));
}
}
tx.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
tx.rollback();
} finally {
try {
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
log.error(e.toString(), e);
}
}
return false;
}
/**
* Search ENDR print data by package
* @param sProcessID - processId
* @param sType - 0 = first printing, 1 = reprint
* @return List of PrinterDataTxtForm
*/
public List<PrinterDataTxtForm> searchPrinterDataTxtFormPkg(String sProcessID , BigDecimal sType){
List<PrinterDataTxtForm> lst = new ArrayList<PrinterDataTxtForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_update_data_print(?,?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR );
cstm.setString(2, sProcessID);
cstm.setBigDecimal(3, sType);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
PrinterDataTxtForm dbn = null;
while (rs.next()){
dbn = new PrinterDataTxtForm();
dbn.setPrinterDataTxt(rs);
lst.add( dbn );
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
if(rs != null) {
rs.close();
}
if(cstm != null) {
cstm.close();
}
//HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Update ENDR print data to finish by package
* @param sProcessID - processId
* @param sType - 0 = first printing, 1 = reprint
* @return boolean
*/
public boolean updateFinishFtp(String sProcessID , BigDecimal sType){
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_finish_data_print(?,?)}");
cstm.setString(1, sProcessID);
cstm.setBigDecimal(2, sType);
cstm.execute();
return true;
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return false;
}
/**
* Update ENDR print data to reject by package
* @param sProcessID - processId
* @param sType - 0 = first printing, 1 = reject
* @return boolean
*/
public boolean updateReject(String sProcessID , BigDecimal sType){
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_reject_data_print(?,?)}");
cstm.setString(1, sProcessID);
cstm.setBigDecimal(2, sType);
cstm.execute();
return true;
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return false;
}
/**
* Search data path file
* @return Map Result
*/
public Map getPathFile(){
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
Map mapPathFile = new HashMap();
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_path_txt_file(?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
while (rs.next()) {
mapPathFile.put(rs.getBigDecimal("mst_path_txt_file_id"), rs.getString("path_file"));
}
} catch (Exception e) {
log.error(e.toString(), e);
} finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
log.error(e.toString(), e);
}
}
return mapPathFile;
}
public Object[] searchTxtSql(String sql){
Session session = null;
Connection conn = null;
ResultSet rs = null;
PreparedStatement stmt = null;
ResultSetMetaData rsmd = null;
List<String> columnLst = new ArrayList<String>();
List<SqlShowForm> dataLst = new ArrayList<SqlShowForm>();
//
try {
// String filePath = "./"+tableXml.getTxtName().toUpperCase()+".TXT";
// Delete file
String filePath = "",fileNum = "";
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
stmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
// stmt.setString(1, strMIGIDRef);
//EXECUTE QUERY
// stmt.executeQuery();
// rs = stmt.getResultSet();
rs = stmt.executeQuery();
rsmd = rs.getMetaData();
int numCol = rsmd.getColumnCount();
String[][] rowCol = new String[numCol][2];
String columnRow = "";
for (int i = 1; i <= numCol; i++ ) {
String name = rsmd.getColumnName(i);
rowCol[i-1][0] = name;
rowCol[i-1][1] = "0";
if("java.sql.Timestamp".equals(rsmd.getColumnClassName(i)) || "java.sql.Date".equals(rsmd.getColumnClassName(i))){
rowCol[i-1][1] = "1";
}
columnLst.add(name);
}
int maxCol = rowCol.length;
String txt = "";
// List<String[]> lst = new ArrayList<String[]>();
List<String> dataRowLst = new ArrayList<String>();
int countRow = 0;
while (rs.next()) {
countRow++;
dataRowLst = new ArrayList<String>();
//String[] row = MstSetArrayStringBean.setDataTxt(rs, maxCol, rowCol);
for(int i = 0 ; i < maxCol ; i++){
String typex = (String)rowCol[i][1];
if("1".equals(typex)){ // Date
Date dd = rs.getTimestamp(rowCol[i][0]);
if(VSMUtil.isNotEmpty(dd)){
try {
DateUtil.toFormatStringWebTh3(dd);
String formattedDate = dateFormat.format(dd);
if(!"00:00:00".equals(timeFormat.format(dd))){
formattedDate = dateFormat2.format(dd);
}
dataRowLst.add(formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}else{
dataRowLst.add("");
}
}else{
dataRowLst.add(rs.getString(rowCol[i][0]));
}
}
SqlShowForm dbean = new SqlShowForm();
dbean.setDataRow(dataRowLst);
dataLst.add(dbean);
if(countRow==1000){
break;
}
}
} catch (SQLException ex) {
// log.error(ex.toString());
}finally {
try {
HibernateUtil.close(rs, null);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
// log.error(e.toString(), e);
}
}
return new Object[]{columnLst,dataLst};
}
public int executeTxtSql(String sql){
Session session = null;
Connection conn = null;
PreparedStatement stmt = null;
Transaction tx = null;
int ret = 0;
//
try {
session = HibernateUtil.getCurrentSession();
tx = session.beginTransaction();
conn = HibernateUtil.getConnection();
stmt = conn.prepareStatement(sql);
ret = stmt.executeUpdate();
tx.commit();
} catch (SQLException ex) {
// log.error(ex.toString());
tx.rollback();
}finally {
try {
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
// log.error(e.toString(), e);
}
}
return ret;
}
public boolean executeTxtSqlUpdatePkg(String sql){
Session session = null;
Connection conn = null;
PreparedStatement stmt = null;
Transaction tx = null;
//
try {
session = HibernateUtil.getCurrentSession();
tx = session.beginTransaction();
conn = HibernateUtil.getConnection();
stmt = conn.prepareStatement(sql);
//stmt.executeQuery();
stmt.execute();
tx.commit();
return true;
} catch (SQLException ex) {
//log.error(ex.toString());
tx.rollback();
}finally {
try {
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
// log.error(e.toString(), e);
}
}
return false;
}
public Object[] searchTxtSqlEdas(String sql){
Session session = null;
Connection conn = null;
ResultSet rs = null;
PreparedStatement stmt = null;
ResultSetMetaData rsmd = null;
List<String> columnLst = new ArrayList<String>();
List<SqlShowForm> dataLst = new ArrayList<SqlShowForm>();
//
try {
session = DatasourceUtil.getCurrentSession();
conn = DatasourceUtil.getConnection();
stmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery();
rsmd = rs.getMetaData();
int numCol = rsmd.getColumnCount();
String[][] rowCol = new String[numCol][2];
String columnRow = "";
for (int i = 1; i <= numCol; i++ ) {
String name = rsmd.getColumnName(i);
rowCol[i-1][0] = name;
rowCol[i-1][1] = "0";
if("java.sql.Timestamp".equals(rsmd.getColumnClassName(i)) || "java.sql.Date".equals(rsmd.getColumnClassName(i))){
rowCol[i-1][1] = "1";
}
columnLst.add(name);
}
int maxCol = rowCol.length;
String txt = "";
//List<String[]> lst = new ArrayList<String[]>();
List<String> dataRowLst = new ArrayList<String>();
int countRow = 0;
while (rs.next()) {
countRow++;
dataRowLst = new ArrayList<String>();
//String[] row = MstSetArrayStringBean.setDataTxt(rs, maxCol, rowCol);
for(int i = 0 ; i < maxCol ; i++){
String typex = (String)rowCol[i][1];
if("1".equals(typex)){ // Date
Date dd = rs.getTimestamp(rowCol[i][0]);
if(VSMUtil.isNotEmpty(dd)){
try {
DateUtil.toFormatStringWebTh3(dd);
String formattedDate = dateFormat.format(dd);
if(!"00:00:00".equals(timeFormat.format(dd))){
formattedDate = dateFormat2.format(dd);
}
dataRowLst.add(formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}else{
dataRowLst.add("");
}
}else{
dataRowLst.add(rs.getString(rowCol[i][0]));
}
}
SqlShowForm dbean = new SqlShowForm();
dbean.setDataRow(dataRowLst);
dataLst.add(dbean);
if(countRow==1000){
break;
}
}
} catch (SQLException ex) {
//log.error(ex.toString());
}finally {
try {
DatasourceUtil.close(rs, null);
DatasourceUtil.closeConnection(conn);
DatasourceUtil.closeSession(session);
} catch (SQLException e) {
//log.error(e.toString(), e);
}
}
return new Object[]{columnLst,dataLst};
}
/**
* Search master team by package
* @param userId - userId
* @return List of TeamForm
*/
public List<TeamForm> searchProvincialTeamFormPkg(String userId){
List<TeamForm> lst = new ArrayList<TeamForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_provincial_team(?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR);
cstm.setString(2, userId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
TeamForm dbn = null;
while (rs.next()){
dbn = new TeamForm();
dbn.setTeamData(rs);
lst.add( dbn );
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
/**
* Search master printer by package
* @param userId - userId
* @return List of PrinterForm
*/
public List<PrinterForm> searchProvincialPrinterFormPkg(String userId){
List<PrinterForm> lst = new ArrayList<PrinterForm>();
Session session = null;
Connection conn = null;
CallableStatement cstm = null;
ResultSet rs = null;
try {
session = HibernateUtil.getCurrentSession();
conn = HibernateUtil.getConnection();
cstm = conn.prepareCall("{call PKG_WF_ENDR.sp_sch_provincial_printer(?,?)}");
cstm.registerOutParameter(1, OracleTypes.CURSOR );
cstm.setString(2, userId);
cstm.execute();
rs = (ResultSet) cstm.getObject(1);
PrinterForm dbn = null;
while (rs.next()){
dbn = new PrinterForm();
dbn.setPrinterData(rs);
lst.add(dbn);
}
}catch (Exception e){
//e.printStackTrace();
log.error(e.toString(), e);
}finally {
try {
HibernateUtil.close(rs,cstm);
HibernateUtil.closeConnection(conn);
HibernateUtil.closeSession(session);
} catch (SQLException e) {
//e.printStackTrace();
log.error(e.toString(),e);
}
}
return lst;
}
}