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
ad4b2265
Commit
ad4b2265
authored
May 31, 2022
by
季圣华
Browse files
优化商品库存报表的查询逻辑
parent
e8fdc839
Changes
5
Hide whitespace changes
Inline
Side-by-side
jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java
View file @
ad4b2265
...
@@ -2,6 +2,7 @@ package com.jsh.erp.controller;
...
@@ -2,6 +2,7 @@ package com.jsh.erp.controller;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jsh.erp.datasource.entities.MaterialInitialStockWithMaterial
;
import
com.jsh.erp.datasource.entities.MaterialVo4Unit
;
import
com.jsh.erp.datasource.entities.MaterialVo4Unit
;
import
com.jsh.erp.datasource.entities.Unit
;
import
com.jsh.erp.datasource.entities.Unit
;
import
com.jsh.erp.service.depot.DepotService
;
import
com.jsh.erp.service.depot.DepotService
;
...
@@ -591,6 +592,11 @@ public class MaterialController {
...
@@ -591,6 +592,11 @@ public class MaterialController {
depotList
.
add
(
object
.
getLong
(
"id"
));
depotList
.
add
(
object
.
getLong
(
"id"
));
}
}
}
}
Map
<
Long
,
BigDecimal
>
initialStockMap
=
new
HashMap
<>();
List
<
MaterialInitialStockWithMaterial
>
initialStockList
=
materialService
.
getInitialStockWithMaterial
(
depotList
);
for
(
MaterialInitialStockWithMaterial
mism:
initialStockList
)
{
initialStockMap
.
put
(
mism
.
getMaterialId
(),
mism
.
getNumber
());
}
List
<
MaterialVo4Unit
>
dataList
=
materialService
.
getListWithStock
(
depotList
,
idList
,
StringUtil
.
toNull
(
materialParam
),
zeroStock
,
List
<
MaterialVo4Unit
>
dataList
=
materialService
.
getListWithStock
(
depotList
,
idList
,
StringUtil
.
toNull
(
materialParam
),
zeroStock
,
StringUtil
.
safeSqlParse
(
column
),
StringUtil
.
safeSqlParse
(
order
),
(
currentPage
-
1
)*
pageSize
,
pageSize
);
StringUtil
.
safeSqlParse
(
column
),
StringUtil
.
safeSqlParse
(
order
),
(
currentPage
-
1
)*
pageSize
,
pageSize
);
int
total
=
materialService
.
getListWithStockCount
(
depotList
,
idList
,
StringUtil
.
toNull
(
materialParam
),
zeroStock
);
int
total
=
materialService
.
getListWithStockCount
(
depotList
,
idList
,
StringUtil
.
toNull
(
materialParam
),
zeroStock
);
...
@@ -598,7 +604,9 @@ public class MaterialController {
...
@@ -598,7 +604,9 @@ public class MaterialController {
map
.
put
(
"total"
,
total
);
map
.
put
(
"total"
,
total
);
map
.
put
(
"currentStock"
,
materialVo4Unit
.
getCurrentStock
());
map
.
put
(
"currentStock"
,
materialVo4Unit
.
getCurrentStock
());
map
.
put
(
"currentStockPrice"
,
materialVo4Unit
.
getCurrentStockPrice
());
map
.
put
(
"currentStockPrice"
,
materialVo4Unit
.
getCurrentStockPrice
());
//存放数据json数组
for
(
MaterialVo4Unit
item:
dataList
)
{
item
.
setInitialStock
(
initialStockMap
.
get
(
item
.
getId
()));
}
map
.
put
(
"rows"
,
dataList
);
map
.
put
(
"rows"
,
dataList
);
res
.
code
=
200
;
res
.
code
=
200
;
res
.
data
=
map
;
res
.
data
=
map
;
...
...
jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialInitialStockWithMaterial.java
0 → 100644
View file @
ad4b2265
package
com.jsh.erp.datasource.entities
;
import
java.math.BigDecimal
;
public
class
MaterialInitialStockWithMaterial
{
private
Long
materialId
;
private
BigDecimal
number
;
public
Long
getMaterialId
()
{
return
materialId
;
}
public
void
setMaterialId
(
Long
materialId
)
{
this
.
materialId
=
materialId
;
}
public
BigDecimal
getNumber
()
{
return
number
;
}
public
void
setNumber
(
BigDecimal
number
)
{
this
.
number
=
number
;
}
}
\ No newline at end of file
jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java
View file @
ad4b2265
package
com.jsh.erp.datasource.mappers
;
package
com.jsh.erp.datasource.mappers
;
import
com.jsh.erp.datasource.entities.AccountHead
;
import
com.jsh.erp.datasource.entities.*
;
import
com.jsh.erp.datasource.entities.Material
;
import
com.jsh.erp.datasource.entities.MaterialVo4Unit
;
import
com.jsh.erp.datasource.entities.Unit
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -110,6 +108,9 @@ public interface MaterialMapperEx {
...
@@ -110,6 +108,9 @@ public interface MaterialMapperEx {
@Param
(
"barCodeArray"
)
String
[]
barCodeArray
,
@Param
(
"barCodeArray"
)
String
[]
barCodeArray
,
@Param
(
"mId"
)
Long
mId
);
@Param
(
"mId"
)
Long
mId
);
List
<
MaterialInitialStockWithMaterial
>
getInitialStockWithMaterial
(
@Param
(
"depotList"
)
List
<
Long
>
depotList
);
List
<
MaterialVo4Unit
>
getListWithStock
(
List
<
MaterialVo4Unit
>
getListWithStock
(
@Param
(
"depotList"
)
List
<
Long
>
depotList
,
@Param
(
"depotList"
)
List
<
Long
>
depotList
,
@Param
(
"idList"
)
List
<
Long
>
idList
,
@Param
(
"idList"
)
List
<
Long
>
idList
,
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java
View file @
ad4b2265
...
@@ -1034,6 +1034,10 @@ public class MaterialService {
...
@@ -1034,6 +1034,10 @@ public class MaterialService {
return
materialMapperEx
.
getMaterialByBarCodeAndWithOutMId
(
barCodeArray
,
mId
);
return
materialMapperEx
.
getMaterialByBarCodeAndWithOutMId
(
barCodeArray
,
mId
);
}
}
public
List
<
MaterialInitialStockWithMaterial
>
getInitialStockWithMaterial
(
List
<
Long
>
depotList
)
{
return
materialMapperEx
.
getInitialStockWithMaterial
(
depotList
);
}
public
List
<
MaterialVo4Unit
>
getListWithStock
(
List
<
Long
>
depotList
,
List
<
Long
>
idList
,
String
materialParam
,
Integer
zeroStock
,
public
List
<
MaterialVo4Unit
>
getListWithStock
(
List
<
Long
>
depotList
,
List
<
Long
>
idList
,
String
materialParam
,
Integer
zeroStock
,
String
column
,
String
order
,
Integer
offset
,
Integer
rows
)
{
String
column
,
String
order
,
Integer
offset
,
Integer
rows
)
{
return
materialMapperEx
.
getListWithStock
(
depotList
,
idList
,
materialParam
,
zeroStock
,
column
,
order
,
offset
,
rows
);
return
materialMapperEx
.
getListWithStock
(
depotList
,
idList
,
materialParam
,
zeroStock
,
column
,
order
,
offset
,
rows
);
...
...
jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml
View file @
ad4b2265
...
@@ -30,6 +30,11 @@
...
@@ -30,6 +30,11 @@
<result
column=
"sku"
jdbcType=
"VARCHAR"
property=
"sku"
/>
<result
column=
"sku"
jdbcType=
"VARCHAR"
property=
"sku"
/>
</resultMap>
</resultMap>
<resultMap
id=
"InitialStockWithMaterialMap"
type=
"com.jsh.erp.datasource.entities.MaterialInitialStockWithMaterial"
>
<result
column=
"materialId"
jdbcType=
"BIGINT"
property=
"materialId"
/>
<result
column=
"number"
jdbcType=
"DECIMAL"
property=
"number"
/>
</resultMap>
<select
id=
"selectByConditionMaterial"
parameterType=
"com.jsh.erp.datasource.entities.MaterialExample"
resultMap=
"ResultMapList"
>
<select
id=
"selectByConditionMaterial"
parameterType=
"com.jsh.erp.datasource.entities.MaterialExample"
resultMap=
"ResultMapList"
>
select m.*,u.name unitName, mc.name categoryName, me.bar_code,
select m.*,u.name unitName, mc.name categoryName, me.bar_code,
me.purchase_decimal, me.commodity_decimal, me.wholesale_decimal,me.low_decimal,me.sku
me.purchase_decimal, me.commodity_decimal, me.wholesale_decimal,me.low_decimal,me.sku
...
@@ -531,17 +536,22 @@
...
@@ -531,17 +536,22 @@
and id = #{id}
and id = #{id}
</update>
</update>
<select
id=
"get
ListWithStock"
resultMap=
"ResultMapListWithStock
"
>
<select
id=
"get
InitialStockWithMaterial"
resultMap=
"InitialStockWithMaterialMap
"
>
select m
.*, me.commodity_unit unitName, mc.name categoryName, me.bar_code,
select m
aterial_id, ifnull(sum(mis.number),0)
ifnull(me.purchase_decimal,0) purchase_decimal,
from jsh_material_initial_stock mis
(select ifnull(sum(mis.number),0) from jsh_material_initial_stock mis where mis.material_id = m.id
where 1=1
<if
test=
"depotList.size()>0"
>
<if
test=
"depotList.size()>0"
>
and mis.depot_id in
and mis.depot_id in
<foreach
collection=
"depotList"
item=
"item"
index=
"index"
separator=
","
open=
"("
close=
")"
>
<foreach
collection=
"depotList"
item=
"item"
index=
"index"
separator=
","
open=
"("
close=
")"
>
#{item}
#{item}
</foreach>
</foreach>
</if>
</if>
) initialStock,
group by mis.material_id
</select>
<select
id=
"getListWithStock"
resultMap=
"ResultMapListWithStock"
>
select m.*, me.commodity_unit unitName, mc.name categoryName, me.bar_code,
ifnull(me.purchase_decimal,0) purchase_decimal,
ifnull(sum(mcs.current_number),0) currentStock,
ifnull(sum(mcs.current_number),0) currentStock,
sum(ifnull(me.purchase_decimal, 0) * ifnull(mcs.current_number, 0)) currentStockPrice
sum(ifnull(me.purchase_decimal, 0) * ifnull(mcs.current_number, 0)) currentStockPrice
FROM jsh_material m
FROM jsh_material m
...
...
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