Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
535983d0
Commit
535983d0
authored
Apr 27, 2019
by
double
Browse files
库存报表添加库存预警报表
"名称", "型号", "扩展信息", "单位", "入库数量", "出库数量", "库存数量", "安全库存量", "临界库存量" 根据临界库存量排序 临界库存量=库存数量-安全库存量
parent
a95ecbda
Changes
6
Hide whitespace changes
Inline
Side-by-side
erp_web/pages/reports/stock_warning_report.html
0 → 100644
View file @
535983d0
<!DOCTYPE html>
<html>
<head>
<title>
库存预警
</title>
<meta
charset=
"utf-8"
>
<!-- 指定以IE8的方式来渲染 -->
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=EmulateIE8"
/>
<link
rel=
"shortcut icon"
href=
"/images/favicon.ico"
type=
"image/x-icon"
/>
<script
type=
"text/javascript"
src=
"/js/jquery-1.8.0.min.js"
></script>
<script
type=
"text/javascript"
src=
"/js/print/print.js"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"/js/easyui-1.3.5/themes/default/easyui.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"/js/easyui-1.3.5/themes/icon.css"
/>
<link
type=
"text/css"
rel=
"stylesheet"
href=
"/css/common.css"
/>
<script
type=
"text/javascript"
src=
"/js/easyui-1.3.5/jquery.easyui.min.js"
></script>
<script
type=
"text/javascript"
src=
"/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"
></script>
<script
type=
"text/javascript"
src=
"/js/My97DatePicker/WdatePicker.js"
></script>
<script
type=
"text/javascript"
src=
"/js/common/common.js"
></script>
</head>
<body>
<!-- 查询 -->
<div
id=
"searchPanel"
class=
"easyui-panel"
style=
"padding:10px;"
title=
"查询窗口"
iconCls=
"icon-search"
collapsible=
"true"
closable=
"false"
>
<table
id=
"searchTable"
>
<tr>
<td>
仓库:
</td>
<td>
<select
name=
"searchProjectId"
id=
"searchProjectId"
style=
"width:80px;"
></select>
</td>
<td>
</td>
<td>
<a
href=
"javascript:void(0)"
class=
"easyui-linkbutton"
iconCls=
"icon-search"
id=
"searchBtn"
>
查询
</a>
<a
href=
"javascript:void(0)"
class=
"easyui-linkbutton"
iconCls=
"icon-redo"
id=
"exprotBtn"
>
导出
</a>
<a
href=
"javascript:void(0)"
class=
"easyui-linkbutton"
iconCls=
"icon-print"
id=
"printBtn"
>
打印
</a>
<span
class=
"total-count"
></span>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div
id=
"tablePanel"
class=
"easyui-panel"
style=
"padding:1px;top:300px;"
title=
"库存预警列表"
iconCls=
"icon-list"
collapsible=
"true"
closable=
"false"
>
<table
id=
"tableData"
style=
"top:300px;border-bottom-color:#FFFFFF"
></table>
</div>
<script
type=
"text/javascript"
>
var
depotList
=
null
;
var
depotID
=
null
;
var
mPropertyList
=
""
;
//商品属性列表
var
kid
=
sessionStorage
.
getItem
(
"
userId
"
);
//初始化界面
$
(
function
()
{
var
thisDate
=
getNowFormatMonth
();
//当前月份
var
userBusinessList
=
null
;
var
userdepot
=
null
;
initSystemData_UB
();
initSelectInfo_UB
();
initSystemData_depot
();
initSelectInfo_depot
();
initMProperty
();
//初始化商品属性
initTableData
();
ininPager
();
search
();
exportExcel
();
print
();
});
//导出EXCEL
function
exportExcel
()
{
$
(
"
#exprotBtn
"
).
off
(
"
click
"
).
on
(
"
click
"
,
function
()
{
if
(
!
$
(
"
#searchProjectId
"
).
val
())
{
$
.
messager
.
alert
(
'
导出提示
'
,
'
请先选择仓库再进行查询!
'
,
'
error
'
);
}
else
{
showEachDetails
(
1
,
3000
);
//此处直接去做get请求,用下面的查询每月统计的方法,去获取list,参数长度虽长,但还是可以用get
//window.location.href = "/depotItem/exportExcel.action?browserType=" + getOs();
}
});
}
//初始化系统基础信息
function
initSystemData_UB
()
{
$
.
ajax
({
type
:
"
get
"
,
url
:
"
/userBusiness/getBasicData
"
,
data
:
({
KeyId
:
kid
,
Type
:
"
UserDepot
"
}),
//设置为同步
async
:
false
,
dataType
:
"
json
"
,
success
:
function
(
res
)
{
if
(
res
&&
res
.
code
===
200
)
{
if
(
res
.
data
)
{
userBusinessList
=
res
.
data
.
userBusinessList
;
}
}
else
{
userBusinessList
=
null
;
}
}
});
}
//初始化页面选项卡
function
initSelectInfo_UB
()
{
if
(
userBusinessList
!=
null
)
{
if
(
userBusinessList
.
length
>
0
)
{
//用户对应的仓库列表 [1][2][3]...
userdepot
=
userBusinessList
[
0
].
value
;
}
}
}
//初始化系统基础信息
function
initSystemData_depot
()
{
$
.
ajax
({
type
:
"
get
"
,
url
:
"
/depot/getAllList
"
,
//设置为同步
async
:
false
,
dataType
:
"
json
"
,
success
:
function
(
res
)
{
if
(
res
&&
res
.
code
===
200
)
{
depotList
=
res
.
data
;
}
}
});
}
//初始化页面选项卡
function
initSelectInfo_depot
()
{
var
options
=
""
;
if
(
depotList
!=
null
)
{
options
=
""
;
for
(
var
i
=
0
;
i
<
depotList
.
length
;
i
++
)
{
var
depot
=
depotList
[
i
];
if
(
userdepot
!=
null
)
{
if
(
userdepot
.
indexOf
(
"
[
"
+
depot
.
id
+
"
]
"
)
!=
-
1
)
{
options
+=
'
<option value="
'
+
depot
.
id
+
'
">
'
+
depot
.
name
+
'
</option>
'
;
}
}
}
$
(
"
#searchProjectId
"
).
empty
().
append
(
options
);
}
}
//初始化商品属性
function
initMProperty
()
{
$
.
ajax
({
type
:
"
get
"
,
url
:
"
/materialProperty/list
"
,
dataType
:
"
json
"
,
data
:
({
search
:
JSON
.
stringify
({
name
:
""
}),
currentPage
:
1
,
pageSize
:
100
}),
success
:
function
(
res
)
{
if
(
res
&&
res
.
code
===
200
){
var
thisRows
=
res
.
data
.
page
.
rows
;
for
(
var
i
=
0
;
i
<
thisRows
.
length
;
i
++
)
{
if
(
thisRows
[
i
].
enabled
)
{
mPropertyList
+=
thisRows
[
i
].
nativename
+
"
,
"
;
}
}
if
(
mPropertyList
)
{
mPropertyList
=
mPropertyList
.
substring
(
0
,
mPropertyList
.
length
-
1
);
}
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询信息异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化表格数据
function
initTableData
()
{
$
(
'
#tableData
'
).
datagrid
({
height
:
heightInfo
,
nowrap
:
false
,
rownumbers
:
true
,
//动画效果
animate
:
false
,
//选中单行
singleSelect
:
true
,
pagination
:
true
,
//交替出现背景
striped
:
true
,
//loadFilter: pagerFilter,
pageSize
:
10
,
pageList
:
[
10
,
50
,
100
],
columns
:
[[
{
title
:
'
名称
'
,
field
:
'
materialName
'
,
width
:
60
},
{
title
:
'
型号
'
,
field
:
'
materialModel
'
,
width
:
80
},
{
title
:
'
扩展信息
'
,
field
:
'
materialOther
'
,
width
:
150
},
{
title
:
'
单位
'
,
field
:
'
materialUnit
'
,
width
:
80
},
{
title
:
'
入库数量
'
,
field
:
'
basicInNumber
'
,
width
:
80
},
{
title
:
'
出库数量
'
,
field
:
'
basicOutNumber
'
,
width
:
80
},
{
title
:
'
库存数量
'
,
field
:
'
basicNumber
'
,
width
:
80
},
{
title
:
'
安全库存量
'
,
field
:
'
safetystock
'
,
width
:
80
},
{
title
:
'
临界库存量
'
,
field
:
'
basicLinjieNumber
'
,
width
:
80
}
]],
onLoadError
:
function
()
{
$
.
messager
.
alert
(
'
页面加载提示
'
,
'
页面加载异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//初始化键盘enter事件
$
(
document
).
keydown
(
function
(
event
)
{
//兼容 IE和firefox 事件
var
e
=
window
.
event
||
event
;
var
k
=
e
.
keyCode
||
e
.
which
||
e
.
charCode
;
//兼容 IE,firefox 兼容
var
obj
=
e
.
srcElement
?
e
.
srcElement
:
e
.
target
;
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
Type
"
||
obj
.
id
==
"
Name
"
))
{
$
(
"
#savePerson
"
).
click
();
}
//搜索按钮添加快捷键
if
(
k
==
"
13
"
&&
(
obj
.
id
==
"
searchType
"
))
{
$
(
"
#searchBtn
"
).
click
();
}
});
//分页信息处理
function
ininPager
()
{
try
{
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
var
pager
=
$
(
"
#tableData
"
).
datagrid
(
'
getPager
'
);
pager
.
pagination
({
onSelectPage
:
function
(
pageNum
,
pageSize
)
{
opts
.
pageNumber
=
pageNum
;
opts
.
pageSize
=
pageSize
;
pager
.
pagination
(
'
refresh
'
,
{
pageNumber
:
pageNum
,
pageSize
:
pageSize
});
showEachDetails
(
pageNum
,
pageSize
);
}
});
}
catch
(
e
)
{
$
.
messager
.
alert
(
'
异常处理提示
'
,
"
分页信息异常 :
"
+
e
.
name
+
"
:
"
+
e
.
message
,
'
error
'
);
}
}
//增加
var
url
;
var
personID
=
0
;
//保存编辑前的名称
var
orgPerson
=
""
;
//搜索处理
function
search
()
{
showEachDetails
(
1
,
initPageSize
);
var
opts
=
$
(
"
#tableData
"
).
datagrid
(
'
options
'
);
var
pager
=
$
(
"
#tableData
"
).
datagrid
(
'
getPager
'
);
opts
.
pageNumber
=
1
;
opts
.
pageSize
=
initPageSize
;
pager
.
pagination
(
'
refresh
'
,
{
pageNumber
:
1
,
pageSize
:
initPageSize
});
}
$
(
"
#searchBtn
"
).
unbind
().
bind
({
click
:
function
()
{
search
();
}
});
function
showEachDetails
(
pageNo
,
pageSize
)
{
$
.
ajax
({
type
:
"
get
"
,
url
:
"
/depotItem/findStockWarningCount
"
,
dataType
:
"
json
"
,
data
:
({
currentPage
:
pageNo
,
pageSize
:
pageSize
,
projectId
:
$
.
trim
(
$
(
"
#searchProjectId
"
).
val
())
}),
success
:
function
(
res
)
{
if
(
res
&&
res
.
code
===
200
&&
res
.
data
)
{
var
HeadIds
=
res
.
data
.
total
;
if
(
HeadIds
>
0
)
{
if
(
pageSize
===
3000
)
{
window
.
location
.
href
=
"
/depotItem/exportWarningExcel?browserType=
"
+
getOs
()
+
"
¤tPage=
"
+
pageNo
+
"
&pageSize=
"
+
pageSize
+
"
&projectId=
"
+
$
.
trim
(
$
(
"
#searchProjectId
"
).
val
())
;
}
else
{
//获取排序后的产品ID
$
(
"
#tableData
"
).
datagrid
(
'
loadData
'
,
res
.
data
.
rows
);
}
}
else
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
无数据!
'
,
'
error
'
);
}
}
},
//此处添加错误处理
error
:
function
()
{
$
.
messager
.
alert
(
'
查询提示
'
,
'
查询数据后台异常,请稍后再试!
'
,
'
error
'
);
return
;
}
});
}
//报表打印
function
print
()
{
$
(
"
#printBtn
"
).
off
(
"
click
"
).
on
(
"
click
"
,
function
()
{
CreateFormPage
(
'
打印报表
'
,
$
(
'
#tableData
'
));
});
}
</script>
</body>
</html>
src/main/java/com/jsh/erp/controller/DepotItemController.java
View file @
535983d0
...
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.jsh.erp.constants.BusinessConstants
;
import
com.jsh.erp.constants.ExceptionConstants
;
import
com.jsh.erp.datasource.entities.*
;
import
com.jsh.erp.datasource.vo.DepotItemStockWarningCount
;
import
com.jsh.erp.exception.BusinessRunTimeException
;
import
com.jsh.erp.service.depotItem.DepotItemService
;
import
com.jsh.erp.service.material.MaterialService
;
...
...
@@ -827,4 +828,81 @@ public class DepotItemController {
}
return
result
;
}
}
/**
* 库存预警报表
* @param currentPage
* @param pageSize
* @return
*/
@GetMapping
(
value
=
"/findStockWarningCount"
)
public
BaseResponseInfo
findStockWarningCount
(
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"pageSize"
)
Integer
pageSize
,
@RequestParam
(
"projectId"
)
Integer
pid
)
throws
Exception
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
try
{
List
<
DepotItemStockWarningCount
>
resList
=
new
ArrayList
<
DepotItemStockWarningCount
>();
List
<
DepotItemStockWarningCount
>
list
=
depotItemService
.
findStockWarningCount
((
currentPage
-
1
)*
pageSize
,
pageSize
,
pid
);
int
total
=
depotItemService
.
findStockWarningCountTotal
(
pid
);
map
.
put
(
"total"
,
total
);
map
.
put
(
"rows"
,
list
);
res
.
code
=
200
;
res
.
data
=
map
;
}
catch
(
Exception
e
){
e
.
printStackTrace
();
res
.
code
=
500
;
res
.
data
=
"获取数据失败"
;
}
return
res
;
}
/**
* 导出库存预警excel表格
* @param currentPage
* @param pageSize
* @param projectId
* @param monthTime
* @param request
* @param response
* @return
*/
@GetMapping
(
value
=
"/exportWarningExcel"
)
public
BaseResponseInfo
exportWarningExcel
(
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"pageSize"
)
Integer
pageSize
,
@RequestParam
(
"projectId"
)
Integer
projectId
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
List
<
DepotItemStockWarningCount
>
dataList
=
depotItemService
.
findStockWarningCount
((
currentPage
-
1
)
*
pageSize
,
pageSize
,
projectId
);
//存放数据json数组
Integer
pid
=
projectId
;
String
[]
names
=
{
"名称"
,
"型号"
,
"扩展信息"
,
"单位"
,
"入库数量"
,
"出库数量"
,
"库存数量"
,
"安全库存量"
,
"临界库存量"
};
String
title
=
"库存预警报表"
;
List
<
String
[]>
objects
=
new
ArrayList
<
String
[]>();
if
(
null
!=
dataList
)
{
for
(
DepotItemStockWarningCount
diEx
:
dataList
)
{
String
[]
objs
=
new
String
[
9
];
objs
[
0
]
=
diEx
.
getMaterialName
().
toString
();
objs
[
1
]
=
diEx
.
getMaterialModel
().
toString
();
objs
[
2
]
=
diEx
.
getMaterialOther
().
toString
();
objs
[
3
]
=
diEx
.
getMaterialUnit
().
toString
();
objs
[
4
]
=
diEx
.
getBasicInNumber
().
toString
();
objs
[
5
]
=
diEx
.
getBasicOutNumber
()
==
null
?
"0"
:
diEx
.
getBasicOutNumber
().
toString
();
objs
[
6
]
=
diEx
.
getBasicNumber
()
==
null
?
"0"
:
diEx
.
getBasicNumber
().
toString
();
objs
[
7
]
=
diEx
.
getSafetystock
()
==
null
?
"0"
:
diEx
.
getSafetystock
().
toString
();
objs
[
8
]
=
diEx
.
getBasicLinjieNumber
()
==
null
?
"0"
:
diEx
.
getBasicLinjieNumber
().
toString
();
objects
.
add
(
objs
);
}
}
File
file
=
ExcelUtils
.
exportObjectsWithoutTitle
(
title
+
pid
,
names
,
title
,
objects
);
ExportExecUtil
.
showExec
(
file
,
file
.
getName
(),
response
);
res
.
code
=
200
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导出失败"
;
res
.
code
=
500
;
}
return
res
;
}
}
src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
View file @
535983d0
package
com.jsh.erp.datasource.mappers
;
import
com.jsh.erp.datasource.entities.*
;
import
com.jsh.erp.datasource.vo.DepotItemStockWarningCount
;
import
org.apache.ibatis.annotations.Param
;
import
java.math.BigDecimal
;
...
...
@@ -172,4 +173,10 @@ public interface DepotItemMapperEx {
List
<
DepotItem
>
getDepotItemListListByDepotIds
(
@Param
(
"depotIds"
)
String
[]
depotIds
);
List
<
DepotItem
>
getDepotItemListListByMaterialIds
(
@Param
(
"materialIds"
)
String
[]
materialIds
);
List
<
DepotItemStockWarningCount
>
findStockWarningCount
(
@Param
(
"offset"
)
Integer
offset
,
@Param
(
"rows"
)
Integer
rows
,
@Param
(
"pid"
)
Integer
pid
);
int
findStockWarningCountTotal
(
@Param
(
"pid"
)
Integer
pid
);
}
src/main/java/com/jsh/erp/datasource/vo/DepotItemStockWarningCount.java
0 → 100644
View file @
535983d0
package
com.jsh.erp.datasource.vo
;
import
java.math.BigDecimal
;
public
class
DepotItemStockWarningCount
{
private
String
MaterialName
;
private
String
MaterialModel
;
private
String
categoryName
;
private
String
MaterialOther
;
private
String
MaterialUnit
;
private
BigDecimal
safetystock
;
//安全库存量
private
BigDecimal
BasicInNumber
;
//入库量
private
BigDecimal
BasicOutNumber
;
//出库量
private
BigDecimal
BasicNumber
;
//库存
private
BigDecimal
BasicLinjieNumber
;
//临界库存
public
String
getMaterialName
()
{
return
MaterialName
;
}
public
void
setMaterialName
(
String
materialName
)
{
MaterialName
=
materialName
;
}
public
String
getMaterialModel
()
{
return
MaterialModel
;
}
public
void
setMaterialModel
(
String
materialModel
)
{
MaterialModel
=
materialModel
;
}
public
String
getCategoryName
()
{
return
categoryName
;
}
public
void
setCategoryName
(
String
categoryName
)
{
this
.
categoryName
=
categoryName
;
}
public
String
getMaterialOther
()
{
return
MaterialOther
;
}
public
void
setMaterialOther
(
String
materialOther
)
{
MaterialOther
=
materialOther
;
}
public
String
getMaterialUnit
()
{
return
MaterialUnit
;
}
public
void
setMaterialUnit
(
String
materialUnit
)
{
MaterialUnit
=
materialUnit
;
}
public
BigDecimal
getSafetystock
()
{
return
safetystock
;
}
public
void
setSafetystock
(
BigDecimal
safetystock
)
{
this
.
safetystock
=
safetystock
;
}
public
BigDecimal
getBasicInNumber
()
{
return
BasicInNumber
;
}
public
void
setBasicInNumber
(
BigDecimal
basicInNumber
)
{
BasicInNumber
=
basicInNumber
;
}
public
BigDecimal
getBasicOutNumber
()
{
return
BasicOutNumber
;
}
public
void
setBasicOutNumber
(
BigDecimal
basicOutNumber
)
{
BasicOutNumber
=
basicOutNumber
;
}
public
BigDecimal
getBasicNumber
()
{
return
BasicNumber
;
}
public
void
setBasicNumber
(
BigDecimal
basicNumber
)
{
BasicNumber
=
basicNumber
;
}
public
BigDecimal
getBasicLinjieNumber
()
{
return
BasicLinjieNumber
;
}
public
void
setBasicLinjieNumber
(
BigDecimal
basicLinjieNumber
)
{
BasicLinjieNumber
=
basicLinjieNumber
;
}
}
src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java
View file @
535983d0
...
...
@@ -9,17 +9,16 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapper;
import
com.jsh.erp.datasource.mappers.DepotItemMapper
;
import
com.jsh.erp.datasource.mappers.DepotItemMapperEx
;
import
com.jsh.erp.datasource.mappers.SerialNumberMapperEx
;
import
com.jsh.erp.datasource.vo.DepotItemStockWarningCount
;
import
com.jsh.erp.exception.BusinessRunTimeException
;
import
com.jsh.erp.service.log.LogService
;
import
com.jsh.erp.service.material.MaterialService
;
import
com.jsh.erp.service.serialNumber.SerialNumberService
;
import
com.jsh.erp.service.user.UserService
;
import
com.jsh.erp.utils.ErpInfo
;
import
com.jsh.erp.utils.QueryUtils
;
import
com.jsh.erp.utils.StringUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.context.request.RequestContextHolder
;
...
...
@@ -32,8 +31,6 @@ import java.util.Date;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
jsh
.
erp
.
utils
.
ResponseJsonUtil
.
returnJson
;
@Service
public
class
DepotItemService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DepotItemService
.
class
);
...
...
@@ -795,4 +792,32 @@ public class DepotItemService {
}
return
result
;
}
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
List
<
DepotItemStockWarningCount
>
findStockWarningCount
(
int
offset
,
Integer
rows
,
Integer
pid
)
{
List
<
DepotItemStockWarningCount
>
list
=
null
;
try
{
list
=
depotItemMapperEx
.
findStockWarningCount
(
offset
,
rows
,
pid
);
}
catch
(
Exception
e
){
logger
.
error
(
"异常码[{}],异常提示[{}],异常[{}]"
,
ExceptionConstants
.
DATA_READ_FAIL_CODE
,
ExceptionConstants
.
DATA_READ_FAIL_MSG
,
e
);
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
DATA_READ_FAIL_CODE
,
ExceptionConstants
.
DATA_READ_FAIL_MSG
);
}
return
list
;
}
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
int
findStockWarningCountTotal
(
Integer
pid
)
{
int
result
=
0
;
try
{
result
=
depotItemMapperEx
.
findStockWarningCountTotal
(
pid
);
}
catch
(
Exception
e
){
logger
.
error
(
"异常码[{}],异常提示[{}],异常[{}]"
,
ExceptionConstants
.
DATA_READ_FAIL_CODE
,
ExceptionConstants
.
DATA_READ_FAIL_MSG
,
e
);
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
DATA_READ_FAIL_CODE
,
ExceptionConstants
.
DATA_READ_FAIL_MSG
);
}
return
result
;
}
}
src/main/resources/mapper_xml/DepotItemMapperEx.xml
View file @
535983d0
...
...
@@ -41,6 +41,18 @@
<result
column=
"MaterialUnit"
jdbcType=
"VARCHAR"
property=
"MaterialUnit"
/>
<result
column=
"MColor"
jdbcType=
"VARCHAR"
property=
"MColor"
/>
</resultMap>
<resultMap
id=
"ResultStockWarningCount"
type=
"com.jsh.erp.datasource.vo.DepotItemStockWarningCount"
>
<result
column=
"MaterialName"
jdbcType=
"VARCHAR"
property=
"MaterialName"
/>
<result
column=
"MaterialModel"
jdbcType=
"VARCHAR"
property=
"MaterialModel"
/>
<result
column=
"categoryName"
jdbcType=
"VARCHAR"
property=
"categoryName"
/>
<result
column=
"MaterialOther"
jdbcType=
"VARCHAR"
property=
"MaterialOther"
/>
<result
column=
"MaterialUnit"
jdbcType=
"VARCHAR"
property=
"MaterialUnit"
/>
<result
column=
"safetystock"
jdbcType=
"DECIMAL"
property=
"safetystock"
/>
<result
column=
"BasicInNumber"
jdbcType=
"DECIMAL"
property=
"BasicInNumber"
/>
<result
column=
"BasicOutNumber"
jdbcType=
"DECIMAL"
property=
"BasicOutNumber"
/>
<result
column=
"BasicNumber"
jdbcType=
"DECIMAL"
property=
"BasicNumber"
/>
<result
column=
"BasicLinjieNumber"
jdbcType=
"DECIMAL"
property=
"BasicLinjieNumber"
/>
</resultMap>
<select
id=
"selectByConditionDepotItem"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"com.jsh.erp.datasource.mappers.DepotItemMapper.BaseResultMap"
>
select *
...
...
@@ -438,5 +450,95 @@
<select
id=
"findStockWarningCount"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"ResultStockWarningCount"
>
SELECT
m. NAME MaterialName,
m.Model MaterialModel,
mc.`Name` categoryName,
CONCAT(
'(',
m.Standard,
')',
'(',
m.Color,
')'
) AS MaterialOther,
m.unit MaterialUnit,
ifnull(m.safetystock,0) safetystock,
IFNULL(intype.BasicInNumber ,0) BasicInNumber,
IFNULL(outtype.BasicOutNumber ,0) BasicOutNumber,
(
IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0)
) BasicNumber,
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0)) BasicLinjieNumber
FROM
jsh_material m
LEFT JOIN jsh_materialcategory mc ON mc.Id = m.CategoryId
LEFT JOIN (
SELECT
di.MaterialId,
ifnull(sum(BasicNumber), 0) AS BasicInNumber
FROM
jsh_depothead dh
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
AND ifnull(di.delete_Flag, '0') != '1'
WHERE
dh.type = '入库'
<if
test=
"pid != null"
>
and di.DepotId= ${pid}
</if>
AND ifnull(dh.delete_Flag, '0') != '1'
) intype ON intype.MaterialId = m.id
LEFT JOIN (
SELECT
di.MaterialId,
ifnull(sum(BasicNumber), 0) AS BasicOutNumber
FROM
jsh_depothead dh
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
AND ifnull(di.delete_Flag, '0') != '1'
WHERE
dh.type = '出库'
AND dh.SubType != '调拨'
<if
test=
"pid != null"
>
and di.DepotId= ${pid}
</if>
AND ifnull(dh.delete_Flag, '0') != '1'
) outtype ON outtype.MaterialId = m.id
WHERE
1 = 1
AND ifnull(m.delete_Flag, '0') != '1'
AND intype.BasicInNumber > 0
ORDER BY
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0))
<if
test=
"offset != null and rows != null"
>
limit #{offset},#{rows}
</if>
</select>
<select
id=
"findStockWarningCountTotal"
resultType=
"java.lang.Integer"
>
select count(1) from
jsh_material m
LEFT JOIN (
SELECT
di.MaterialId,
ifnull(sum(BasicNumber), 0) AS BasicInNumber
FROM
jsh_depothead dh
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
AND ifnull(di.delete_Flag, '0') != '1'
WHERE
dh.type = '入库'
<if
test=
"pid != null"
>
and di.DepotId= ${pid}
</if>
AND ifnull(dh.delete_Flag, '0') != '1'
) intype ON intype.MaterialId = m.id
WHERE
1 = 1
AND ifnull(m.delete_Flag, '0') != '1'
AND intype.BasicInNumber > 0
</select>
</mapper>
\ No newline at end of file
</mapper>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment