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
829e9552
Commit
829e9552
authored
May 24, 2022
by
季圣华
Browse files
解决序列号和批号出库的时候bug
parent
da526fa8
Changes
3
Hide whitespace changes
Inline
Side-by-side
jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java
View file @
829e9552
...
@@ -169,6 +169,5 @@ public interface DepotItemMapperEx {
...
@@ -169,6 +169,5 @@ public interface DepotItemMapperEx {
Long
getCountByMaterialAndBatchNumber
(
Long
getCountByMaterialAndBatchNumber
(
@Param
(
"meId"
)
Long
meId
,
@Param
(
"meId"
)
Long
meId
,
@Param
(
"batchNumber"
)
String
batchNumber
,
@Param
(
"batchNumber"
)
String
batchNumber
);
@Param
(
"type"
)
String
type
);
}
}
jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java
View file @
829e9552
...
@@ -405,11 +405,8 @@ public class DepotItemService {
...
@@ -405,11 +405,8 @@ public class DepotItemService {
depotItem
.
setSnList
(
rowObj
.
getString
(
"snList"
));
depotItem
.
setSnList
(
rowObj
.
getString
(
"snList"
));
if
(
StringUtil
.
isExist
(
rowObj
.
get
(
"depotId"
)))
{
if
(
StringUtil
.
isExist
(
rowObj
.
get
(
"depotId"
)))
{
Long
depotId
=
rowObj
.
getLong
(
"depotId"
);
Long
depotId
=
rowObj
.
getLong
(
"depotId"
);
if
(
BusinessConstants
.
SUB_TYPE_PURCHASE
.
equals
(
depotHead
.
getSubType
())||
serialNumberService
.
addSerialNumberByBill
(
depotHead
.
getType
(),
depotHead
.
getSubType
(),
BusinessConstants
.
SUB_TYPE_OTHER
.
equals
(
depotHead
.
getSubType
())||
depotHead
.
getNumber
(),
materialExtend
.
getMaterialId
(),
depotId
,
depotItem
.
getSnList
());
BusinessConstants
.
SUB_TYPE_SALES_RETURN
.
equals
(
depotHead
.
getSubType
()))
{
serialNumberService
.
addSerialNumberByBill
(
depotHead
.
getNumber
(),
materialExtend
.
getMaterialId
(),
depotId
,
depotItem
.
getSnList
());
}
}
}
}
else
{
}
else
{
//序列号不能为空
//序列号不能为空
...
@@ -419,15 +416,9 @@ public class DepotItemService {
...
@@ -419,15 +416,9 @@ public class DepotItemService {
}
}
}
}
if
(
StringUtil
.
isExist
(
rowObj
.
get
(
"batchNumber"
)))
{
if
(
StringUtil
.
isExist
(
rowObj
.
get
(
"batchNumber"
)))
{
//入库的时候批号不能重复
//校验录入的批号是否重复
Long
bnCount
=
depotItemMapperEx
.
getCountByMaterialAndBatchNumber
(
materialExtend
.
getId
(),
rowObj
.
getString
(
"batchNumber"
),
"入库"
);
checkBatchNumberIsExist
(
depotHead
.
getType
(),
depotHead
.
getSubType
(),
materialExtend
.
getId
(),
rowObj
.
getString
(
"batchNumber"
),
barCode
);
if
(
bnCount
==
0
)
{
depotItem
.
setBatchNumber
(
rowObj
.
getString
(
"batchNumber"
));
depotItem
.
setBatchNumber
(
rowObj
.
getString
(
"batchNumber"
));
}
else
{
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
DEPOT_HEAD_BATCH_NUMBERE_EXISTS_CODE
,
String
.
format
(
ExceptionConstants
.
DEPOT_HEAD_BATCH_NUMBERE_EXISTS_MSG
,
barCode
));
}
}
else
{
}
else
{
//批号不能为空
//批号不能为空
if
(
BusinessConstants
.
ENABLE_BATCH_NUMBER_ENABLED
.
equals
(
material
.
getEnableBatchNumber
()))
{
if
(
BusinessConstants
.
ENABLE_BATCH_NUMBER_ENABLED
.
equals
(
material
.
getEnableBatchNumber
()))
{
...
@@ -580,13 +571,34 @@ public class DepotItemService {
...
@@ -580,13 +571,34 @@ public class DepotItemService {
String
.
format
(
ExceptionConstants
.
DEPOT_HEAD_ROW_FAILED_MSG
));
String
.
format
(
ExceptionConstants
.
DEPOT_HEAD_ROW_FAILED_MSG
));
}
}
}
}
/**
* 校验录入的批号是否重复
* @param type
* @param subType
* @param meId
* @param batchNumber
* @param barCode
*/
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
void
checkBatchNumberIsExist
(
String
type
,
String
subType
,
Long
meId
,
String
batchNumber
,
String
barCode
)
{
if
((
BusinessConstants
.
SUB_TYPE_PURCHASE
.
equals
(
subType
)
||
BusinessConstants
.
SUB_TYPE_OTHER
.
equals
(
subType
)
||
BusinessConstants
.
SUB_TYPE_SALES_RETURN
.
equals
(
subType
))
&&
BusinessConstants
.
DEPOTHEAD_TYPE_IN
.
equals
(
type
))
{
Long
bnCount
=
depotItemMapperEx
.
getCountByMaterialAndBatchNumber
(
meId
,
batchNumber
);
if
(
bnCount
>
0
)
{
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
DEPOT_HEAD_BATCH_NUMBERE_EXISTS_CODE
,
String
.
format
(
ExceptionConstants
.
DEPOT_HEAD_BATCH_NUMBERE_EXISTS_MSG
,
barCode
));
}
}
}
/**
/**
* 判断单据的状态
* 判断单据的状态
* 通过数组对比:原单据的商品和商品数量(汇总) 与 分批操作后单据的商品和商品数量(汇总)
* 通过数组对比:原单据的商品和商品数量(汇总) 与 分批操作后单据的商品和商品数量(汇总)
* @param depotHead
* @param depotHead
* @return
* @return
*/
*/
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
String
getBillStatusByParam
(
DepotHead
depotHead
)
{
public
String
getBillStatusByParam
(
DepotHead
depotHead
)
{
String
res
=
BusinessConstants
.
BILLS_STATUS_SKIPED
;
String
res
=
BusinessConstants
.
BILLS_STATUS_SKIPED
;
//获取原单据的商品和商品数量(汇总)
//获取原单据的商品和商品数量(汇总)
...
@@ -616,6 +628,7 @@ public class DepotItemService {
...
@@ -616,6 +628,7 @@ public class DepotItemService {
* @param depotHead
* @param depotHead
* @param billStatus
* @param billStatus
*/
*/
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
void
changeBillStatus
(
DepotHead
depotHead
,
String
billStatus
)
{
public
void
changeBillStatus
(
DepotHead
depotHead
,
String
billStatus
)
{
DepotHead
depotHeadOrders
=
new
DepotHead
();
DepotHead
depotHeadOrders
=
new
DepotHead
();
depotHeadOrders
.
setStatus
(
billStatus
);
depotHeadOrders
.
setStatus
(
billStatus
);
...
@@ -637,6 +650,7 @@ public class DepotItemService {
...
@@ -637,6 +650,7 @@ public class DepotItemService {
* @param depotHead
* @param depotHead
* @param billStatus
* @param billStatus
*/
*/
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
void
changeBillPurchaseStatus
(
DepotHead
depotHead
,
String
billStatus
)
{
public
void
changeBillPurchaseStatus
(
DepotHead
depotHead
,
String
billStatus
)
{
DepotHead
depotHeadOrders
=
new
DepotHead
();
DepotHead
depotHeadOrders
=
new
DepotHead
();
depotHeadOrders
.
setPurchaseStatus
(
billStatus
);
depotHeadOrders
.
setPurchaseStatus
(
billStatus
);
...
...
jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java
View file @
829e9552
...
@@ -394,33 +394,39 @@ public class SerialNumberService {
...
@@ -394,33 +394,39 @@ public class SerialNumberService {
return
count
;
return
count
;
}
}
public
void
addSerialNumberByBill
(
String
inBillNo
,
Long
materialId
,
Long
depotId
,
String
snList
)
throws
Exception
{
public
void
addSerialNumberByBill
(
String
type
,
String
subType
,
String
inBillNo
,
Long
materialId
,
Long
depotId
,
String
snList
)
throws
Exception
{
//将中文的逗号批量替换为英文逗号
//录入序列号的时候不能重复
snList
=
snList
.
replaceAll
(
","
,
","
);
if
((
BusinessConstants
.
SUB_TYPE_PURCHASE
.
equals
(
subType
)
||
List
<
String
>
snArr
=
StringUtil
.
strToStringList
(
snList
);
BusinessConstants
.
SUB_TYPE_OTHER
.
equals
(
subType
)
||
for
(
String
sn:
snArr
)
{
BusinessConstants
.
SUB_TYPE_SALES_RETURN
.
equals
(
subType
))
&&
List
<
SerialNumber
>
list
=
new
ArrayList
<>();
BusinessConstants
.
DEPOTHEAD_TYPE_IN
.
equals
(
type
))
{
SerialNumberExample
example
=
new
SerialNumberExample
();
//将中文的逗号批量替换为英文逗号
example
.
createCriteria
().
andMaterialIdEqualTo
(
materialId
).
andSerialNumberEqualTo
(
sn
)
snList
=
snList
.
replaceAll
(
","
,
","
);
.
andDeleteFlagNotEqualTo
(
BusinessConstants
.
DELETE_FLAG_DELETED
);
List
<
String
>
snArr
=
StringUtil
.
strToStringList
(
snList
);
list
=
serialNumberMapper
.
selectByExample
(
example
);
for
(
String
sn
:
snArr
)
{
//判断如果不存在重复序列号就新增
List
<
SerialNumber
>
list
=
new
ArrayList
<>();
if
(
list
==
null
||
list
.
size
()
==
0
)
{
SerialNumberExample
example
=
new
SerialNumberExample
();
SerialNumber
serialNumber
=
new
SerialNumber
();
example
.
createCriteria
().
andMaterialIdEqualTo
(
materialId
).
andSerialNumberEqualTo
(
sn
)
serialNumber
.
setMaterialId
(
materialId
);
.
andDeleteFlagNotEqualTo
(
BusinessConstants
.
DELETE_FLAG_DELETED
);
serialNumber
.
setDepotId
(
depotId
);
list
=
serialNumberMapper
.
selectByExample
(
example
);
serialNumber
.
setSerialNumber
(
sn
);
//判断如果不存在重复序列号就新增
Date
date
=
new
Date
();
if
(
list
==
null
||
list
.
size
()
==
0
)
{
serialNumber
.
setCreateTime
(
date
);
SerialNumber
serialNumber
=
new
SerialNumber
();
serialNumber
.
setUpdateTime
(
date
);
serialNumber
.
setMaterialId
(
materialId
);
User
userInfo
=
userService
.
getCurrentUser
();
serialNumber
.
setDepotId
(
depotId
);
serialNumber
.
setCreator
(
userInfo
==
null
?
null
:
userInfo
.
getId
());
serialNumber
.
setSerialNumber
(
sn
);
serialNumber
.
setUpdater
(
userInfo
==
null
?
null
:
userInfo
.
getId
());
Date
date
=
new
Date
();
serialNumber
.
setInBillNo
(
inBillNo
);
serialNumber
.
setCreateTime
(
date
);
serialNumberMapper
.
insertSelective
(
serialNumber
);
serialNumber
.
setUpdateTime
(
date
);
}
else
{
User
userInfo
=
userService
.
getCurrentUser
();
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
SERIAL_NUMBERE_ALREADY_EXISTS_CODE
,
serialNumber
.
setCreator
(
userInfo
==
null
?
null
:
userInfo
.
getId
());
String
.
format
(
ExceptionConstants
.
SERIAL_NUMBERE_ALREADY_EXISTS_MSG
,
sn
));
serialNumber
.
setUpdater
(
userInfo
==
null
?
null
:
userInfo
.
getId
());
serialNumber
.
setInBillNo
(
inBillNo
);
serialNumberMapper
.
insertSelective
(
serialNumber
);
}
else
{
throw
new
BusinessRunTimeException
(
ExceptionConstants
.
SERIAL_NUMBERE_ALREADY_EXISTS_CODE
,
String
.
format
(
ExceptionConstants
.
SERIAL_NUMBERE_ALREADY_EXISTS_MSG
,
sn
));
}
}
}
}
}
}
}
...
...
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