Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
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
lanbaoming
jiedao-api-boot-master
Commits
a5c3cdc8
Commit
a5c3cdc8
authored
Mar 26, 2025
by
honghy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
需求124 PDA-集运包裹验货
parent
d76fbcd4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
151 additions
and
11 deletions
+151
-11
ConsLocationConvert.java
...odule/order/convert/consLocation/ConsLocationConvert.java
+7
-0
ConsServiceImpl.java
...oder/yudao/module/order/service/cons/ConsServiceImpl.java
+1
-2
ConsInspectionDetailsServiceImpl.java
...nsInspectionDetails/ConsInspectionDetailsServiceImpl.java
+112
-2
ConsInspectionDetailsBaseVO.java
...vo/consInspectionDetails/ConsInspectionDetailsBaseVO.java
+8
-0
ConsInspectionDetailsCreateReqVO.java
...nsInspectionDetails/ConsInspectionDetailsCreateReqVO.java
+2
-0
ConsInspectionDetailsUpdateReqVO.java
...nsInspectionDetails/ConsInspectionDetailsUpdateReqVO.java
+0
-1
ConsItemBackVO.java
...ocoder/yudao/module/order/vo/consItem/ConsItemBackVO.java
+5
-0
ConsInspectionDetailsController.java
...ontroller/admin/cons/ConsInspectionDetailsController.java
+16
-6
No files found.
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/convert/consLocation/ConsLocationConvert.java
View file @
a5c3cdc8
...
...
@@ -46,6 +46,13 @@ public interface ConsLocationConvert {
*/
List
<
ConsLocationBackVO
>
convertList
(
List
<
ConsLocationDO
>
list
);
/***
* VO转实体
* @param list
* @return
*/
List
<
ConsLocationDO
>
convertListRe
(
List
<
ConsLocationUpdateReqVO
>
list
);
/***
* 实体分页转返回分页
* @param page
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/cons/ConsServiceImpl.java
View file @
a5c3cdc8
...
...
@@ -655,8 +655,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
// 更新
ConsDO
updateObj
=
ConsConvert
.
INSTANCE
.
convert
(
updateReqVO
);
consMapper
.
updateById
(
updateObj
);
List
<
ConsLocationDO
>
consLocationDOS
=
consLocationService
.
selectList
(
new
LambdaQueryWrapperX
<
ConsLocationDO
>()
.
eq
(
ConsLocationDO:
:
getConsId
,
updateReqVO
.
getId
()));
List
<
ConsLocationDO
>
consLocationDOS
=
ConsLocationConvert
.
INSTANCE
.
convertListRe
(
consLocationService
.
getConsLocationListByConsId
(
updateReqVO
.
getId
()));
Map
<
String
,
Long
>
oldMap
=
new
HashMap
<>();
for
(
ConsLocationDO
consLocationDO
:
consLocationDOS
)
{
oldMap
.
put
(
String
.
valueOf
(
consLocationDO
.
getWareId
())
+
consLocationDO
.
getAreaId
()
+
consLocationDO
.
getLocationId
(),
consLocationDO
.
getId
());
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/service/consInspectionDetails/ConsInspectionDetailsServiceImpl.java
View file @
a5c3cdc8
package
cn
.
iocoder
.
yudao
.
module
.
order
.
service
.
consInspectionDetails
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectionDetailsConvert
;
import
cn.iocoder.yudao.module.order.convert.consLocation.ConsLocationConvert
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consItem.ConsItemDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consLocation.ConsLocationDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO
;
import
cn.iocoder.yudao.module.order.dal.mysql.consInspectionDetails.ConsInspectionDetailsMapper
;
import
cn.iocoder.yudao.module.order.dal.mysql.consItem.ConsItemMapper
;
import
cn.iocoder.yudao.module.order.dal.mysql.consLocation.ConsLocationMapper
;
import
cn.iocoder.yudao.module.order.dal.mysql.consMedia.ConsMediaMapper
;
import
cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO
;
import
cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO
;
import
cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO
;
...
...
@@ -17,6 +21,7 @@ import cn.iocoder.yudao.module.order.vo.consInspectionDetails.InspectionDetails;
import
cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationBackVO
;
import
cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -45,6 +50,9 @@ public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspec
@Resource
private
ConsLocationMapper
consLocationMapper
;
@Resource
private
ConsMediaMapper
consMediaMapper
;
@Transactional
@Override
public
Long
createConsInspectionDetails
(
ConsInspectionDetailsCreateReqVO
createReqVO
)
{
...
...
@@ -57,6 +65,7 @@ public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspec
consItemDO
.
setInspectionUnit
(
createReqVO
.
getInspectionUnit
());
consItemDO
.
setInspectionProdAttrIds
(
createReqVO
.
getInspectionProdAttrIds
());
consItemDO
.
setInspectionUsageIds
(
createReqVO
.
getInspectionUsageIds
());
consItemDO
.
setInspectionUnit
(
createReqVO
.
getInspectionUnit
());
consItemMapper
.
updateById
(
consItemDO
);
List
<
ConsInspectionDetailsCreateReqVO
>
consWarehouseInItemDoList
=
createReqVO
.
getConsWarehouseInItemDoList
();
for
(
ConsInspectionDetailsCreateReqVO
consInspectionDetailsCreateReqVO
:
consWarehouseInItemDoList
)
{
...
...
@@ -78,6 +87,32 @@ public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspec
consLocationMapper
.
insert
(
ConsLocationConvert
.
INSTANCE
.
convert
(
consLocationUpdateReqVO
));
}
}
Map
<
String
,
Long
>
map
=
consMediaMapper
.
selectList
(
new
LambdaQueryWrapper
<
ConsMediaDO
>()
.
eq
(
ConsMediaDO:
:
getTableName
,
"ecw_cons_item"
)
.
eq
(
ConsMediaDO:
:
getColumnName
,
"inspection"
)
.
eq
(
ConsMediaDO:
:
getBizId
,
consItemDO
.
getId
())).
stream
().
collect
(
Collectors
.
toMap
(
ConsMediaDO:
:
getMediaUrl
,
ConsMediaDO:
:
getId
));
//新增
if
(
createReqVO
.
getMediaUrl
()
!=
null
&&
!
createReqVO
.
getMediaUrl
().
isEmpty
())
{
List
<
String
>
mediaUrl
=
createReqVO
.
getMediaUrl
();
for
(
String
url
:
mediaUrl
)
{
if
(
map
.
containsKey
(
url
))
{
map
.
remove
(
url
);
}
else
{
ConsMediaDO
consMediaDO
=
new
ConsMediaDO
()
.
setMediaBusinessType
(
createReqVO
.
getMediaBusinessType
())
.
setTableName
(
"ecw_cons_item"
)
.
setColumnName
(
"inspection"
)
.
setMediaUrl
(
url
)
.
setBizId
(
createReqVO
.
getConsItemId
())
.
setConsId
(
createReqVO
.
getConsId
());
consMediaMapper
.
insert
(
consMediaDO
);
}
}
}
//删除
if
(!
map
.
isEmpty
())
{
consMediaMapper
.
deleteBatchIds
(
map
.
values
());
}
return
1L
;
}
...
...
@@ -85,8 +120,83 @@ public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspec
@Override
public
void
updateConsInspectionDetails
(
ConsInspectionDetailsUpdateReqVO
updateReqVO
)
{
// 更新
ConsInspectionDetailsDO
updateObj
=
ConsInspectionDetailsConvert
.
INSTANCE
.
convert
(
updateReqVO
);
consInspectionDetailsMapper
.
updateById
(
updateObj
);
ConsItemDO
consItemDO
=
consItemMapper
.
selectById
(
updateReqVO
.
getConsItemId
());
consItemDO
.
setProdId
(
updateReqVO
.
getProdId
());
consItemDO
.
setBrand
(
updateReqVO
.
getBrand
());
consItemDO
.
setBrandType
(
updateReqVO
.
getBrandType
());
consItemDO
.
setFeeType
(
updateReqVO
.
getFeeType
());
consItemDO
.
setMaterial
(
updateReqVO
.
getMaterial
());
consItemDO
.
setInspectionUnit
(
updateReqVO
.
getInspectionUnit
());
consItemDO
.
setInspectionProdAttrIds
(
updateReqVO
.
getInspectionProdAttrIds
());
consItemDO
.
setInspectionUsageIds
(
updateReqVO
.
getInspectionUsageIds
());
consItemMapper
.
updateById
(
consItemDO
);
List
<
ConsInspectionDetailsCreateReqVO
>
consWarehouseInItemDoList
=
updateReqVO
.
getConsWarehouseInItemDoList
();
for
(
ConsInspectionDetailsCreateReqVO
consInspectionDetailsCreateReqVO
:
consWarehouseInItemDoList
)
{
List
<
InspectionDetails
>
inspectionDetailsList
=
consInspectionDetailsCreateReqVO
.
getInspectionDetailsList
();
if
(
inspectionDetailsList
!=
null
&&
!
inspectionDetailsList
.
isEmpty
())
{
consInspectionDetailsCreateReqVO
.
setInspectionDetails
(
JSON
.
toJSONString
(
inspectionDetailsList
));
}
// 插入
ConsInspectionDetailsDO
consInspectionDetails
=
ConsInspectionDetailsConvert
.
INSTANCE
.
convert
(
consInspectionDetailsCreateReqVO
);
consInspectionDetailsMapper
.
updateById
(
consInspectionDetails
);
//更新或删除储位
List
<
ConsLocationDO
>
consLocationDOS
=
ConsLocationConvert
.
INSTANCE
.
convertListRe
(
consLocationMapper
.
getConsLocationListByConsItemId
(
updateReqVO
.
getConsItemId
(),
consInspectionDetailsCreateReqVO
.
getId
()));
Map
<
String
,
Long
>
oldMap
=
new
HashMap
<>();
for
(
ConsLocationDO
consLocationDO
:
consLocationDOS
)
{
oldMap
.
put
(
String
.
valueOf
(
consLocationDO
.
getWareId
())
+
consLocationDO
.
getAreaId
()
+
consLocationDO
.
getLocationId
(),
consLocationDO
.
getId
());
}
List
<
ConsLocationUpdateReqVO
>
consLocationBackList
=
consInspectionDetailsCreateReqVO
.
getConsLocationBackList
();
List
<
ConsLocationDO
>
addList
=
new
ArrayList
<>();
for
(
ConsLocationUpdateReqVO
consLocationUpdateReqVO
:
consLocationBackList
)
{
String
key
=
String
.
valueOf
(
consLocationUpdateReqVO
.
getWareId
())
+
consLocationUpdateReqVO
.
getAreaId
()
+
consLocationUpdateReqVO
.
getLocationId
();
if
(
oldMap
.
containsKey
(
key
))
{
oldMap
.
remove
(
key
);
}
else
{
ConsLocationDO
consLocationDO
=
new
ConsLocationDO
()
.
setConsId
(
updateReqVO
.
getId
())
.
setConsItemId
(
updateReqVO
.
getConsItemId
())
.
setInspectionId
(
consInspectionDetailsCreateReqVO
.
getId
())
.
setWareId
(
consLocationUpdateReqVO
.
getWareId
())
.
setAreaId
(
consLocationUpdateReqVO
.
getAreaId
())
.
setLocationId
(
consLocationUpdateReqVO
.
getLocationId
());
addList
.
add
(
consLocationDO
);
}
}
if
(
addList
.
size
()
>
0
)
{
consLocationMapper
.
insertBatch
(
addList
);
}
if
(!
oldMap
.
isEmpty
())
{
oldMap
.
forEach
((
k
,
v
)
->
consLocationMapper
.
deleteById
(
v
));
}
}
//更新影像
Map
<
String
,
Long
>
map
=
consMediaMapper
.
selectList
(
new
LambdaQueryWrapper
<
ConsMediaDO
>()
.
eq
(
ConsMediaDO:
:
getTableName
,
"ecw_cons_item"
)
.
eq
(
ConsMediaDO:
:
getColumnName
,
"inspection"
)
.
eq
(
ConsMediaDO:
:
getBizId
,
consItemDO
.
getId
())).
stream
().
collect
(
Collectors
.
toMap
(
ConsMediaDO:
:
getMediaUrl
,
ConsMediaDO:
:
getId
));
//新增
if
(
updateReqVO
.
getMediaUrl
()
!=
null
&&
!
updateReqVO
.
getMediaUrl
().
isEmpty
())
{
List
<
String
>
mediaUrl
=
updateReqVO
.
getMediaUrl
();
for
(
String
url
:
mediaUrl
)
{
if
(
map
.
containsKey
(
url
))
{
map
.
remove
(
url
);
}
else
{
ConsMediaDO
consMediaDO
=
new
ConsMediaDO
()
.
setMediaBusinessType
(
updateReqVO
.
getMediaBusinessType
())
.
setTableName
(
"ecw_cons_item"
)
.
setColumnName
(
"inspection"
)
.
setMediaUrl
(
url
)
.
setBizId
(
updateReqVO
.
getConsItemId
())
.
setConsId
(
updateReqVO
.
getConsId
());
consMediaMapper
.
insert
(
consMediaDO
);
}
}
}
//删除
if
(!
map
.
isEmpty
())
{
consMediaMapper
.
deleteBatchIds
(
map
.
values
());
}
}
@Override
...
...
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/consInspectionDetails/ConsInspectionDetailsBaseVO.java
View file @
a5c3cdc8
...
...
@@ -74,6 +74,11 @@ public class ConsInspectionDetailsBaseVO {
@ApiModelProperty
(
value
=
"验货商品单位"
)
private
String
inspectionUnit
;
/**
* 文件
*/
private
List
<
String
>
mediaUrl
;
/**
* 无牌价0,有牌价1,中性品牌价2
*/
...
...
@@ -87,4 +92,7 @@ public class ConsInspectionDetailsBaseVO {
@ApiModelProperty
(
value
=
"验货纪录明细"
)
private
List
<
InspectionDetails
>
inspectionDetailsList
;
public
Integer
mediaBusinessType
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/consInspectionDetails/ConsInspectionDetailsCreateReqVO.java
View file @
a5c3cdc8
...
...
@@ -11,4 +11,6 @@ import javax.validation.constraints.*;
@ApiModel
(
"管理后台 - 集运验货明细创建 Request VO"
)
public
class
ConsInspectionDetailsCreateReqVO
extends
ConsInspectionDetailsBaseVO
{
@ApiModelProperty
(
value
=
"主键ID"
)
private
Long
id
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/consInspectionDetails/ConsInspectionDetailsUpdateReqVO.java
View file @
a5c3cdc8
...
...
@@ -12,7 +12,6 @@ import javax.validation.constraints.*;
public
class
ConsInspectionDetailsUpdateReqVO
extends
ConsInspectionDetailsBaseVO
{
@ApiModelProperty
(
value
=
"主键ID"
,
required
=
true
)
@NotNull
(
message
=
"主键ID不能为空"
)
private
Long
id
;
}
yudao-module-order/yudao-module-order-core/src/main/java/cn/iocoder/yudao/module/order/vo/consItem/ConsItemBackVO.java
View file @
a5c3cdc8
...
...
@@ -129,4 +129,9 @@ public class ConsItemBackVO {
* 验货明细
*/
List
<
ConsInspectionDetailsUpdateReqVO
>
consInspectionDetails
;
/**
* 文件
*/
private
List
<
String
>
mediaUrl
;
}
yudao-module-order/yudao-module-order-rest/src/main/java/cn/iocoder/yudao/module/order/controller/admin/cons/ConsInspectionDetailsController.java
View file @
a5c3cdc8
...
...
@@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectio
import
cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO
;
import
cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO
;
import
cn.iocoder.yudao.module.order.dal.mysql.consMedia.ConsMediaMapper
;
import
cn.iocoder.yudao.module.order.service.cons.ConsService
;
import
cn.iocoder.yudao.module.order.service.consInspectionDetails.ConsInspectionDetailsService
;
import
cn.iocoder.yudao.module.order.service.consItem.ConsItemService
;
...
...
@@ -24,6 +25,7 @@ import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import
cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO
;
import
cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -34,6 +36,7 @@ import io.swagger.annotations.*;
import
javax.validation.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
cn.iocoder.yudao.framework.common.pojo.PageResult
;
import
cn.iocoder.yudao.framework.common.pojo.CommonResult
;
...
...
@@ -67,6 +70,8 @@ public class ConsInspectionDetailsController {
@Resource
private
ConsLocationService
consLocationService
;
@Resource
private
ConsMediaService
consMediaService
;
@PostMapping
(
"/create"
)
@ApiOperation
(
"创建集运验货明细"
)
...
...
@@ -110,10 +115,20 @@ public class ConsInspectionDetailsController {
.
eq
(
ConsInspectionDetailsDO:
:
getConsItemId
,
consItemBack
.
getId
()));
List
<
ConsInspectionDetailsUpdateReqVO
>
convertedList
=
ConsInspectionDetailsConvert
.
INSTANCE
.
convertList
(
consInspectionDetails
);
for
(
ConsInspectionDetailsUpdateReqVO
consInspectionDetailsBackVO
:
convertedList
)
{
consInspectionDetailsBackVO
.
setInspectionDetailsList
(
JSON
.
parseArray
(
consInspectionDetailsBackVO
.
getInspectionDetails
(),
InspectionDetails
.
class
));
//初始化箱明细
if
(
StringUtils
.
isNotBlank
(
consInspectionDetailsBackVO
.
getInspectionDetails
()))
{
consInspectionDetailsBackVO
.
setInspectionDetailsList
(
JSON
.
parseArray
(
consInspectionDetailsBackVO
.
getInspectionDetails
(),
InspectionDetails
.
class
));
}
else
{
consInspectionDetailsBackVO
.
setInspectionDetailsList
(
new
ArrayList
<>());
}
consInspectionDetailsBackVO
.
setConsLocationBackList
(
consLocationService
.
getConsLocationListByConsItemId
(
consInspectionDetailsBackVO
.
getConsItemId
(),
consInspectionDetailsBackVO
.
getId
()));
}
consItemBack
.
setConsInspectionDetails
(
convertedList
);
consItemBack
.
setMediaUrl
(
consMediaService
.
selectList
(
new
LambdaQueryWrapper
<
ConsMediaDO
>()
.
eq
(
ConsMediaDO:
:
getTableName
,
"ecw_cons_item"
)
.
eq
(
ConsMediaDO:
:
getColumnName
,
"inspection"
)
.
eq
(
ConsMediaDO:
:
getBizId
,
consItemBack
.
getId
())
.
eq
(
ConsMediaDO:
:
getMediaBusinessType
,
4
)).
stream
().
map
(
ConsMediaDO:
:
getMediaUrl
).
collect
(
Collectors
.
toList
()));
}
consBackVO
.
setConsItemVOList
(
consItemBacks
);
if
(
customerContacts
!=
null
)
{
...
...
@@ -127,11 +142,6 @@ public class ConsInspectionDetailsController {
List
<
ConsLocationUpdateReqVO
>
consLocationBackList
=
consLocationService
.
getConsLocationListByConsId
(
cons
.
getId
());
consBackVO
.
setConsLocationBackList
(
consLocationBackList
==
null
?
new
ArrayList
<>()
:
consLocationBackList
);
//获取签收图片
ConsMediaDO
consMedia
=
consentMediaService
.
getOne
(
new
LambdaQueryWrapperX
<
ConsMediaDO
>().
eq
(
ConsMediaDO:
:
getConsId
,
cons
.
getId
())
.
eq
(
ConsMediaDO:
:
getBizId
,
cons
.
getId
())
.
eq
(
ConsMediaDO:
:
getMediaBusinessType
,
3
));
consBackVO
.
setMediaUrl
(
consMedia
==
null
?
""
:
consMedia
.
getMediaUrl
());
return
success
(
consBackVO
);
}
...
...
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