forked from maxliaops/Java_Web_Examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOutStorageDAO.java
More file actions
265 lines (255 loc) · 10.4 KB
/
OutStorageDAO.java
File metadata and controls
265 lines (255 loc) · 10.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
package com.dao;
import org.hibernate.Session;
import java.util.List;
import org.hibernate.SQLQuery;
import com.actionForm.GoodsForm;
import com.actionForm.StorageForm;
import com.core.MySession;
import com.actionForm.GetUseForm;
import org.hibernate.Transaction;
import java.util.Date;
import java.text.NumberFormat;
import com.actionForm.LoanForm;
import javax.servlet.http.HttpServletRequest;
import org.hibernate.Query;
import javax.servlet.http.HttpSession;
import com.actionForm.BranchForm;
import com.actionForm.DamageForm;
public class OutStorageDAO {
private Session session = null;
//查询库存信息
public List storage_query() {
session = MySession.openSession(); //打开Session
String sql = "select {goods.*},{storage.*} from tb_goods goods inner join tb_storage storage on goods.id=storage.goodsid"; //使用内连接查询库存信息
List list = null;
try {
SQLQuery query = session.createSQLQuery(sql);
query.addEntity("goods", GoodsForm.class); //将数据表与实体类关联在一起
query.addEntity("storage", StorageForm.class);
list = query.list();
} catch (Exception e) {
System.out.println("查询时的错误信息:" + e.getMessage());
}
return list;
}
//在部门报损时查询部门已领用物资信息
public List getuseGoods_query() {
session = MySession.openSession(); //打开Session
//以下内容需重点介绍
String sql = "select * from tb_goods where id in (select goodsid from tb_getuse group by goodsid)";
List list = null;
try {
SQLQuery query = session.createSQLQuery(sql);
query.addEntity("goods", GoodsForm.class); //将数据表与实体类关联在一起
list = query.list();
} catch (Exception e) {
System.out.println("查询时的错误信息:" + e.getMessage());
}
return list;
}
//查询部门领用信息
public List getuse_query() {
session = MySession.openSession(); //打开Session
String sql = "select {getuse.*},{branch.*},{goods.*} from tb_getuse getuse inner join tb_goods goods on getuse.goodsid=goods.id inner join tb_branch branch on getuse.branchid=branch.id"; //使用内连接查询部门领用信息
List list = null;
try {
SQLQuery query = session.createSQLQuery(sql);
query.addEntity("goods", GoodsForm.class); //将数据表与实体类关联在一起
query.addEntity("getuse", GetUseForm.class);
query.addEntity("branch", BranchForm.class);
list = query.list();
} catch (Exception e) {
System.out.println("查询时的错误信息:" + e.getMessage());
}
return list;
}
//添加部门领用信息
public int getuseAdd(GetUseForm getUseForm) {
session = MySession.openSession(); //打开Session
Transaction tx = null;
int rtn = 1;
try {
//保存部门领用信息
tx = session.beginTransaction();
int goodsid = getUseForm.getGoodsid();
GoodsForm goodsForm = (GoodsForm) session.get(GoodsForm.class,
goodsid);
getUseForm.setGoods(goodsForm);
int branchid = getUseForm.getBranchid();
BranchForm branchForm = (BranchForm) session.get(BranchForm.class,
branchid);
getUseForm.setBranch(branchForm);
getUseForm.setCreatetime(new Date());
session.save(getUseForm);
/*********生成领用单号*******************/
NumberFormat formater = NumberFormat.getNumberInstance();
int id = getUseForm.getId();
formater.setMinimumIntegerDigits(5);
java.util.Date createTime = getUseForm.getCreatetime();
java.sql.Date date = new java.sql.Date(createTime.getTime());
String gNo = "LY" + date +
formater.format(id).toString().replace(",", ""); //组合领用单号
/**************************************/
//插入领用单号
GetUseForm getUseF = (GetUseForm) session.get(
GetUseForm.class, id);
getUseF.setGno(gNo);
session.update(getUseF);
//修改库存信息
// StorageForm storageF = (StorageForm) session.get(StorageForm.class,
// getUseForm.getGoodsid());
List list = session.createQuery("FROM StorageForm WHERE goodsid=" +
getUseForm.getGoodsid() + "").list();
StorageForm storageF = (StorageForm) list.get(0);
int storageNum = storageF.getNumber() - getUseForm.getNumber();
if (storageNum >= 0) {
storageF.setNumber(storageNum);
session.update(storageF);
} else { //库存数量不足
rtn = 0;
}
if (rtn == 1) {
tx.commit();
} else {
if (tx != null) {
tx.rollback();
}
}
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
System.out.println("添加部门领用信息时的错误信息:" + e.getMessage());
rtn = 0;
} finally {
MySession.closeSession(session); //关闭Session
}
return rtn;
}
//添加部门报损信息
public int damageAdd(DamageForm damageForm) {
session = MySession.openSession(); //打开Session
Transaction tx = null;
int rtn = 0;
try {
//保存部门报损信息
tx = session.beginTransaction();
int goodsid = damageForm.getGoodsid();
GoodsForm goodsForm = (GoodsForm) session.get(GoodsForm.class,
goodsid);
damageForm.setGoods(goodsForm);
int branchid = damageForm.getBranchid();
BranchForm branchForm = (BranchForm) session.get(BranchForm.class,
branchid);
damageForm.setBranch(branchForm);
damageForm.setCreatetime(new Date());
session.save(damageForm);
tx.commit();
rtn = 1;
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
System.out.println("添加部门报损信息时的错误信息:" + e.getMessage());
rtn = 0;
} finally {
MySession.closeSession(session); //关闭Session
}
return rtn;
}
//添加物资借出信息
public int loanAdd(LoanForm loanForm) {
session = MySession.openSession(); //打开Session
Transaction tx = null;
int rtn = 0;
try {
//保存物资借出信息
tx = session.beginTransaction();
int goodsid = loanForm.getGoodsid();
GoodsForm goodsForm = (GoodsForm) session.get(GoodsForm.class,
goodsid);
loanForm.setGoods(goodsForm);
loanForm.setCreatetime(new Date());
session.save(loanForm);
/*********生成借出单号*******************/
NumberFormat formater = NumberFormat.getNumberInstance();
int id = loanForm.getId();
formater.setMinimumIntegerDigits(5);
java.util.Date createTime = loanForm.getCreatetime();
java.sql.Date date = new java.sql.Date(createTime.getTime());
String lNo = "JC" + date +
formater.format(id).toString().replace(",", ""); //组合借出单号
/**************************************/
//插入借出单号
LoanForm loanF = (LoanForm) session.get(
LoanForm.class, id);
loanF.setLno(lNo);
session.update(loanF);
tx.commit();
rtn = 1;
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
System.out.println("添加物资借出信息时的错误信息:" + e.getMessage());
rtn = 0;
} finally {
MySession.closeSession(session); //关闭Session
}
return rtn;
}
//出库审核
public int approveloanAdd(int id, HttpServletRequest request) {
int rtn = 1;
session = MySession.openSession(); //打开session
Transaction tx = null;
try {
tx = session.beginTransaction();
LoanForm loanForm = (LoanForm) session.get(LoanForm.class, id);
loanForm.setApprovetime(new Date());
HttpSession httpsession = request.getSession();
loanForm.setTaster((String) httpsession.getAttribute("username")); //设置审核员
loanForm.setState(new Short("1")); //修改借出单状态为已审核
session.update(loanForm); //保存借出审核信息
//修改库存信息表
GoodsForm goodsF = loanForm.getGoods();
int goodsid = goodsF.getId();
int goodsnumber = loanForm.getNumber();
String hql_goods = "FROM StorageForm WHERE goodsid=" + goodsid + "";
List list_goods = session.createQuery(hql_goods).list();
System.out.println("LIST_GOODS.SIZE:" + list_goods.size() +
"********GOODSID:" + goodsid);
if (list_goods.size() > 0) {
StorageForm storageF = (StorageForm) list_goods.get(0);
if (storageF.getNumber() - goodsnumber >= 0) {
String hql_up = "UPDATE StorageForm set number=number-" +
goodsnumber + " WHERE goodsid=" + goodsid +
"";
System.out.println("HQL_UP:" + hql_up);
session.createQuery(hql_up).executeUpdate();
} else {
rtn = 2; //库存不足
}
} else {
rtn = 0;
}
if (rtn == 1) {
tx.commit();
} else {
if (tx != null) {
tx.rollback();
}
}
} catch (Exception e) {
System.out.println("借出审核时的错误信息:" + e.getMessage());
e.printStackTrace();
if (tx != null) {
tx.rollback();
}
rtn = 0;
} finally {
MySession.closeSession(session); //关闭Session
}
return rtn;
}
}