Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
huang.tao
/
jmai-platform
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
4d4583fb
authored
Jan 09, 2026
by
zhu.zewen
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
修复相关结存数据统计
parent
b9dac00a
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
161 additions
and
34 deletions
jmai-physic/src/main/java/com/jmai/physic/dto/BillDTO.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheckDetail.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicStorageAmpoule.java
jmai-physic/src/main/java/com/jmai/physic/mapper/PhysicAmpouleMapper.java
jmai-physic/src/main/java/com/jmai/physic/mapper/PhysicStorageAmpouleMapper.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicAmpouleServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyCheckServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicStorageAmpouleServiceImpl.java
jmai-physic/src/main/resources/mapper/PhysicAmpouleMapper.xml
jmai-physic/src/main/resources/mapper/PhysicStorageAmpouleMapper.xml
jmai-physic/src/main/java/com/jmai/physic/dto/BillDTO.java
View file @
4d4583fb
...
@@ -13,8 +13,12 @@ public class BillDTO {
...
@@ -13,8 +13,12 @@ public class BillDTO {
@ApiModelProperty
(
value
=
"药品名称"
)
@ApiModelProperty
(
value
=
"药品名称"
)
private
String
physicName
;
private
String
physicName
;
@ApiModelProperty
(
value
=
"
药品类型
"
)
@ApiModelProperty
(
value
=
"
规格
"
)
private
String
physicSpec
;
private
String
physicSpec
;
@ApiModelProperty
(
value
=
"药品类型"
)
private
String
physicType
;
@ApiModelProperty
(
value
=
"单位"
)
private
String
unit
;
@ApiModelProperty
(
value
=
"厂家名称"
)
@ApiModelProperty
(
value
=
"厂家名称"
)
private
String
factoryName
;
private
String
factoryName
;
@ApiModelProperty
(
value
=
"失效时间"
)
@ApiModelProperty
(
value
=
"失效时间"
)
...
@@ -22,12 +26,12 @@ public class BillDTO {
...
@@ -22,12 +26,12 @@ public class BillDTO {
@ApiModelProperty
(
value
=
"批号"
)
@ApiModelProperty
(
value
=
"批号"
)
private
String
batchNo
;
private
String
batchNo
;
@ApiModelProperty
(
value
=
"数量"
)
@ApiModelProperty
(
value
=
"
药品
数量"
)
private
Integer
physicNum
;
private
Integer
physicNum
;
@ApiModelProperty
(
value
=
"
1-采购入库 2-申领入库 3-申领出库 4-使用出库 5-回收空安瓿 6-退回空安瓿
7-销毁空安瓿"
)
@ApiModelProperty
(
value
=
"
类型:1-采购入库、2-申领入库、3-申领出库、4-使用出库、5-回收空安瓿、6-退回空安瓿、
7-销毁空安瓿"
)
private
Integer
type
;
private
Integer
type
;
@ApiModelProperty
(
value
=
"相关申请、入库id"
)
@ApiModelProperty
(
value
=
"相关申请、入库
等表
id"
)
private
Long
refId
;
private
Long
refId
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheckDetail.java
View file @
4d4583fb
...
@@ -16,10 +16,16 @@ public class PhysicDestroyCheckDetail extends BaseVersionEntity {
...
@@ -16,10 +16,16 @@ public class PhysicDestroyCheckDetail extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"药品名称"
)
@ApiModelProperty
(
value
=
"药品名称"
)
private
String
physicName
;
private
String
physicName
;
@ApiModelProperty
(
value
=
"规格"
)
@ApiModelProperty
(
value
=
"
药品
规格"
)
private
String
physicSpec
;
private
String
physicSpec
;
@ApiModelProperty
(
value
=
"生产厂家"
)
@ApiModelProperty
(
value
=
"药品类型"
)
private
String
physicType
;
@ApiModelProperty
(
value
=
"单位"
)
private
String
unit
;
@ApiModelProperty
(
value
=
"厂家名称"
)
private
String
factoryName
;
private
String
factoryName
;
@ApiModelProperty
(
value
=
"失效时间"
)
private
String
expireDate
;
@ApiModelProperty
(
value
=
"批号"
)
@ApiModelProperty
(
value
=
"批号"
)
private
String
batchNo
;
private
String
batchNo
;
...
...
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicStorageAmpoule.java
View file @
4d4583fb
...
@@ -22,6 +22,8 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
...
@@ -22,6 +22,8 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
private
String
unit
;
private
String
unit
;
@ApiModelProperty
(
value
=
"厂家名称"
)
@ApiModelProperty
(
value
=
"厂家名称"
)
private
String
factoryName
;
private
String
factoryName
;
@ApiModelProperty
(
value
=
"失效时间"
)
private
String
expireDate
;
@ApiModelProperty
(
value
=
"批号"
)
@ApiModelProperty
(
value
=
"批号"
)
private
String
batchNo
;
private
String
batchNo
;
...
@@ -47,7 +49,9 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
...
@@ -47,7 +49,9 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"接收部门"
)
@ApiModelProperty
(
value
=
"接收部门"
)
private
Long
acceptDeptId
;
private
Long
acceptDeptId
;
@ApiModelProperty
(
value
=
"批号结存"
)
private
Integer
batchBalance
;
private
Integer
batchBalance
;
@ApiModelProperty
(
value
=
"药品总结存"
)
private
Integer
physicBalance
;
private
Integer
physicBalance
;
@ApiModelProperty
(
value
=
"状态:0-待接收、1-待退回、100-完成(0-99审核中)"
)
@ApiModelProperty
(
value
=
"状态:0-待接收、1-待退回、100-完成(0-99审核中)"
)
...
...
jmai-physic/src/main/java/com/jmai/physic/mapper/PhysicAmpouleMapper.java
View file @
4d4583fb
...
@@ -24,4 +24,8 @@ public interface PhysicAmpouleMapper extends BaseMapper<PhysicAmpoule> {
...
@@ -24,4 +24,8 @@ public interface PhysicAmpouleMapper extends BaseMapper<PhysicAmpoule> {
List
<
PhysicAmpouleUseVO
>
selectUsePhysicSum
();
List
<
PhysicAmpouleUseVO
>
selectUsePhysicSum
();
Integer
selectCurrentSumByBatchNo
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
,
@Param
(
"batchNo"
)
String
batchNo
);
Integer
selectCurrentSumByName
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
);
}
}
jmai-physic/src/main/java/com/jmai/physic/mapper/PhysicStorageAmpouleMapper.java
View file @
4d4583fb
...
@@ -16,9 +16,9 @@ import java.util.List;
...
@@ -16,9 +16,9 @@ import java.util.List;
public
interface
PhysicStorageAmpouleMapper
extends
BaseMapper
<
PhysicStorageAmpoule
>
{
public
interface
PhysicStorageAmpouleMapper
extends
BaseMapper
<
PhysicStorageAmpoule
>
{
Page
<
PhysicStorageAmpouleVO
>
selectAmpoulePage
(
Page
<
PhysicStorageAmpouleVO
>
page
,
@Param
(
"req"
)
PhysicAmpouleQueryReq
req
);
Page
<
PhysicStorageAmpouleVO
>
selectAmpoulePage
(
Page
<
PhysicStorageAmpouleVO
>
page
,
@Param
(
"req"
)
PhysicAmpouleQueryReq
req
);
Integer
selectCurrentSumByBatchNo
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
,
@Param
(
"batchNo"
)
String
batchNo
,
@Param
(
"deptId"
)
Long
deptId
);
Integer
selectCurrentSumByBatchNo
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
,
@Param
(
"batchNo"
)
String
batchNo
);
Integer
selectCurrentSumByName
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
,
@Param
(
"deptId"
)
Long
deptId
);
Integer
selectCurrentSumByName
(
@Param
(
"name"
)
String
name
,
@Param
(
"spec"
)
String
spec
,
@Param
(
"factoryName"
)
String
factoryName
);
List
<
PhysicDestroyNumVO
>
selectDestroy
(
@Param
(
"deptId"
)
Long
deptId
);
List
<
PhysicDestroyNumVO
>
selectDestroy
(
@Param
(
"deptId"
)
Long
deptId
);
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicAmpouleServiceImpl.java
View file @
4d4583fb
...
@@ -17,6 +17,7 @@ import com.jmai.physic.service.PhysicAmpouleService;
...
@@ -17,6 +17,7 @@ import com.jmai.physic.service.PhysicAmpouleService;
import
com.jmai.physic.service.PhysicBillService
;
import
com.jmai.physic.service.PhysicBillService
;
import
com.jmai.physic.vo.PhysicAmpouleUseVO
;
import
com.jmai.physic.vo.PhysicAmpouleUseVO
;
import
com.jmai.physic.vo.PhysicAmpouleVO
;
import
com.jmai.physic.vo.PhysicAmpouleVO
;
import
com.jmai.physic.vo.PhysicAmpouleVO
;
import
com.jmai.physic.vo.PhysicVO
;
import
com.jmai.physic.vo.PhysicVO
;
import
com.jmai.sys.AbstractService
;
import
com.jmai.sys.AbstractService
;
import
com.jmai.sys.consts.enums.RoleTypeEum
;
import
com.jmai.sys.consts.enums.RoleTypeEum
;
...
@@ -31,6 +32,8 @@ import java.math.BigDecimal;
...
@@ -31,6 +32,8 @@ import java.math.BigDecimal;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
@Service
public
class
PhysicAmpouleServiceImpl
extends
AbstractService
implements
PhysicAmpouleService
{
public
class
PhysicAmpouleServiceImpl
extends
AbstractService
implements
PhysicAmpouleService
{
...
@@ -83,11 +86,58 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
...
@@ -83,11 +86,58 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
}
}
}
}
}
}
private
String
buildPhysicKey
(
PhysicAmpouleVO
physic
)
{
return
physic
.
getPhysicName
()
+
":"
+
physic
.
getPhysicSpec
()
+
":"
+
physic
.
getFactoryName
();
}
private
String
buildPhysicBatchKey
(
PhysicAmpouleVO
physic
)
{
return
physic
.
getPhysicName
()
+
":"
+
physic
.
getPhysicSpec
()
+
":"
+
physic
.
getFactoryName
()
+
":"
+
physic
.
getBatchNo
();
}
@Override
@Override
public
Page
<
PhysicAmpouleVO
>
listPage
(
PhysicAmpouleQueryReq
req
)
{
public
Page
<
PhysicAmpouleVO
>
listPage
(
PhysicAmpouleQueryReq
req
)
{
Page
<
PhysicAmpouleVO
>
page
=
buildEmptyPage
(
req
);
Page
<
PhysicAmpouleVO
>
page
=
buildEmptyPage
(
req
);
Page
<
PhysicAmpouleVO
>
ampoulePage
=
physicAmpouleMapper
.
selectAmpoulePage
(
page
,
req
);
Page
<
PhysicAmpouleVO
>
ampoulePage
=
physicAmpouleMapper
.
selectAmpoulePage
(
page
,
req
);
// 批号结存
Map
<
String
,
Integer
>
batchNoSumMap
=
ampoulePage
.
getRecords
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
this
::
buildPhysicBatchKey
,
Collectors
.
toList
()
)
)
.
values
()
.
stream
()
.
map
(
list
->
list
.
get
(
0
))
.
collect
(
Collectors
.
toMap
(
this
::
buildPhysicBatchKey
,
physic
->
physicAmpouleMapper
.
selectCurrentSumByBatchNo
(
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
physic
.
getBatchNo
())
));
// 药品总结存
Map
<
String
,
Integer
>
physicSumMap
=
ampoulePage
.
getRecords
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
this
::
buildPhysicKey
,
Collectors
.
toList
()
)
)
.
values
()
.
stream
()
.
map
(
list
->
list
.
get
(
0
))
.
collect
(
Collectors
.
toMap
(
this
::
buildPhysicKey
,
physic
->
physicAmpouleMapper
.
selectCurrentSumByName
(
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
())
));
for
(
PhysicAmpouleVO
record
:
ampoulePage
.
getRecords
())
{
record
.
setBatchBalance
(
batchNoSumMap
.
get
(
buildPhysicBatchKey
(
record
)));
record
.
setPhysicBalance
(
physicSumMap
.
get
(
buildPhysicKey
(
record
)));
}
return
ampoulePage
;
return
ampoulePage
;
}
}
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyCheckServiceImpl.java
View file @
4d4583fb
...
@@ -181,18 +181,28 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
...
@@ -181,18 +181,28 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
for
(
PhysicDestroyCheckDetail
physicDestroyCheckDetail
:
list
)
{
for
(
PhysicDestroyCheckDetail
physicDestroyCheckDetail
:
list
)
{
PhysicStorageAmpoule
ampoule
=
new
PhysicStorageAmpoule
();
PhysicStorageAmpoule
ampoule
=
new
PhysicStorageAmpoule
();
ampoule
.
setPhysicName
(
physicDestroyCheckDetail
.
getPhysicName
());
ampoule
.
setPhysicName
(
physicDestroyCheckDetail
.
getPhysicName
());
ampoule
.
setPhysicSpec
(
physicDestroyCheckDetail
.
getPhysicSpec
());
ampoule
.
setPhysicType
(
physicDestroyCheckDetail
.
getPhysicType
());
ampoule
.
setUnit
(
physicDestroyCheckDetail
.
getUnit
());
ampoule
.
setFactoryName
(
physicDestroyCheckDetail
.
getFactoryName
());
ampoule
.
setExpireDate
(
physicDestroyCheckDetail
.
getExpireDate
());
ampoule
.
setBatchNo
(
ampoule
.
getBatchNo
());
ampoule
.
setBatchNo
(
ampoule
.
getBatchNo
());
ampoule
.
setPhysicNum
(
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setOrderNo
(
physicDestroyCheck
.
getOrderNo
());
ampoule
.
setTransferDeptId
(
physicDestroyCheck
.
getApplyDeptId
());
ampoule
.
setAcceptDeptId
(
sysUser
.
getDeptId
());
ampoule
.
setAcceptDeptId
(
sysUser
.
getDeptId
());
ampoule
.
setPhysicNum
(
0
);
ampoule
.
setPhysicSpec
(
physicDestroyCheckDetail
.
getPhysicSpec
());
ampoule
.
setExpendNum
(
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setExpendNum
(
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setRecycleReceiptNum
(
null
);
ampoule
.
setType
(
2
);
ampoule
.
setType
(
2
);
ampoule
.
setDestroyStatus
(
1
);
ampoule
.
setDestroyStatus
(
1
);
ampoule
.
setOrderNo
(
physicDestroyCheck
.
getOrderNo
());
Integer
batchNoSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByBatchNo
(
physicDestroyCheckDetail
.
getPhysicName
(),
physicDestroyCheckDetail
.
getPhysicSpec
(),
physicDestroyCheckDetail
.
getFactoryName
(),
physicDestroyCheckDetail
.
getBatchNo
()
,
sysUser
.
getDeptId
()
);
Integer
batchNoSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByBatchNo
(
physicDestroyCheckDetail
.
getPhysicName
(),
physicDestroyCheckDetail
.
getPhysicSpec
(),
physicDestroyCheckDetail
.
getFactoryName
(),
physicDestroyCheckDetail
.
getBatchNo
());
Integer
physicSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByName
(
physicDestroyCheckDetail
.
getPhysicName
(),
physicDestroyCheckDetail
.
getPhysicSpec
(),
physicDestroyCheckDetail
.
getFactoryName
()
,
sysUser
.
getDeptId
()
);
Integer
physicSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByName
(
physicDestroyCheckDetail
.
getPhysicName
(),
physicDestroyCheckDetail
.
getPhysicSpec
(),
physicDestroyCheckDetail
.
getFactoryName
());
ampoule
.
setBatchBalance
(
batchNoSum
-
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setBatchBalance
(
batchNoSum
-
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setPhysic
Num
(
physicSum
-
physicDestroyCheckDetail
.
getPhysicNum
());
ampoule
.
setPhysic
Balance
(
physicSum
-
physicDestroyCheckDetail
.
getPhysicNum
());
physicStorageAmpouleMapper
.
insert
(
ampoule
);
physicStorageAmpouleMapper
.
insert
(
ampoule
);
}
}
}
}
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicStorageAmpouleServiceImpl.java
View file @
4d4583fb
...
@@ -28,6 +28,8 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -28,6 +28,8 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Service
@Service
public
class
PhysicStorageAmpouleServiceImpl
extends
AbstractService
implements
PhysicStorageAmpouleService
{
public
class
PhysicStorageAmpouleServiceImpl
extends
AbstractService
implements
PhysicStorageAmpouleService
{
...
@@ -74,13 +76,9 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
...
@@ -74,13 +76,9 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
ampoule
.
setTransferDeptId
(
req
.
getTransferDeptId
());
ampoule
.
setTransferDeptId
(
req
.
getTransferDeptId
());
ampoule
.
setAcceptDeptId
(
deptId
);
ampoule
.
setAcceptDeptId
(
deptId
);
// 统计数量
// 获取时查询
Integer
batchNoSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByBatchNo
(
ampoule
.
setBatchBalance
(
null
);
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
physic
.
getBatchNo
(),
deptId
);
ampoule
.
setPhysicBalance
(
null
);
Integer
physicSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByName
(
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
deptId
);
ampoule
.
setBatchBalance
(
batchNoSum
+
physic
.
getPhysicNum
());
ampoule
.
setPhysicNum
(
physicSum
+
physic
.
getPhysicNum
());
ampoule
.
setJsUser
(
null
);
ampoule
.
setJsUser
(
null
);
ampoule
.
setThUser
(
null
);
ampoule
.
setThUser
(
null
);
...
@@ -122,12 +120,9 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
...
@@ -122,12 +120,9 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
ampoule
.
setTransferDeptId
(
deptId
);
ampoule
.
setTransferDeptId
(
deptId
);
ampoule
.
setAcceptDeptId
(
deptId
);
ampoule
.
setAcceptDeptId
(
deptId
);
Integer
batchNoSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByBatchNo
(
// 获取时查询
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
physic
.
getBatchNo
(),
deptId
);
ampoule
.
setBatchBalance
(
null
);
Integer
physicSum
=
physicStorageAmpouleMapper
.
selectCurrentSumByName
(
ampoule
.
setPhysicBalance
(
null
);
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
deptId
);
ampoule
.
setBatchBalance
(
batchNoSum
);
ampoule
.
setPhysicNum
(
physicSum
);
ampoule
.
setJsUser
(
null
);
ampoule
.
setJsUser
(
null
);
ampoule
.
setThUser
(
null
);
ampoule
.
setThUser
(
null
);
...
@@ -152,18 +147,62 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
...
@@ -152,18 +147,62 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
}
}
private
String
buildPhysicKey
(
PhysicStorageAmpouleVO
physic
)
{
return
physic
.
getPhysicName
()
+
":"
+
physic
.
getPhysicSpec
()
+
":"
+
physic
.
getFactoryName
();
}
private
String
buildPhysicBatchKey
(
PhysicStorageAmpouleVO
physic
)
{
return
physic
.
getPhysicName
()
+
":"
+
physic
.
getPhysicSpec
()
+
":"
+
physic
.
getFactoryName
()
+
":"
+
physic
.
getBatchNo
();
}
@Override
@Override
public
Page
<
PhysicStorageAmpouleVO
>
listPage
(
PhysicAmpouleQueryReq
req
)
{
public
Page
<
PhysicStorageAmpouleVO
>
listPage
(
PhysicAmpouleQueryReq
req
)
{
Page
<
PhysicStorageAmpouleVO
>
page
=
buildEmptyPage
(
req
);
Page
<
PhysicStorageAmpouleVO
>
page
=
buildEmptyPage
(
req
);
Page
<
PhysicStorageAmpouleVO
>
ampoulePage
=
physicStorageAmpouleMapper
.
selectAmpoulePage
(
page
,
req
);
Page
<
PhysicStorageAmpouleVO
>
ampoulePage
=
physicStorageAmpouleMapper
.
selectAmpoulePage
(
page
,
req
);
// 批号结存
Map
<
String
,
Integer
>
batchNoSumMap
=
ampoulePage
.
getRecords
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
this
::
buildPhysicBatchKey
,
Collectors
.
toList
()
)
)
.
values
()
.
stream
()
.
map
(
list
->
list
.
get
(
0
))
.
collect
(
Collectors
.
toMap
(
this
::
buildPhysicBatchKey
,
physic
->
physicStorageAmpouleMapper
.
selectCurrentSumByBatchNo
(
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
(),
physic
.
getBatchNo
())
));
// 药品总结存
Map
<
String
,
Integer
>
physicSumMap
=
ampoulePage
.
getRecords
()
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
this
::
buildPhysicKey
,
Collectors
.
toList
()
)
)
.
values
()
.
stream
()
.
map
(
list
->
list
.
get
(
0
))
.
collect
(
Collectors
.
toMap
(
this
::
buildPhysicKey
,
physic
->
physicStorageAmpouleMapper
.
selectCurrentSumByName
(
physic
.
getPhysicName
(),
physic
.
getPhysicSpec
(),
physic
.
getFactoryName
())
));
for
(
PhysicStorageAmpouleVO
record
:
ampoulePage
.
getRecords
())
{
for
(
PhysicStorageAmpouleVO
record
:
ampoulePage
.
getRecords
())
{
//如果为移至销毁类型,销毁数量physicNum=expendNum发出数量
//如果为移至销毁类型,销毁数量physicNum=expendNum发出数量
if
(
record
.
getType
().
equals
(
2
)
&&
record
.
getDestroyStatus
().
equals
(
1
)){
// if(record.getType().equals(2) && record.getDestroyStatus().equals(1)){
record
.
setPhysicNum
(
record
.
getExpendNum
());
// record.setPhysicNum(record.getExpendNum());
}
// }
record
.
setBatchBalance
(
batchNoSumMap
.
get
(
buildPhysicBatchKey
(
record
)));
record
.
setPhysicBalance
(
physicSumMap
.
get
(
buildPhysicKey
(
record
)));
}
}
return
ampoulePage
;
return
ampoulePage
;
}
}
...
...
jmai-physic/src/main/resources/mapper/PhysicAmpouleMapper.xml
View file @
4d4583fb
...
@@ -31,4 +31,14 @@
...
@@ -31,4 +31,14 @@
from physic_ampoule
from physic_ampoule
group by physic_name,physic_spec,factory_name
group by physic_name,physic_spec,factory_name
</select>
</select>
<select
id=
"selectCurrentSumByBatchNo"
resultType=
"java.lang.Integer"
>
select IFNULL(sum(physic_num),0) from physic_ampoule where
physic_name=#{name} and physic_spec=#{spec} and batch_no=#{batchNo} and factory_name =#{factoryName}
</select>
<select
id=
"selectCurrentSumByName"
resultType=
"java.lang.Integer"
>
select IFNULL(sum(physic_num),0) from physic_ampoule where
physic_name=#{name} and physic_spec=#{spec} and factory_name =#{factoryName}
</select>
</mapper>
</mapper>
jmai-physic/src/main/resources/mapper/PhysicStorageAmpouleMapper.xml
View file @
4d4583fb
...
@@ -24,12 +24,12 @@
...
@@ -24,12 +24,12 @@
<select
id=
"selectCurrentSumByBatchNo"
resultType=
"java.lang.Integer"
>
<select
id=
"selectCurrentSumByBatchNo"
resultType=
"java.lang.Integer"
>
select (IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0)) from physic_storage_ampoule where
select (IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0)) from physic_storage_ampoule where
physic_name=#{name} and physic_spec=#{spec} and batch_no=#{batchNo} and factory_name =#{factoryName}
and accept_dept_id =#{deptId}
physic_name=#{name} and physic_spec=#{spec} and batch_no=#{batchNo} and factory_name =#{factoryName}
</select>
</select>
<select
id=
"selectCurrentSumByName"
resultType=
"java.lang.Integer"
>
<select
id=
"selectCurrentSumByName"
resultType=
"java.lang.Integer"
>
select (IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0)) from physic_storage_ampoule where
select (IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0)) from physic_storage_ampoule where
physic_name=#{name} and physic_spec=#{spec} and factory_name =#{factoryName}
and accept_dept_id =#{deptId}
physic_name=#{name} and physic_spec=#{spec} and factory_name =#{factoryName}
</select>
</select>
<select
id=
"selectDestroy"
resultType=
"com.jmai.physic.vo.PhysicDestroyNumVO"
>
<select
id=
"selectDestroy"
resultType=
"com.jmai.physic.vo.PhysicDestroyNumVO"
>
...
...
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