package com.yoin.drp.flowcard.dao;
import java.sql.*;
import java.util.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import com.yoin.drp.basedata.AimClient;
import com.yoin.drp.basedata.Client;
import com.yoin.drp.basedata.manager.ItemManager;
import com.yoin.drp.basedata.model.Item;
import com.yoin.drp.exceptions.AppException;
import com.yoin.drp.flowcard.model.FlowCard;
import com.yoin.drp.flowcard.model.FlowCardDetail;
import com.yoin.drp.sysmgr.User;
import com.yoin.drp.util.DB;
import com.yoin.drp.util.PageModel;
import com.yoin.drp.util.datadict.ItemCategory;
import com.yoin.drp.util.datadict.ItemUnit;
/**
* 流向单MySql实现
* @author Administrator
*
*/
public class FlowCardDao4MySqlImp implements FlowCardDao {
/**
* 添加流向单
* @param conn
* @param flowCard 流向单对象
*/
public void addFlowCard(Connection conn,FlowCard flowCard){
//保存主表
String vouNo = addFlowCardMester(conn,flowCard);
System.out.println(vouNo);
//保存明细表
addFlowCardDetail(conn,vouNo,flowCard.getFlowCardDetailList());
}
/**
* 保存流向单主表信息
* @param conn
* @param flowCard 流向单对象
* @param流向单号
*/
public String addFlowCardMester(Connection conn,FlowCard flowCard) {
System.out.println("addFlowCardMester>>" + flowCard);
String sql = "insert into t_flow_card (vou_no,fiscal_year,fiscal_period,client_id, " +
"opr_type,record_date,recorder_id,vou_sts,spot_flag) " +
"value (?,?,?,?,?,?,?,?,?)";
String vouNo = "";
PreparedStatement pstmt = null;
try {
vouNo = getVouNo(conn);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, vouNo);
pstmt.setInt(2, flowCard.getFiscalYear());
pstmt.setInt(3, flowCard.getFiscalperiod());
pstmt.setString(4, flowCard.getClient().getClientId());
pstmt.setString(5, flowCard.getOptType());
pstmt.setTimestamp(6, new Timestamp(flowCard.getRecordDate().getTime()));
pstmt.setString(7, flowCard.getUser().getUserId());
pstmt.setString(8, flowCard.getVouSts());
pstmt.setString(9, flowCard.getSpotFlag());
pstmt.executeUpdate();
}catch(SQLException e) {
System.out.println("保存流向单出错!" + e);
throw new AppException("保存流向单出错!");
}finally {
DB.close(pstmt);
}
return vouNo;
}
/**
* 保存流向单明细信息
* @param conn
* @param vouNo 流向单号
* @param flowCardDetailList FlowCardDetail对象的集合
*/
private void addFlowCardDetail(Connection conn,String vouNo,List flowCardDetailList) {
String sql = "insert into t_flow_card_detail (vou_no,aim_id,item_no,qty,adjust_flag) values " +
"(?, ?, ?, ?, ?)";
System.out.println("addFlowCardDetail>>" + sql);
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
for(Iterator<FlowCardDetail> it = flowCardDetailList.iterator(); it.hasNext();) {
FlowCardDetail flowCardDetail = it.next();
pstmt.setString(1, vouNo);
pstmt.setString(2, flowCardDetail.getAimClient().getId());
pstmt.setString(3, flowCardDetail.getItem().getItemNo());
pstmt.setDouble(4, flowCardDetail.getQry());
pstmt.setString(5, flowCardDetail.getAdjustFlag());
pstmt.addBatch();
}
pstmt.executeBatch();
}catch(SQLException e) {
System.out.println("添加流向单明细出错!" + e);
throw new AppException("添加流向单明细出错");
}finally {
DB.close(pstmt);
}
}
/**
* 取得流向单号
* @param conn
* @return yyyymmdd0000
*/
private String getVouNo(Connection conn) throws SQLException{
String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String sql = "select MAX(vou_no) from t_flow_card";
Statement stmt = null;
ResultSet rs = null;
String vouNo = currentDate + "0001";
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
rs.next();
if(rs.getLong(1) != 0) {
vouNo = String.valueOf(rs.getLong(1) + 1);
}
}catch(SQLException e) {
System.out.println("取得流向单号出错!" + e);
throw new AppException("取得流向单号出错!");
}finally {
DB.close(stmt);
}
System.out.println("getVouNo()>>" + vouNo);
return vouNo;
}
/**
* 通过vouNo ,送审流向单
* @param conn
* @param vouNos 流向单号数组
*/
public void auditFlowCard(Connection conn,String[] vouNos){
StringBuffer str = new StringBuffer();
for(int i=0; i<vouNos.length; i++) {
str.append("'").append(vouNos[i]).append("',");
}
String vouNoStr = str.substring(0, str.length()-1);
String sql= "update t_flow_card set vou_sts = 'S' where vou_no in (" + vouNoStr + ")";
Statement stmt = null;
System.out.println("auditFlowCard>> "+ sql);
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
}catch(AppException e) {
e.printStackTrace();
throw e;
}catch(SQLException e) {
throw new AppException("流向单送审出错!");
}
}
/**
* 修改流向单
* @param conn
* @param flowCard流向单对象
*/
public void modifyFlowCard(Connection conn,FlowCard flowCard){
modifyFlowCardMester(conn,flowCard);
modifyFlowCardDetail(conn,flowCard.getVouNo(),flowCard.getFlowCardDetailList());
}
/**
* 修改流向单主表
* @param conn
* @param flowCard flowCard 流向单对象
*/
private void modifyFlowCardMester(Connection conn, FlowCard flowCard) {
String sql = "update t_flow_card set fiscal_year = ? ,fiscal_period = ? ,client_id = ? ,record_date = ? ," +
"recorder_id = ? where vou_no = ? ";
PreparedStatement pstmt = null;
System.out.println(flowCard.getVouNo());
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, flowCard.getFiscalYear());
pstmt.setInt(2, flowCard.getFiscalperiod());
pstmt.setString(3, flowCard.getClient().getClientId());
pstmt.setTimestamp(4, new Timestamp(flowCard.getRecordDate().getTime()));
pstmt.setString(5, flowCard.getUser().getUserId());
pstmt.setString(6, flowCard.getVouNo());
pstmt.executeUpdate();
}catch(SQLException e) {
System.out.println("修改流向单主表出错!" + e);
throw new AppException("修改流向单主表出错!");
}finally {
DB.close(pstmt);
}
}
/**
* 修改流向单明细表
* @param conn Connection
* @param vouNo 流向单号
* @param flowCardDetailList FlowCardDetail对象的集合
*/
private void modifyFlowCardDetail(Connection conn, String vouNo, List flowCardDetailList) {
String sql = "update t_flow_card_detail set aim_id = ?,item_no = ?,qty = ? where vou_no = ?";
System.out.println("modifyFlowCardDetail>>" + sql);
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
for(Iterator<FlowCardDetail> it = flowCardDetailList.iterator(); it.hasNext();) {
FlowCardDetail flowCardDetail = it.next();
pstmt.setString(1, flowCardDetail.getAimClient().getId());
pstmt.setString(2, flowCardDetail.getItem().getItemNo());
pstmt.setDouble(3, flowCardDetail.getQry());
pstmt.setString(4, vouNo);
pstmt.addBatch();
}
pstmt.executeBatch();
}catch(SQLException e) {
System.out.println("修改流向单明细出错!" + e);
throw new AppException("修改流向单明细出错");
}finally {
DB.close(pstmt);
}
}
/**
* 删除流向单
* @param conn
* @param vouNos流向单号数组
*/
public void deleteFlowCard(Connection conn,String[] vouNos){
StringBuffer str = new StringBuffer();
for(int i=0; i<vouNos.length; i++) {
str.append("'").append(vouNos[i]).append("',");
}
String vouNoStr = str.substring(0, str.length()-1);
try {
deleteFlowCardMester(conn,vouNoStr);
deleteFlowCardDetail(conn,vouNoStr);
}catch(AppException e) {
throw e;
}catch(SQLException e) {
throw new AppException("删除流向单出错!");
}
}
/**
* 删除流向单主表
* @param conn
* @param vouNoStr 流向单号字符串
*/
priva
没有合适的资源?快使用搜索试试~ 我知道了~
drp.rar_DRP
共284个文件
gif:93个
java:43个
class:43个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2022-09-24
16:31:16
上传
评论
收藏 2.08MB RAR 举报
温馨提示
drp项目源码,亮点在于没有框架,全部采用自己写的分层架构,对于刚学j2ee的童鞋比较好,能让人初步了解构架,深入后对于以后学习最流行的三层框有好处.
资源详情
资源评论
资源推荐
收起资源包目录
drp.rar_DRP (284个子文件)
FlowCardDao4MySqlImp.class 14KB
ClientManager.class 10KB
ItemDao4MySqlImpl.class 8KB
UserManager.class 7KB
FiscalYearPeriodManager.class 6KB
FileUpload.class 5KB
FlowCard.class 4KB
FlowCardManager.class 4KB
ItemManager.class 4KB
AuthImage.class 4KB
StatReportManager.class 4KB
DataDictManager.class 3KB
ClientTreeReader.class 3KB
ShowReport.class 3KB
DB.class 3KB
AuthFilter.class 3KB
Client.class 3KB
ReginValidate.class 3KB
FlowCardDetail.class 2KB
Item.class 2KB
FlowCardDaoFactory.class 2KB
TestHttpSessionAttributeLission.class 2KB
PageModel.class 2KB
FlowCardDao4OracleImpl.class 2KB
FiscalYearPeriod.class 2KB
User.class 2KB
FiscalYearPeriodServlet.class 2KB
AddItemServlet.class 1KB
CharsetEncoding.class 1KB
ItemDao4OracleImpl.class 1KB
AimClient.class 1KB
ItemCategory.class 1007B
ItemUnit.class 990B
TestHttpSessionListener.class 863B
ClientLevel.class 738B
FlowCardDao.class 657B
ItemDao4OracleFactory.class 575B
ItemDao4MySqlFactory.class 571B
ItemDao.class 444B
PasswordNotCorrectException.class 416B
UserNotFindException.class 395B
AppException.class 379B
ItemDaoFactory.class 203B
.classpath 753B
org.eclipse.wst.jsdt.ui.superType.container 49B
drp.css 3KB
JSCalendar.css 630B
Thumbs.db 65KB
maintop.gif 60KB
client_level_chart.gif 10KB
footer_kefu.gif 3KB
topoint2024.gif 2KB
banner_help_button.gif 2KB
admin.gif 1KB
realTimeInfoShow.gif 1KB
chart3.gif 1KB
2003.gif 1KB
login_button.gif 1KB
download1.gif 1KB
look.gif 1KB
search.gif 908B
plus.gif 870B
minus.gif 861B
top_right.gif 857B
command_bottom_right.gif 855B
command_bottom_left.gif 843B
1d.gif 843B
top_left.gif 840B
logobar_mid.gif 834B
middle_right.gif 834B
middle_left.gif 826B
command_top_right.gif 826B
logobar_left.gif 818B
command_top_left.gif 818B
left.gif 814B
right.gif 808B
command_mid_right.gif 807B
spacer.gif 807B
command_bottom.gif 806B
top.gif 806B
command_top.gif 804B
command_mid_left.gif 804B
compactset.gif 717B
record.gif 608B
down.gif 420B
openfold.gif 376B
closedfold.gif 372B
showtoc.gif 359B
alarm.gif 328B
2001.gif 328B
direction.gif 312B
help.gif 295B
dot3.gif 278B
import.gif 278B
about.gif 272B
security.gif 268B
total.gif 267B
tab_shadow.gif 255B
performance_report.gif 235B
head003.gif 205B
共 284 条
- 1
- 2
- 3
刘良运
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0