Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
maintain_service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘帅
maintain_service
Commits
73aa00d6
Commit
73aa00d6
authored
Sep 10, 2025
by
刘帅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.交车后为出库的出库单库存扣减
2.报修单作废出库单库存还原
parent
25cc5dcc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
30 deletions
+72
-30
ErpMaterialPickingInfo.java
.../com/maintain/business/domain/ErpMaterialPickingInfo.java
+1
-1
ErpRepairFormDeliveryServiceImpl.java
...siness/service/impl/ErpRepairFormDeliveryServiceImpl.java
+38
-9
ErpRepairFormServiceImpl.java
...ntain/business/service/impl/ErpRepairFormServiceImpl.java
+33
-20
No files found.
maintain-business/src/main/java/com/maintain/business/domain/ErpMaterialPickingInfo.java
View file @
73aa00d6
...
@@ -110,7 +110,7 @@ public class ErpMaterialPickingInfo extends BaseEntity {
...
@@ -110,7 +110,7 @@ public class ErpMaterialPickingInfo extends BaseEntity {
*/
*/
private
BigDecimal
putawayMoney
;
private
BigDecimal
putawayMoney
;
/**
/**
* 状态(1
已领料 2
已退料)
* 状态(1
登记中 2已完成 3
已退料)
*/
*/
private
Integer
state
;
private
Integer
state
;
...
...
maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormDeliveryServiceImpl.java
View file @
73aa00d6
...
@@ -3,12 +3,16 @@ package com.maintain.business.service.impl;
...
@@ -3,12 +3,16 @@ package com.maintain.business.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.maintain.business.domain.*
;
import
com.maintain.business.domain.*
;
import
com.maintain.business.domain.vo.ErpMaterialInventoryRecordVo
;
import
com.maintain.business.domain.vo.ErpUserVo
;
import
com.maintain.business.domain.vo.ErpUserVo
;
import
com.maintain.business.domain.vo.ErpWarehouseVo
;
import
com.maintain.business.mapper.*
;
import
com.maintain.business.mapper.*
;
import
com.maintain.business.service.IErpMaterialService
;
import
com.maintain.business.service.IErpMaterialService
;
import
com.maintain.common.enums.InventoryType
;
import
com.maintain.common.enums.IsEnableStatus
;
import
com.maintain.common.enums.IsEnableStatus
;
import
com.maintain.common.enums.PickingState
;
import
com.maintain.common.enums.PickingState
;
import
com.maintain.common.enums.RepairFormState
;
import
com.maintain.common.enums.RepairFormState
;
import
com.maintain.common.exception.ServiceException
;
import
com.maintain.common.utils.StringUtils
;
import
com.maintain.common.utils.StringUtils
;
import
com.maintain.common.core.page.TableDataInfo
;
import
com.maintain.common.core.page.TableDataInfo
;
import
com.maintain.common.core.domain.PageQuery
;
import
com.maintain.common.core.domain.PageQuery
;
...
@@ -44,6 +48,9 @@ public class ErpRepairFormDeliveryServiceImpl implements IErpRepairFormDeliveryS
...
@@ -44,6 +48,9 @@ public class ErpRepairFormDeliveryServiceImpl implements IErpRepairFormDeliveryS
private
final
ErpMaterialPickingMapper
pickingMapper
;
private
final
ErpMaterialPickingMapper
pickingMapper
;
private
final
ErpMaterialPickingInfoMapper
pickingInfoMapper
;
private
final
ErpMaterialPickingInfoMapper
pickingInfoMapper
;
private
final
IErpMaterialService
materialService
;
private
final
IErpMaterialService
materialService
;
private
final
ErpMaterialInventoryRecordMapper
materialInventoryRecordMapper
;
private
final
ErpMaterialPutawayInfoMapper
putawayInfoMapper
;
private
final
ErpWarehouseMapper
warehouseMapper
;
/**
/**
* 查询报修单-交车信息
* 查询报修单-交车信息
...
@@ -116,15 +123,37 @@ public class ErpRepairFormDeliveryServiceImpl implements IErpRepairFormDeliveryS
...
@@ -116,15 +123,37 @@ public class ErpRepairFormDeliveryServiceImpl implements IErpRepairFormDeliveryS
pickingInfoLambdaQueryWrapper
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
add
.
getRepairFormId
()).
eq
(
ErpMaterialPickingInfo:
:
getState
,
PickingState
.
ONE
.
getCode
());
pickingInfoLambdaQueryWrapper
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
add
.
getRepairFormId
()).
eq
(
ErpMaterialPickingInfo:
:
getState
,
PickingState
.
ONE
.
getCode
());
List
<
ErpMaterialPickingInfo
>
pickingInfoList
=
pickingInfoMapper
.
selectList
(
pickingInfoLambdaQueryWrapper
);
List
<
ErpMaterialPickingInfo
>
pickingInfoList
=
pickingInfoMapper
.
selectList
(
pickingInfoLambdaQueryWrapper
);
if
(!
pickingInfoList
.
isEmpty
())
{
if
(!
pickingInfoList
.
isEmpty
())
{
for
(
ErpMaterialPickingInfo
pickingInfo
:
pickingInfoList
)
{
List
<
ErpMaterialInventoryRecord
>
inventoryRecordList
=
pickingInfoList
.
stream
().
map
(
item
->
{
materialService
.
modifyMaterialInventory
(
pickingInfo
.
getMaterialId
(),
pickingInfo
.
getCollectNumber
(),
false
);
ErpMaterialInventoryRecordVo
recordVo
=
materialInventoryRecordMapper
.
customQueryInventoryById
(
item
.
getRecordId
());
}
if
(
null
==
recordVo
)
{
pickingInfoMapper
.
updateBatchById
(
pickingInfoList
.
stream
().
map
(
item
->
{
throw
new
ServiceException
(
"仓库["
+
item
.
getWarehouseName
()+
"]中物料["
+
item
.
getMaterialName
()+
"]库存异常,请联系管理员!"
);
ErpMaterialPickingInfo
pickingInfo
=
new
ErpMaterialPickingInfo
();
}
pickingInfo
.
setId
(
item
.
getId
());
if
(
item
.
getCollectNumber
().
compareTo
(
recordVo
.
getInventory
())
>
0
)
{
pickingInfo
.
setState
(
PickingState
.
TWO
.
getCode
());
throw
new
ServiceException
(
"仓库["
+
item
.
getWarehouseName
()+
"]中物料["
+
item
.
getMaterialName
()+
"]库存不足,请调整后重试!"
);
return
pickingInfo
;
}
}).
collect
(
Collectors
.
toList
()));
/* 记录已出数量 */
ErpMaterialInventoryRecord
inventoryRecord
=
materialInventoryRecordMapper
.
selectById
(
item
.
getRecordId
());
if
(
null
==
inventoryRecord
)
{
throw
new
ServiceException
(
"库存存在异常,请联系管理员!!!"
);
}
ErpMaterialPutawayInfo
putawayInfo
=
putawayInfoMapper
.
selectById
(
inventoryRecord
.
getInfoId
());
putawayInfo
.
setIssuedNumber
(
putawayInfo
.
getIssuedNumber
().
add
(
item
.
getCollectNumber
()));
putawayInfoMapper
.
updateById
(
putawayInfo
);
/* 创建库存记录 */
ErpMaterialInventoryRecord
record
=
new
ErpMaterialInventoryRecord
();
record
.
setInfoId
(
item
.
getId
());
record
.
setMaterialId
(
item
.
getMaterialId
());
ErpWarehouseVo
warehouseVo
=
warehouseMapper
.
selectVoById
(
item
.
getWarehouseId
());
record
.
setWarehouseId
(
warehouseVo
.
getId
());
record
.
setDeptId
(
warehouseVo
.
getDeptId
());
record
.
setVendorId
(
item
.
getVendorId
());
record
.
setNumber
(
item
.
getCollectNumber
());
record
.
setPrice
(
item
.
getPrice
());
record
.
setMoney
(
item
.
getMoney
());
record
.
setType
(
InventoryType
.
picking
.
getCode
());
return
record
;
}).
collect
(
Collectors
.
toList
());
materialInventoryRecordMapper
.
insertBatch
(
inventoryRecordList
);
}
}
}
}
return
flag
;
return
flag
;
...
...
maintain-business/src/main/java/com/maintain/business/service/impl/ErpRepairFormServiceImpl.java
View file @
73aa00d6
package
com
.
maintain
.
business
.
service
.
impl
;
package
com
.
maintain
.
business
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.maintain.business.domain.*
;
import
com.maintain.business.domain.*
;
import
com.maintain.business.domain.bo.ErpRepairFormBo
;
import
com.maintain.business.domain.vo.ErpGroupVo
;
import
com.maintain.business.domain.vo.ErpGroupVo
;
import
com.maintain.business.domain.vo.ErpMaterialInventoryRecordVo
;
import
com.maintain.business.domain.vo.ErpRepairFormDeliveryVo
;
import
com.maintain.business.domain.vo.ErpRepairFormDeliveryVo
;
import
com.maintain.business.domain.vo.ErpRepairFormVo
;
import
com.maintain.business.mapper.*
;
import
com.maintain.business.mapper.*
;
import
com.maintain.business.service.IErpMaterialService
;
import
com.maintain.business.service.IErpMaterialService
;
import
com.maintain.business.service.IErpRepairFormService
;
import
com.maintain.common.core.domain.PageQuery
;
import
com.maintain.common.core.domain.entity.SysDept
;
import
com.maintain.common.core.domain.entity.SysDept
;
import
com.maintain.common.core.page.TableDataInfo
;
import
com.maintain.common.enums.PickingState
;
import
com.maintain.common.enums.PickingState
;
import
com.maintain.common.enums.RepairFormState
;
import
com.maintain.common.enums.RepairFormState
;
import
com.maintain.common.helper.LoginHelper
;
import
com.maintain.common.helper.LoginHelper
;
import
com.maintain.common.utils.StringUtils
;
import
com.maintain.common.utils.StringUtils
;
import
com.maintain.common.core.page.TableDataInfo
;
import
com.maintain.common.core.domain.PageQuery
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.maintain.common.utils.redis.RedisUtils
;
import
com.maintain.common.utils.redis.RedisUtils
;
import
com.maintain.system.mapper.SysDeptMapper
;
import
com.maintain.system.mapper.SysDeptMapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.maintain.business.domain.bo.ErpRepairFormBo
;
import
com.maintain.business.domain.vo.ErpRepairFormVo
;
import
com.maintain.business.service.IErpRepairFormService
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Collection
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -55,6 +56,9 @@ public class ErpRepairFormServiceImpl implements IErpRepairFormService {
...
@@ -55,6 +56,9 @@ public class ErpRepairFormServiceImpl implements IErpRepairFormService {
private
final
ErpMaterialPickingInfoMapper
pickingInfoMapper
;
private
final
ErpMaterialPickingInfoMapper
pickingInfoMapper
;
private
final
ErpMaterialPickingMapper
pickingMapper
;
private
final
ErpMaterialPickingMapper
pickingMapper
;
private
final
IErpMaterialService
materialService
;
private
final
IErpMaterialService
materialService
;
private
final
ErpMaterialInventoryRecordMapper
materialInventoryRecordMapper
;
private
final
ErpMaterialPutawayInfoMapper
putawayInfoMapper
;
private
final
ErpWarehouseMapper
warehouseMapper
;
/**
/**
* 查询报修单
* 查询报修单
...
@@ -289,18 +293,27 @@ public class ErpRepairFormServiceImpl implements IErpRepairFormService {
...
@@ -289,18 +293,27 @@ public class ErpRepairFormServiceImpl implements IErpRepairFormService {
LambdaQueryWrapper
<
ErpMaterialPickingInfo
>
pickingInfoLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
LambdaQueryWrapper
<
ErpMaterialPickingInfo
>
pickingInfoLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
();
pickingInfoLambdaQueryWrapper
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
repairForm
.
getId
()).
eq
(
ErpMaterialPickingInfo:
:
getState
,
PickingState
.
TWO
.
getCode
());
pickingInfoLambdaQueryWrapper
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
repairForm
.
getId
()).
eq
(
ErpMaterialPickingInfo:
:
getState
,
PickingState
.
TWO
.
getCode
());
List
<
ErpMaterialPickingInfo
>
pickingInfoList
=
pickingInfoMapper
.
selectList
(
pickingInfoLambdaQueryWrapper
);
List
<
ErpMaterialPickingInfo
>
pickingInfoList
=
pickingInfoMapper
.
selectList
(
pickingInfoLambdaQueryWrapper
);
for
(
ErpMaterialPickingInfo
pickingInfo
:
pickingInfoList
)
{
List
<
Long
>
pickingInfoIds
=
pickingInfoList
.
stream
().
map
(
item
->
{
materialService
.
modifyMaterialInventory
(
pickingInfo
.
getMaterialId
(),
pickingInfo
.
getCollectNumber
(),
true
);
/* 回退入库明细中已出数量 */
}
ErpMaterialInventoryRecordVo
recordVo
=
materialInventoryRecordMapper
.
customQueryInventoryById
(
item
.
getRecordId
());
ErpMaterialPutawayInfo
putawayInfo
=
putawayInfoMapper
.
selectById
(
recordVo
.
getInfoId
());
putawayInfo
.
setIssuedNumber
(
putawayInfo
.
getIssuedNumber
().
subtract
(
item
.
getCollectNumber
()));
putawayInfoMapper
.
updateById
(
putawayInfo
);
return
item
.
getId
();
}).
collect
(
Collectors
.
toList
());
// 将出库单以及出库明细所有状态全部更新为已退料
// 将出库单以及出库明细所有状态全部更新为已退料
LambdaUpdateWrapper
<
ErpMaterialPicking
>
pickingLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
();
pickingMapper
.
delete
(
pickingLambdaUpdateWrapper
.
eq
(
ErpMaterialPicking:
:
getRepairFormId
,
repairForm
.
getId
());
new
LambdaUpdateWrapper
<
ErpMaterialPicking
>()
pickingLambdaUpdateWrapper
.
set
(
ErpMaterialPicking:
:
getState
,
PickingState
.
THREE
.
getCode
());
.
eq
(
ErpMaterialPicking:
:
getRepairFormId
,
repairForm
.
getId
())
pickingMapper
.
update
(
pickingLambdaUpdateWrapper
);
);
LambdaUpdateWrapper
<
ErpMaterialPickingInfo
>
pickingInfoLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
();
pickingInfoMapper
.
delete
(
pickingInfoLambdaUpdateWrapper
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
repairForm
.
getId
());
new
LambdaUpdateWrapper
<
ErpMaterialPickingInfo
>()
pickingInfoLambdaUpdateWrapper
.
set
(
ErpMaterialPickingInfo:
:
getState
,
PickingState
.
THREE
.
getCode
());
.
eq
(
ErpMaterialPickingInfo:
:
getRepairFormId
,
repairForm
.
getId
())
pickingInfoMapper
.
update
(
pickingInfoLambdaUpdateWrapper
);
);
// 删除库存记录表数据
LambdaUpdateWrapper
<
ErpMaterialInventoryRecord
>
lambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
();
lambdaUpdateWrapper
.
in
(
ErpMaterialInventoryRecord:
:
getInfoId
,
pickingInfoIds
);
materialInventoryRecordMapper
.
delete
(
lambdaUpdateWrapper
);
}
}
return
flag
;
return
flag
;
}
}
...
...
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