Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
smart-rack-base
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
耿迪迪
smart-rack-base
Commits
8a67af0d
Commit
8a67af0d
authored
Oct 16, 2025
by
耿迪迪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
出入库逻辑修改及位置提示信息修改
parent
00e0e9bd
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
376 additions
and
30 deletions
+376
-30
TRackMaterialInfoController.java
.../web/controller/material/TRackMaterialInfoController.java
+9
-0
TShelfStorageLocation.java
...com/zehong/system/domain/shelf/TShelfStorageLocation.java
+32
-0
TRackMaterialRelationMapper.java
...g/system/mapper/material/TRackMaterialRelationMapper.java
+7
-0
ITShelfApiServiceImpl.java
...hong/system/service/impl/shelf/ITShelfApiServiceImpl.java
+52
-3
PlatformDockingTaskAspect.java
...service/impl/shelf/aspectj/PlatformDockingTaskAspect.java
+4
-0
TRackMaterialRelationMapper.xml
...resources/mapper/material/TRackMaterialRelationMapper.xml
+7
-0
TShelfStorageLocationMapper.xml
...in/resources/mapper/shelf/TShelfStorageLocationMapper.xml
+16
-1
info.js
smart-rack-base-web/src/api/material/info.js
+9
-0
index.vue
smart-rack-base-web/src/views/materialmanage/info/index.vue
+1
-1
index.vue
...base-web/src/views/pcbamanage/pcbashelflocation/index.vue
+120
-13
index.vue
...web/src/views/producemange/produceshelflocation/index.vue
+119
-12
No files found.
smart-rack-base-admin/src/main/java/com/zehong/web/controller/material/TRackMaterialInfoController.java
View file @
8a67af0d
...
@@ -37,6 +37,15 @@ public class TRackMaterialInfoController extends BaseController
...
@@ -37,6 +37,15 @@ public class TRackMaterialInfoController extends BaseController
return
getDataTable
(
list
);
return
getDataTable
(
list
);
}
}
/**
* 查询物料维护列表信息
*/
@GetMapping
(
"/materialInfoList"
)
public
AjaxResult
materialInfoList
(
TRackMaterialInfo
tRackMaterialInfo
)
{
List
<
TRackMaterialInfo
>
list
=
tRackMaterialInfoService
.
selectTRackMaterialInfoList
(
tRackMaterialInfo
);
return
AjaxResult
.
success
(
list
);
}
/**
/**
* 导出物料维护列表
* 导出物料维护列表
*/
*/
...
...
smart-rack-base-system/src/main/java/com/zehong/system/domain/shelf/TShelfStorageLocation.java
View file @
8a67af0d
...
@@ -50,6 +50,16 @@ public class TShelfStorageLocation extends BaseEntity
...
@@ -50,6 +50,16 @@ public class TShelfStorageLocation extends BaseEntity
@Excel
(
name
=
"出库时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"出库时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
outboundTime
;
private
Date
outboundTime
;
/** 物料代码 */
private
String
materialCode
;
/** 物料名称 */
private
String
materialName
;
/** 物料规格型号 */
private
String
materialSpecifications
;
public
Long
getShelfStorageLocationId
()
{
public
Long
getShelfStorageLocationId
()
{
return
shelfStorageLocationId
;
return
shelfStorageLocationId
;
}
}
...
@@ -114,7 +124,29 @@ public class TShelfStorageLocation extends BaseEntity
...
@@ -114,7 +124,29 @@ public class TShelfStorageLocation extends BaseEntity
this
.
outboundTime
=
outboundTime
;
this
.
outboundTime
=
outboundTime
;
}
}
public
String
getMaterialCode
()
{
return
materialCode
;
}
public
void
setMaterialCode
(
String
materialCode
)
{
this
.
materialCode
=
materialCode
;
}
public
String
getMaterialName
()
{
return
materialName
;
}
public
void
setMaterialName
(
String
materialName
)
{
this
.
materialName
=
materialName
;
}
public
String
getMaterialSpecifications
()
{
return
materialSpecifications
;
}
public
void
setMaterialSpecifications
(
String
materialSpecifications
)
{
this
.
materialSpecifications
=
materialSpecifications
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
...
...
smart-rack-base-system/src/main/java/com/zehong/system/mapper/material/TRackMaterialRelationMapper.java
View file @
8a67af0d
...
@@ -58,4 +58,11 @@ public interface TRackMaterialRelationMapper
...
@@ -58,4 +58,11 @@ public interface TRackMaterialRelationMapper
* @return 结果
* @return 结果
*/
*/
public
int
deleteTRackMaterialRelationByIds
(
Long
[]
relationIds
);
public
int
deleteTRackMaterialRelationByIds
(
Long
[]
relationIds
);
/**
* 批量删除料架和物料维护
* @param rackCodes 料架号
* @return int
*/
int
deleteTRackMaterialRelationByRackCodes
(
String
[]
rackCodes
);
}
}
smart-rack-base-system/src/main/java/com/zehong/system/service/impl/shelf/ITShelfApiServiceImpl.java
View file @
8a67af0d
...
@@ -2,10 +2,13 @@ package com.zehong.system.service.impl.shelf;
...
@@ -2,10 +2,13 @@ package com.zehong.system.service.impl.shelf;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.zehong.common.exception.CustomException
;
import
com.zehong.common.exception.CustomException
;
import
com.zehong.common.utils.SecurityUtils
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.common.utils.StringUtils
;
import
com.zehong.common.utils.http.HttpClientUtils
;
import
com.zehong.common.utils.http.HttpClientUtils
;
import
com.zehong.system.domain.material.TRackMaterialRelation
;
import
com.zehong.system.domain.shelf.TShelfInfo
;
import
com.zehong.system.domain.shelf.TShelfInfo
;
import
com.zehong.system.domain.shelf.TShelfStorageLocation
;
import
com.zehong.system.domain.shelf.TShelfStorageLocation
;
import
com.zehong.system.mapper.material.TRackMaterialRelationMapper
;
import
com.zehong.system.mapper.shelf.TShelfInfoMapper
;
import
com.zehong.system.mapper.shelf.TShelfInfoMapper
;
import
com.zehong.system.mapper.shelf.TShelfStorageLocationMapper
;
import
com.zehong.system.mapper.shelf.TShelfStorageLocationMapper
;
import
com.zehong.system.service.impl.shelf.annotation.DockingTaskType
;
import
com.zehong.system.service.impl.shelf.annotation.DockingTaskType
;
...
@@ -21,6 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -21,6 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
/**
/**
* 货架第三方接口
* 货架第三方接口
...
@@ -36,6 +42,9 @@ public class ITShelfApiServiceImpl implements ITShelfApiService{
...
@@ -36,6 +42,9 @@ public class ITShelfApiServiceImpl implements ITShelfApiService{
@Resource
@Resource
private
TShelfInfoMapper
shelfInfoMapper
;
private
TShelfInfoMapper
shelfInfoMapper
;
@Resource
private
TRackMaterialRelationMapper
rackMaterialRelationMapper
;
/**
/**
* 获取料架状态接口
* 获取料架状态接口
*/
*/
...
@@ -72,14 +81,54 @@ public class ITShelfApiServiceImpl implements ITShelfApiService{
...
@@ -72,14 +81,54 @@ public class ITShelfApiServiceImpl implements ITShelfApiService{
* @param param 入参
* @param param 入参
*/
*/
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@PlatformDockingTaskLog
(
type
=
DockingTaskType
.
CALL_RACK_SYSTEM
)
@PlatformDockingTaskLog
(
type
=
DockingTaskType
.
CALL_RACK_SYSTEM
)
public
String
rackInOutput
(
String
param
){
public
String
rackInOutput
(
String
param
){
log
.
info
(
"rackInOutput...param=========="
+
param
);
log
.
info
(
"rackInOutput...param=========="
+
param
);
String
result
=
HttpClientUtils
.
doPost
(
shelfApiUrl
+
RACK_IN_OUT_PUT_URL
,
param
,
null
);
JSONObject
paramJson
=
JSONObject
.
parseObject
(
param
);
if
(
StringUtils
.
isEmpty
(
result
))
throw
new
CustomException
(
"料架出入库接口错误"
);
if
(
paramJson
.
containsKey
(
"relationParam"
)){
return
result
;
// 入库
addRelationInfo
(
paramJson
.
getJSONObject
(
"relationParam"
));
String
result
=
HttpClientUtils
.
doPost
(
shelfApiUrl
+
RACK_IN_OUT_PUT_URL
,
paramJson
.
getString
(
"inStoreParam"
),
null
);
if
(
StringUtils
.
isEmpty
(
result
))
throw
new
CustomException
(
"料架出入库接口错误"
);
return
result
;
}
else
{
//出库
delRelationInfo
(
JSONObject
.
parseObject
(
param
));
String
result
=
HttpClientUtils
.
doPost
(
shelfApiUrl
+
RACK_IN_OUT_PUT_URL
,
param
,
null
);
if
(
StringUtils
.
isEmpty
(
result
))
throw
new
CustomException
(
"料架出入库接口错误"
);
return
result
;
}
}
}
/**
* 新增关联入库信息
* @param param 关联信息
*/
private
void
addRelationInfo
(
JSONObject
param
){
TRackMaterialRelation
tRackMaterialRelation
=
new
TRackMaterialRelation
();
tRackMaterialRelation
.
setMaterialId
(
param
.
getLong
(
"materialId"
));
tRackMaterialRelation
.
setRackCode
(
param
.
getString
(
"rackCode"
));
tRackMaterialRelation
.
setCreateTime
(
new
Date
());
tRackMaterialRelation
.
setCreateBy
(
SecurityUtils
.
getLoginUser
().
getUser
().
getNickName
());
int
result
=
rackMaterialRelationMapper
.
insertTRackMaterialRelation
(
tRackMaterialRelation
);
if
(
result
==
0
)
throw
new
CustomException
(
"入库料盘物料信息关联失败"
);
}
/**
* 解除入库关联信息
* @param param 位置信息
*/
private
void
delRelationInfo
(
JSONObject
param
){
List
<
JSONObject
>
locationInfo
=
param
.
getJSONArray
(
"TOTALINFO"
).
toJavaList
(
JSONObject
.
class
);
String
[]
rockCodes
=
locationInfo
.
stream
()
.
map
(
json
->
json
.
getString
(
"RID"
))
.
filter
(
Objects:
:
nonNull
)
.
toArray
(
String
[]::
new
);
int
result
=
rackMaterialRelationMapper
.
deleteTRackMaterialRelationByRackCodes
(
rockCodes
);
if
(
result
==
0
)
throw
new
CustomException
(
"入库料盘物料信息解除失败"
);
}
/**
/**
* 获取料架所有储位信息
* 获取料架所有储位信息
* @param param 请求参数
* @param param 请求参数
...
...
smart-rack-base-system/src/main/java/com/zehong/system/service/impl/shelf/aspectj/PlatformDockingTaskAspect.java
View file @
8a67af0d
...
@@ -53,6 +53,10 @@ public class PlatformDockingTaskAspect {
...
@@ -53,6 +53,10 @@ public class PlatformDockingTaskAspect {
private
void
insertCallRackSystemLog
(
JoinPoint
joinPoint
,
Object
result
){
private
void
insertCallRackSystemLog
(
JoinPoint
joinPoint
,
Object
result
){
String
param
=
(
String
)
joinPoint
.
getArgs
()[
0
];
String
param
=
(
String
)
joinPoint
.
getArgs
()[
0
];
JSONObject
paramJson
=
JSONObject
.
parseObject
(
param
);
JSONObject
paramJson
=
JSONObject
.
parseObject
(
param
);
//判断是否为入库
if
(
paramJson
.
containsKey
(
"inStoreParam"
)){
paramJson
=
paramJson
.
getJSONObject
(
"inStoreParam"
);
}
//插入日志
//插入日志
TPlatformDockingTask
tPlatformDockingTask
=
new
TPlatformDockingTask
();
TPlatformDockingTask
tPlatformDockingTask
=
new
TPlatformDockingTask
();
tPlatformDockingTask
.
setfTaskId
(
paramJson
.
getString
(
"ID"
));
tPlatformDockingTask
.
setfTaskId
(
paramJson
.
getString
(
"ID"
));
...
...
smart-rack-base-system/src/main/resources/mapper/material/TRackMaterialRelationMapper.xml
View file @
8a67af0d
...
@@ -91,4 +91,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -91,4 +91,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{relationId}
#{relationId}
</foreach>
</foreach>
</delete>
</delete>
<delete
id=
"deleteTRackMaterialRelationByRackCodes"
parameterType=
"String"
>
delete from t_rack_material_relation where rack_code in
<foreach
item=
"rackCode"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
#{rackCode}
</foreach>
</delete>
</mapper>
</mapper>
\ No newline at end of file
smart-rack-base-system/src/main/resources/mapper/shelf/TShelfStorageLocationMapper.xml
View file @
8a67af0d
...
@@ -16,7 +16,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -16,7 +16,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
</resultMap>
<sql
id=
"selectTShelfStorageLocationVo"
>
<sql
id=
"selectTShelfStorageLocationVo"
>
select f_shelf_storage_location_id, f_shelf_id, f_label, f_location, f_index, f_rid, f_inbound_time, f_outbound_time from t_shelf_storage_location
SELECT
location.f_shelf_storage_location_id,
location.f_shelf_id,
location.f_label,
location.f_location,
location.f_index,
location.f_rid,
location.f_inbound_time,
location.f_outbound_time,
material.material_code AS materialCode,
material.material_name AS materialName,
material.material_specifications AS materialSpecifications
FROM
t_shelf_storage_location location
LEFT JOIN t_rack_material_relation relation ON relation.rack_code = location.f_rid
LEFT JOIN t_rack_material_info material ON material.material_id = relation.material_id
</sql>
</sql>
<select
id=
"selectTShelfStorageLocationList"
parameterType=
"TShelfStorageLocation"
resultMap=
"TShelfStorageLocationResult"
>
<select
id=
"selectTShelfStorageLocationList"
parameterType=
"TShelfStorageLocation"
resultMap=
"TShelfStorageLocationResult"
>
...
...
smart-rack-base-web/src/api/material/info.js
View file @
8a67af0d
...
@@ -9,6 +9,15 @@ export function listInfo(query) {
...
@@ -9,6 +9,15 @@ export function listInfo(query) {
})
})
}
}
// 查询所有物料信息
export
function
materialInfoList
(
query
)
{
return
request
({
url
:
'/material/info/materialInfoList'
,
method
:
'get'
,
params
:
query
})
}
// 查询物料维护详细
// 查询物料维护详细
export
function
getInfo
(
materialId
)
{
export
function
getInfo
(
materialId
)
{
return
request
({
return
request
({
...
...
smart-rack-base-web/src/views/materialmanage/info/index.vue
View file @
8a67af0d
...
@@ -106,7 +106,7 @@
...
@@ -106,7 +106,7 @@
/>
/>
<!--
添加或修改物料维护对话框
-->
<!--
添加或修改物料维护对话框
-->
<
el
-
dialog
:
title
=
"title"
:
visible
.
sync
=
"open"
width
=
"500px"
append
-
to
-
body
>
<
el
-
dialog
:
title
=
"title"
:
visible
.
sync
=
"open"
width
=
"500px"
append
-
to
-
body
destroy
-
on
-
close
:
close
-
on
-
click
-
modal
=
"false"
>
<
el
-
form
ref
=
"form"
:
model
=
"form"
:
rules
=
"rules"
label
-
width
=
"80px"
>
<
el
-
form
ref
=
"form"
:
model
=
"form"
:
rules
=
"rules"
label
-
width
=
"80px"
>
<
el
-
form
-
item
label
=
"物料代码"
prop
=
"materialCode"
>
<
el
-
form
-
item
label
=
"物料代码"
prop
=
"materialCode"
>
<
el
-
input
v
-
model
=
"form.materialCode"
placeholder
=
"请输入物料代码"
/>
<
el
-
input
v
-
model
=
"form.materialCode"
placeholder
=
"请输入物料代码"
/>
...
...
smart-rack-base-web/src/views/pcbamanage/pcbashelflocation/index.vue
View file @
8a67af0d
...
@@ -47,9 +47,14 @@
...
@@ -47,9 +47,14 @@
<el-tooltip
<el-tooltip
effect=
"light"
effect=
"light"
v-if=
"location.rid"
v-if=
"location.rid"
:content=
"location.rid"
placement=
"top"
placement=
"top"
>
>
<div
slot=
"content"
>
料架号:
{{
location
.
rid
}}
<br/>
物料代码:
{{
location
.
materialCode
}}
<br/>
物料名称:
{{
location
.
materialName
}}
<br/>
规格型号:
{{
location
.
materialSpecifications
}}
</div>
<span>
{{
location
.
label
}}
</span>
<span>
{{
location
.
label
}}
</span>
</el-tooltip>
</el-tooltip>
<span
v-else
>
{{
location
.
label
}}
</span>
<span
v-else
>
{{
location
.
label
}}
</span>
...
@@ -57,11 +62,46 @@
...
@@ -57,11 +62,46 @@
</div>
</div>
</div>
</div>
<!-- 出库 -->
<el-dialog
title=
"入库"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
destroy-on-close
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"料盘码"
prop=
"materialCode"
>
<el-input
v-model=
"form.rackCode"
placeholder=
"请输入物料代码"
:readOnly=
"true"
/>
</el-form-item>
<el-form-item
label=
"物料代码"
prop=
"materialCode"
>
<el-select
v-model=
"form.materialCode"
placeholder=
"请选择物料代码"
:style=
"
{ width: '100%' }"
@change="materialCodeChange"
>
<el-option
v-for=
"(item, index) in materialInfoList"
:key=
"index"
:label=
"item.materialCode"
:value=
"item.materialId"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"物料名称"
prop=
"materialName"
>
<el-input
v-model=
"form.materialName"
placeholder=
"请输入名称"
:readOnly=
"true"
/>
</el-form-item>
<el-form-item
label=
"规格型号"
prop=
"materialSpecifications"
>
<el-input
v-model=
"form.materialSpecifications"
placeholder=
"请输入规格型号"
:readOnly=
"true"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
locationListInfo
,
rackInOutput
}
from
"@/api/shelf/location"
;
import
{
locationListInfo
,
rackInOutput
}
from
"@/api/shelf/location"
;
import
{
materialInfoList
}
from
"@/api/material/info"
;
export
default
{
export
default
{
name
:
"shelf-location"
,
name
:
"shelf-location"
,
data
(){
data
(){
...
@@ -87,7 +127,22 @@
...
@@ -87,7 +127,22 @@
shelfId
:
null
,
shelfId
:
null
,
},
},
ws
:
null
,
ws
:
null
,
heartbeatInterval
:
null
heartbeatInterval
:
null
,
form
:
{
rackCode
:
null
,
materialCode
:
null
,
materialName
:
null
,
materialSpecifications
:
null
,
materialId
:
null
},
open
:
false
,
// 表单校验
rules
:
{
rackCode
:
[
{
required
:
true
,
message
:
"物料代码不能为空"
,
trigger
:
"blur"
}
],
},
materialInfoList
:
[]
}
}
},
},
created
(){
created
(){
...
@@ -198,16 +253,10 @@
...
@@ -198,16 +253,10 @@
this
.
$message
.
error
(
"请扫描或输入料盘条形码"
);
this
.
$message
.
error
(
"请扫描或输入料盘条形码"
);
return
return
}
}
const
param
=
{
this
.
getMaterialInfo
();
ID
:
this
.
generateUUID
(),
this
.
form
.
rackCode
=
this
.
barCode
;
OPTYPE
:
"I"
,
this
.
open
=
true
;
SHELF
:
this
.
$route
.
query
.
shelf
,
COLOR
:
"1"
,
USERNAME
:
"admin"
,
TOTALINFO
:
[{
RID
:
this
.
barCode
}]
};
rackInOutput
(
JSON
.
stringify
(
param
));
this
.
clearSelection
();
},
},
// 出库操作需要选择位置可多选不需要扫码
// 出库操作需要选择位置可多选不需要扫码
handleOut
(){
handleOut
(){
...
@@ -228,7 +277,11 @@
...
@@ -228,7 +277,11 @@
const
locationInfo
=
this
.
shelfInfo
[
dom
.
dataset
.
index
-
1
];
const
locationInfo
=
this
.
shelfInfo
[
dom
.
dataset
.
index
-
1
];
param
.
TOTALINFO
.
push
({
RID
:
locationInfo
.
rid
,
LOCATION
:
locationInfo
.
location
})
param
.
TOTALINFO
.
push
({
RID
:
locationInfo
.
rid
,
LOCATION
:
locationInfo
.
location
})
})
})
rackInOutput
(
JSON
.
stringify
(
param
));
rackInOutput
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
msgSuccess
(
"出库成功"
);
}
});
this
.
clearSelection
();
this
.
clearSelection
();
},
},
//生成uuid
//生成uuid
...
@@ -277,6 +330,60 @@
...
@@ -277,6 +330,60 @@
if
(
this
.
ws
)
{
if
(
this
.
ws
)
{
this
.
ws
.
close
();
this
.
ws
.
close
();
}
}
},
// 表单重置
reset
()
{
this
.
form
=
{
materialCode
:
null
,
materialId
:
null
,
materialCode
:
null
,
materialName
:
null
,
materialSpecifications
:
null
,
};
this
.
resetForm
(
"form"
);
},
//提交入库
submitForm
(){
const
param
=
{
inStoreParam
:
JSON
.
stringify
(
{
ID
:
this
.
generateUUID
(),
OPTYPE
:
"I"
,
SHELF
:
this
.
$route
.
query
.
shelf
,
COLOR
:
"1"
,
USERNAME
:
"admin"
,
TOTALINFO
:
[{
RID
:
this
.
barCode
}]
}
),
relationParam
:
this
.
form
};
rackInOutput
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
open
=
false
;
this
.
msgSuccess
(
"入库成功"
);
this
.
clearSelection
();
}
})
},
//取消入库
cancel
(){
this
.
reset
();
this
.
open
=
false
;
},
//切换物料代码
materialCodeChange
(
val
){
const
materialInfo
=
this
.
materialInfoList
.
find
(
item
=>
item
.
materialId
=
val
);
this
.
form
.
materialId
=
val
;
this
.
form
.
materialName
=
materialInfo
.
materialName
;
this
.
form
.
materialSpecifications
=
materialInfo
.
materialSpecifications
;
},
//获取物料信息
getMaterialInfo
(){
materialInfoList
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
materialInfoList
=
res
.
data
;
}
})
}
}
},
},
beforeDestroy
()
{
beforeDestroy
()
{
...
...
smart-rack-base-web/src/views/producemange/produceshelflocation/index.vue
View file @
8a67af0d
...
@@ -50,6 +50,12 @@
...
@@ -50,6 +50,12 @@
:content=
"location.rid"
:content=
"location.rid"
placement=
"top"
placement=
"top"
>
>
<div
slot=
"content"
>
料架号:
{{
location
.
rid
}}
<br/>
物料代码:
{{
location
.
materialCode
}}
<br/>
物料名称:
{{
location
.
materialName
}}
<br/>
规格型号:
{{
location
.
materialSpecifications
}}
</div>
<span>
{{
location
.
label
}}
</span>
<span>
{{
location
.
label
}}
</span>
</el-tooltip>
</el-tooltip>
<span
v-else
>
{{
location
.
label
}}
</span>
<span
v-else
>
{{
location
.
label
}}
</span>
...
@@ -57,11 +63,46 @@
...
@@ -57,11 +63,46 @@
</div>
</div>
</div>
</div>
<!-- 出库 -->
<el-dialog
title=
"入库"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
destroy-on-close
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"料盘码"
prop=
"materialCode"
>
<el-input
v-model=
"form.rackCode"
placeholder=
"请输入物料代码"
:readOnly=
"true"
/>
</el-form-item>
<el-form-item
label=
"物料代码"
prop=
"materialCode"
>
<el-select
v-model=
"form.materialCode"
placeholder=
"请选择物料代码"
:style=
"
{ width: '100%' }"
@change="materialCodeChange"
>
<el-option
v-for=
"(item, index) in materialInfoList"
:key=
"index"
:label=
"item.materialCode"
:value=
"item.materialId"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"物料名称"
prop=
"materialName"
>
<el-input
v-model=
"form.materialName"
placeholder=
"请输入名称"
:readOnly=
"true"
/>
</el-form-item>
<el-form-item
label=
"规格型号"
prop=
"materialSpecifications"
>
<el-input
v-model=
"form.materialSpecifications"
placeholder=
"请输入规格型号"
:readOnly=
"true"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
locationListInfo
,
rackInOutput
}
from
"@/api/shelf/location"
;
import
{
locationListInfo
,
rackInOutput
}
from
"@/api/shelf/location"
;
import
{
materialInfoList
}
from
"@/api/material/info"
;
export
default
{
export
default
{
name
:
"shelf-location"
,
name
:
"shelf-location"
,
data
(){
data
(){
...
@@ -87,7 +128,22 @@
...
@@ -87,7 +128,22 @@
shelfId
:
null
,
shelfId
:
null
,
},
},
ws
:
null
,
ws
:
null
,
heartbeatInterval
:
null
heartbeatInterval
:
null
,
form
:
{
rackCode
:
null
,
materialCode
:
null
,
materialName
:
null
,
materialSpecifications
:
null
,
materialId
:
null
},
open
:
false
,
// 表单校验
rules
:
{
rackCode
:
[
{
required
:
true
,
message
:
"物料代码不能为空"
,
trigger
:
"blur"
}
],
},
materialInfoList
:
[]
}
}
},
},
created
(){
created
(){
...
@@ -198,16 +254,9 @@
...
@@ -198,16 +254,9 @@
this
.
$message
.
error
(
"请扫描或输入料盘条形码"
);
this
.
$message
.
error
(
"请扫描或输入料盘条形码"
);
return
return
}
}
const
param
=
{
this
.
getMaterialInfo
();
ID
:
this
.
generateUUID
(),
this
.
form
.
rackCode
=
this
.
barCode
;
OPTYPE
:
"I"
,
this
.
open
=
true
;
SHELF
:
this
.
$route
.
query
.
shelf
,
COLOR
:
"1"
,
USERNAME
:
"admin"
,
TOTALINFO
:
[{
RID
:
this
.
barCode
}]
};
rackInOutput
(
JSON
.
stringify
(
param
));
this
.
clearSelection
();
},
},
// 出库操作需要选择位置可多选不需要扫码
// 出库操作需要选择位置可多选不需要扫码
handleOut
(){
handleOut
(){
...
@@ -228,7 +277,11 @@
...
@@ -228,7 +277,11 @@
const
locationInfo
=
this
.
shelfInfo
[
dom
.
dataset
.
index
-
1
];
const
locationInfo
=
this
.
shelfInfo
[
dom
.
dataset
.
index
-
1
];
param
.
TOTALINFO
.
push
({
RID
:
locationInfo
.
rid
,
LOCATION
:
locationInfo
.
location
})
param
.
TOTALINFO
.
push
({
RID
:
locationInfo
.
rid
,
LOCATION
:
locationInfo
.
location
})
})
})
rackInOutput
(
JSON
.
stringify
(
param
));
rackInOutput
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
msgSuccess
(
"出库成功"
);
}
});
this
.
clearSelection
();
this
.
clearSelection
();
},
},
//生成uuid
//生成uuid
...
@@ -277,6 +330,60 @@
...
@@ -277,6 +330,60 @@
if
(
this
.
ws
)
{
if
(
this
.
ws
)
{
this
.
ws
.
close
();
this
.
ws
.
close
();
}
}
},
// 表单重置
reset
()
{
this
.
form
=
{
materialCode
:
null
,
materialId
:
null
,
materialCode
:
null
,
materialName
:
null
,
materialSpecifications
:
null
,
};
this
.
resetForm
(
"form"
);
},
//提交入库
submitForm
(){
const
param
=
{
inStoreParam
:
JSON
.
stringify
(
{
ID
:
this
.
generateUUID
(),
OPTYPE
:
"I"
,
SHELF
:
this
.
$route
.
query
.
shelf
,
COLOR
:
"1"
,
USERNAME
:
"admin"
,
TOTALINFO
:
[{
RID
:
this
.
barCode
}]
}
),
relationParam
:
this
.
form
};
rackInOutput
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
open
=
false
;
this
.
msgSuccess
(
"入库成功"
);
this
.
clearSelection
();
}
})
},
//取消入库
cancel
(){
this
.
reset
();
this
.
open
=
false
;
},
//切换物料代码
materialCodeChange
(
val
){
const
materialInfo
=
this
.
materialInfoList
.
find
(
item
=>
item
.
materialId
=
val
);
this
.
form
.
materialId
=
val
;
this
.
form
.
materialName
=
materialInfo
.
materialName
;
this
.
form
.
materialSpecifications
=
materialInfo
.
materialSpecifications
;
},
//获取物料信息
getMaterialInfo
(){
materialInfoList
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
materialInfoList
=
res
.
data
;
}
})
}
}
},
},
beforeDestroy
()
{
beforeDestroy
()
{
...
...
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