Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
郑小冰
/
orthopedics
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
6e8027e6
authored
Oct 15, 2019
by
ice
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
提交采购申请下推采购订单的备用字段1填充库存现有量,采购订单审核数量与库存现有量判断功能
parent
cdcb3990
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
91 additions
and
45 deletions
src/main/java/orthopedics/controller/bookcity/PurOrderHeaderController.java
src/main/java/orthopedics/dao/InvTransactionMapper.java
src/main/java/orthopedics/dao/PurOrderLineMapper.java
src/main/java/orthopedics/service/PurOrderLineService.java
src/main/java/orthopedics/service/TransactionServer.java
src/main/java/orthopedics/controller/bookcity/PurOrderHeaderController.java
View file @
6e8027e6
...
...
@@ -18,6 +18,7 @@ import orthopedics.vo.PurOrderHeaderPage;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/*采购订单模块*/
@RestController
...
...
@@ -44,6 +45,8 @@ public class PurOrderHeaderController {
@Autowired
private
RcvReceiptHeaderService
rcvReceiptHeaderService
;
@Autowired
private
TransactionServer
transactionServer
;
/**
*描述:下推生成采购订单
...
...
@@ -79,6 +82,11 @@ public class PurOrderHeaderController {
}
String
excutor
=
hrPerson
.
getId
();
purOrderHeaderPage
.
setBuyerId
(
hrPerson
.
getId
());
//插入库存现有量
for
(
PurOrderLine
purOrderLine:
purOrderHeaderPage
.
getPurOrderLineList
()){
Integer
sumItemIdQuantity
=
transactionServer
.
findByOrgIdAndItemId
(
purOrderHeaderPage
.
getOrgId
(),
purOrderLine
.
getItemId
());
purOrderLine
.
setAttribute1
(
String
.
valueOf
(
sumItemIdQuantity
));
}
PurOrderHeader
purOrderHeader
=
new
PurOrderHeader
();
BeanUtils
.
copyProperties
(
purOrderHeaderPage
,
purOrderHeader
);
purOrderHeaderService
.
saveMain
(
purOrderHeader
,
purOrderHeaderPage
.
getPurOrderLineList
());
...
...
@@ -100,69 +108,78 @@ public class PurOrderHeaderController {
public
Result
editOrderHeaderStatus
(
@RequestBody
List
<
PurOrderHeaderPage
>
purOrderHeaderPageList
,
@RequestParam
(
value
=
"status"
,
required
=
true
)
String
status
,
@RequestParam
(
value
=
"access_token"
,
required
=
true
)
String
accessToken
){
//检查accesstoken的有效性
SysAccessToken
sysAccessToken
=
userServer
.
checkAccessToken
(
accessToken
);
//查询用户
SysUser
sysUser
=
userServer
.
getSysUserById
(
sysAccessToken
.
getUserId
());
if
(
sysUser
==
null
){
return
new
Result
(
false
,
StatusCode
.
ERROR
,
ErrorEnum
.
UserNotExist
.
getErrorMsg
());
}
String
updateBy
=
sysUser
.
getRealname
();
//创建一个集合存放状态不匹配的采购单号,用于返回错误信息
List
<
String
>
error
Ids
=
new
ArrayList
<>();
List
<
String
>
error
List
=
new
ArrayList
<>();
//判断要审核或强制完成的订单是否存在以及状态
for
(
PurOrderHeaderPage
purOr
:
purOrderHeaderPageList
){
PurOrderHeader
purOrderHeader
=
purOrderHeaderService
.
selectPurOrderById
(
purOr
.
getId
());
label:
for
(
PurOrderHeaderPage
purOrderHeaderPage
:
purOrderHeaderPageList
){
PurOrderHeader
purOrderHeader
=
purOrderHeaderService
.
selectPurOrderById
(
purOr
derHeaderPage
.
getId
());
//判断实体类是否存在
if
(
purOrderHeader
==
null
){
return
new
Result
(
false
,
20001
,
ErrorEnum
.
NotExistModel
.
getErrorMsg
());
}
if
(!
purOrderHeader
.
getHeaderStatus
().
equals
(
purOr
.
getHeaderStatus
())){
return
new
Result
(
false
,
20001
,
ErrorEnum
.
DataTransmitError
.
getErrorMsg
());
errorList
.
add
(
"选中的采购订单号为"
+
purOrderHeaderPage
.
getOrderNumber
()+
"不存在,请刷新!"
);
continue
label
;
}
//调用审核接口
if
(
"approval"
.
equals
(
status
)){
//审核时状态必须为新建new
if
(!
"new"
.
equals
(
purOr
.
getHeaderStatus
())){
errorIds
.
add
(
purOr
.
getOrderNumber
());
if
(!
"new"
.
equals
(
purOrderHeader
.
getHeaderStatus
())){
errorList
.
add
(
"采购单号为:"
+
purOrderHeader
.
getOrderNumber
()+
"的状态不为新建,审核失败!"
);
continue
label
;
}
if
(
"000000006c60dba1016c60f588e00002"
.
equals
(
purOrderHeader
.
getOrderType
()))
{
List
<
PurOrderLine
>
purOrderLineList
=
purOrderLineService
.
findOrderLineByHeaderId
(
purOrderHeader
.
getId
());
for
(
PurOrderLine
purOrderLine
:
purOrderLineList
)
{
Integer
quantity
=
Integer
.
valueOf
(
purOrderLine
.
getQuantity
());
Integer
newSumQuantity
=
transactionServer
.
findByOrgIdAndItemId
(
purOrderHeader
.
getOrgId
(),
purOrderLine
.
getItemId
());
if
(
null
==
purOrderLine
.
getAttribute1
()
||
""
.
equals
(
purOrderLine
.
getAttribute1
())){
purOrderLineService
.
updateOrderLineSumQuantity
(
String
.
valueOf
(
newSumQuantity
),
purOrderLine
.
getId
());
}
else
{
Integer
sumQuantity
=
Integer
.
valueOf
(
purOrderLine
.
getAttribute1
());
if
(
sumQuantity
!=
newSumQuantity
)
{
purOrderLineService
.
updateOrderLineSumQuantity
(
String
.
valueOf
(
newSumQuantity
),
purOrderLine
.
getId
());
}
}
if
(
quantity
>
newSumQuantity
){
errorList
.
add
(
"采购订单号为:"
+
purOrderHeader
.
getOrderNumber
()+
"库存现有量不足,审核失败!"
);
continue
label
;
}
}
}
}
//调用强制完成接口
if
(
"completed"
.
equals
(
status
)){
//强制完成时状态必须为已审批approval
if
(!
"approval"
.
equals
(
purOr
.
getHeaderStatus
())){
errorIds
.
add
(
purOr
.
getOrderNumber
());
if
(!
"approval"
.
equals
(
purOrderHeader
.
getHeaderStatus
())){
errorList
.
add
(
"采购订单号为:"
+
purOrderHeader
.
getOrderNumber
()+
"的状态不为已审批,强制完成失败!"
);
continue
label
;
}
}
}
//有状态不匹配则返回出错信息
if
(
errorIds
.
size
()
!=
0
){
throw
ErrorEnum
.
NotAllowStatusERROR
.
createException
(
errorIds
);
}
else
{
//全部状态正确则继续
//强制完成判断
if
(
"completed"
.
equals
(
status
)){
//查找出与采购订单关联的接收单
for
(
PurOrderHeaderPage
purOrderHeaderPage:
purOrderHeaderPageList
){
RcvReceiptHeader
rcvReceiptHeader
=
rcvReceiptHeaderService
.
findBySourceHeaderId
(
purOrderHeaderPage
.
getId
());
if
(
rcvReceiptHeader
!=
null
){
if
(!
"ACCEPTED"
.
equals
(
rcvReceiptHeader
.
getHeaderStatus
())){
return
new
Result
(
false
,
20001
,(
"接收单号为:"
+
rcvReceiptHeader
.
getReceiptNumber
()+
"强制完成失败!采购订单未完成接收入库,请处理后重试!"
));
}
RcvReceiptHeader
rcvReceiptHeader
=
rcvReceiptHeaderService
.
findBySourceHeaderId
(
purOrderHeader
.
getId
());
if
(
rcvReceiptHeader
!=
null
){
if
(!
"ACCEPTED"
.
equals
(
rcvReceiptHeader
.
getHeaderStatus
())){
errorList
.
add
(
"接收单号为:"
+
rcvReceiptHeader
.
getReceiptNumber
()+
"强制完成失败!采购订单未完成接收入库,请处理后重试!"
);
continue
label
;
}
}
}
//检查accesstoken的有效性
SysAccessToken
sysAccessToken
=
userServer
.
checkAccessToken
(
accessToken
);
//查询用户
SysUser
sysUser
=
userServer
.
getSysUserById
(
sysAccessToken
.
getUserId
());
if
(
sysUser
==
null
){
return
new
Result
(
false
,
20001
,
ErrorEnum
.
UserNotExist
.
getErrorMsg
());
}
String
updateBy
=
sysUser
.
getRealname
();
//修改对应信息
for
(
PurOrderHeaderPage
purOrderHeaderPage:
purOrderHeaderPageList
){
//获取当前时间
LocalDateTime
updateTime
=
LocalDateTime
.
now
();
//修改附表的订单状态,审核人,修改人,修改时间
this
.
purOrderLineService
.
updateStatus
(
status
,
updateBy
,
updateTime
,
purOrderHeaderPage
.
getId
());
//修改主表的订单状态、修改人、修改时间
this
.
purOrderHeaderService
.
updateHeaderStatus
(
status
,
updateBy
,
updateTime
,
purOrderHeaderPage
.
getId
());
}
//获取当前时间
LocalDateTime
updateTime
=
LocalDateTime
.
now
();
//修改附表的订单状态,审核人,修改人,修改时间
this
.
purOrderLineService
.
updateStatus
(
status
,
updateBy
,
updateTime
,
purOrderHeader
.
getId
());
//修改主表的订单状态、修改人、修改时间
this
.
purOrderHeaderService
.
updateHeaderStatus
(
status
,
updateBy
,
updateTime
,
purOrderHeader
.
getId
());
}
if
(
errorList
.
size
()
==
0
)
{
//修改成功返回成功信息
return
new
Result
(
true
,
20000
,
ErrorEnum
.
SUCCESS
.
getErrorMsg
());
return
new
Result
(
true
,
StatusCode
.
OK
,
"操作成功!"
);
}
else
{
return
new
Result
(
false
,
StatusCode
.
ERROR
,
"操作失败!"
,
errorList
);
}
}
...
...
@@ -419,4 +436,5 @@ public class PurOrderHeaderController {
map
.
put
(
"label"
,
label
);
return
map
;
}
}
src/main/java/orthopedics/dao/InvTransactionMapper.java
View file @
6e8027e6
...
...
@@ -107,4 +107,15 @@ public interface InvTransactionMapper{
@ResultMap
(
"invtransaction"
)
List
<
InvTransaction
>
findInInvTran
(
@Param
(
"headerId"
)
String
headerId
,
@Param
(
"lineId"
)
String
lineId
);
//查询该组织下的商品库存现有量
@Select
(
"SELECT ifnull(sum(i.tx_quantity),0) FROM inv_transaction i ,"
+
"(SELECT inv_id,default_shipping_subinv_id,default_shipping_locator_id "
+
"FROM wsh_parameter "
+
"WHERE org_id = ("
+
"SELECT org_code FROM hr_organization "
+
"WHERE id = #{orgId} )) w "
+
"WHERE "
+
"i.inv_id = w.inv_id AND i.subinv_id = w.default_shipping_subinv_id AND i.locator_id = w.default_shipping_locator_id "
+
"and item_id = #{itemId}"
)
Integer
selectByOrgIdAndItemId
(
@Param
(
"orgId"
)
String
orgId
,
@Param
(
"itemId"
)
String
itemId
);
}
\ No newline at end of file
src/main/java/orthopedics/dao/PurOrderLineMapper.java
View file @
6e8027e6
...
...
@@ -147,4 +147,7 @@ public interface PurOrderLineMapper{
@Select
(
"select * from pur_order_line where order_id = #{OrderId}"
)
@ResultMap
(
"purorderline"
)
List
<
PurOrderLine
>
selectOrderLineByOrderId
(
@Param
(
"OrderId"
)
String
OrderId
);
@Update
(
"update pur_order_line set attribute1 = #{attribute1} where id = #{id}"
)
Integer
updateOrderLineSumQuantity
(
@Param
(
"attribute1"
)
String
attribute1
,
@Param
(
"id"
)
String
id
);
}
\ No newline at end of file
src/main/java/orthopedics/service/PurOrderLineService.java
View file @
6e8027e6
...
...
@@ -29,4 +29,13 @@ public class PurOrderLineService {
return
purOrderLineMapper
.
selectOrderLineById
(
id
);
}
//根据主表id查询附表
public
List
<
PurOrderLine
>
findOrderLineByHeaderId
(
String
headerId
){
return
purOrderLineMapper
.
selectOrderLineByOrderId
(
headerId
);
}
//更新采购订单行的库存现有量
public
Integer
updateOrderLineSumQuantity
(
String
attribute
,
String
id
){
return
purOrderLineMapper
.
updateOrderLineSumQuantity
(
attribute
,
id
);
}
}
src/main/java/orthopedics/service/TransactionServer.java
View file @
6e8027e6
...
...
@@ -320,4 +320,7 @@ public class TransactionServer {
return
invTransactionMapper
.
selectQuantity
(
source_header_id
,
source_line_id
);
}
public
Integer
findByOrgIdAndItemId
(
String
orgId
,
String
itemId
){
return
invTransactionMapper
.
selectByOrgIdAndItemId
(
orgId
,
itemId
);
}
}
Write
Preview
Markdown
is supported
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