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
7b795718
Commit
7b795718
authored
Jun 10, 2019
by
季圣华
Browse files
解决单据提交时库存未根据仓库去判断的bug
parent
4cf39d4d
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
View file @
7b795718
...
...
@@ -51,6 +51,14 @@ public interface DepotItemMapperEx {
int
findByTypeAndMaterialIdOut
(
@Param
(
"mId"
)
Long
mId
);
int
findByTypeAndDepotIdAndMaterialIdIn
(
@Param
(
"depotId"
)
Long
depotId
,
@Param
(
"mId"
)
Long
mId
);
int
findByTypeAndDepotIdAndMaterialIdOut
(
@Param
(
"depotId"
)
Long
depotId
,
@Param
(
"mId"
)
Long
mId
);
List
<
DepotItemVo4WithInfoEx
>
getDetailList
(
@Param
(
"headerId"
)
Long
headerId
);
...
...
src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java
View file @
7b795718
...
...
@@ -307,6 +307,14 @@ public class DepotItemService {
return
result
;
}
public
int
findByTypeAndMaterialIdAndDepotId
(
String
type
,
Long
mId
,
Long
depotId
)
{
if
(
type
.
equals
(
TYPE
))
{
return
depotItemMapperEx
.
findByTypeAndDepotIdAndMaterialIdIn
(
depotId
,
mId
);
}
else
{
return
depotItemMapperEx
.
findByTypeAndDepotIdAndMaterialIdOut
(
depotId
,
mId
);
}
}
public
List
<
DepotItemVo4WithInfoEx
>
getDetailList
(
Long
headerId
)
throws
Exception
{
List
<
DepotItemVo4WithInfoEx
>
list
=
null
;
try
{
...
...
@@ -588,7 +596,7 @@ public class DepotItemService {
if
(
material
==
null
){
continue
;
}
if
(
getCurrentInStock
(
depotItem
.
getMaterialid
())<(
depotItem
.
getBasicnumber
()==
null
?
0
:
depotItem
.
getBasicnumber
()).
intValue
()){
if
(
getCurrentInStock
(
depotItem
.
getMaterialid
()
,
depotItem
.
getDepotid
()
)<(
depotItem
.
getBasicnumber
()==
null
?
0
:
depotItem
.
getBasicnumber
()).
intValue
()){
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
MATERIAL_STOCK_NOT_ENOUGH_CODE
,
String
.
format
(
ExceptionConstants
.
MATERIAL_STOCK_NOT_ENOUGH_MSG
,
material
==
null
?
""
:
material
.
getName
()));
}
...
...
@@ -711,7 +719,7 @@ public class DepotItemService {
}
/**出库时处理序列号*/
if
(
BusinessConstants
.
DEPOTHEAD_TYPE_OUT
.
equals
(
depotHead
.
getType
())){
if
(
getCurrentInStock
(
depotItem
.
getMaterialid
())<(
depotItem
.
getBasicnumber
()==
null
?
0
:
depotItem
.
getBasicnumber
()).
intValue
()){
if
(
getCurrentInStock
(
depotItem
.
getMaterialid
()
,
depotItem
.
getDepotid
()
)<(
depotItem
.
getBasicnumber
()==
null
?
0
:
depotItem
.
getBasicnumber
()).
intValue
()){
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
MATERIAL_STOCK_NOT_ENOUGH_CODE
,
String
.
format
(
ExceptionConstants
.
MATERIAL_STOCK_NOT_ENOUGH_MSG
,
material
==
null
?
""
:
material
.
getName
()));
}
...
...
@@ -754,11 +762,11 @@ public class DepotItemService {
* 查询商品当前库存数量是否充足,
*
* */
public
int
getCurrentInStock
(
Long
materialId
)
throws
Exception
{
public
int
getCurrentInStock
(
Long
materialId
,
Long
depotId
)
{
//入库数量
int
inSum
=
findByTypeAndMaterialId
(
BusinessConstants
.
DEPOTHEAD_TYPE_STORAGE
,
materialId
);
int
inSum
=
findByTypeAndMaterialId
AndDepotId
(
BusinessConstants
.
DEPOTHEAD_TYPE_STORAGE
,
materialId
,
depotId
);
//出库数量
int
outSum
=
findByTypeAndMaterialId
(
BusinessConstants
.
DEPOTHEAD_TYPE_OUT
,
materialId
);
int
outSum
=
findByTypeAndMaterialId
AndDepotId
(
BusinessConstants
.
DEPOTHEAD_TYPE_OUT
,
materialId
,
depotId
);
return
(
inSum
-
outSum
);
}
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
...
...
src/main/resources/mapper_xml/DepotItemMapperEx.xml
View file @
7b795718
...
...
@@ -148,6 +148,23 @@
and ifnull(dh.delete_Flag,'0') !='1'
</select>
<select
id=
"findByTypeAndDepotIdAndMaterialIdIn"
resultType=
"java.lang.Integer"
>
select ifnull(sum(BasicNumber),0) as BasicNumber 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 di.MaterialId = ${mId} and di.DepotId = ${depotId}
and ifnull(dh.delete_Flag,'0') !='1'
</select>
<select
id=
"findByTypeAndDepotIdAndMaterialIdOut"
resultType=
"java.lang.Integer"
>
select ifnull(sum(BasicNumber),0) as BasicNumber 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!='调拨'
and di.MaterialId = ${mId} and di.DepotId = ${depotId}
and ifnull(dh.delete_Flag,'0') !='1'
</select>
<select
id=
"getDetailList"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"ResultWithInfoExMap"
>
select di.*,m.Name MName,m.Model MModel,m.Unit MaterialUnit,m.Color MColor,m.Standard MStandard,m.Mfrs MMfrs,
m.OtherField1 MOtherField1,m.OtherField2 MOtherField2,m.OtherField3 MOtherField3,
...
...
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