Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 56ea7cc8
由
hc
编写于
2024-07-05 16:23:28 +0800
浏览文件
选项
浏览文件
标签
下载
差异文件
Merge remote-tracking branch 'origin/smf-core-21088' into smf-core-21088
2 个父辈
6a02a894
3f381586
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
282 行增加
和
22 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/custom/luxsan/api/LuxsanApi.java
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/request/ManualPalletRequest.java
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/request/UnBindPalletRequest.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/GrPutInController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/BinCacheUtil.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/AgvDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/CancelRestockController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/RestoreReplaceController.java
src/main/resources/config/application-21088prod.yml
src/main/resources/config/application-21088test.yml
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
56ea7cc
...
...
@@ -239,6 +239,7 @@ public class DataInitManager {
addNewFunctionMenu
(
7
,
wip
,
"handMovementOut"
,
"手动出箱"
,
"handMovementOut"
,
"SemiFinishProducts/handMovement/out/index"
,
"handMovementOut"
,
functionMenuMap
);
addNewFunctionMenu
(
8
,
wip
,
"handMovementIn"
,
"手动入箱"
,
"handMovementIn"
,
"SemiFinishProducts/handMovement/in/index"
,
"handMovementIn"
,
functionMenuMap
);
addNewFunctionMenu
(
9
,
wip
,
"cutOrders"
,
"ODN砍单回库"
,
"cutOrders"
,
"SemiFinishProducts/cutOrders/index"
,
"cutOrders"
,
functionMenuMap
);
addNewFunctionMenu
(
10
,
wip
,
"restoreRebox"
,
"ODN还原补箱"
,
"restoreRebox"
,
"SemiFinishProducts/restoreRebox/index"
,
"restoreRebox"
,
functionMenuMap
);
//MSD管理:MSD库存.MSD追溯性.MSD设置
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/api/LuxsanApi.java
查看文件 @
56ea7cc
...
...
@@ -1045,6 +1045,44 @@ public class LuxsanApi extends DefaultSmfApiListener {
}
public
static
String
unBindPallet
(
UnBindPalletRequest
request
)
{
log
.
info
(
"unBindPallet接口请求参数为:"
+
JSON
.
toJSONString
(
request
)
+
",地址为:"
+
unBindPalletUrl
);
String
result
=
""
;
try
{
String
resultStr
=
HttpHelper
.
postJson
(
unBindPalletUrl
,
request
);
log
.
info
(
"unBindPallet接口返回为:"
+
resultStr
);
LuxsanApiResult
apiResult
=
JSONObject
.
parseObject
(
resultStr
,
LuxsanApiResult
.
class
);
if
(
LuxsanApiEnum
.
ERROR
.
equals
(
apiResult
.
getMSGTY
()))
{
result
=
apiResult
.
getMSGTY
();
}
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
result
=
e
.
getMessage
();
}
return
result
;
}
public
static
String
manualPallet
(
ManualPalletRequest
request
)
{
log
.
info
(
"manualPallet接口请求参数为:"
+
JSON
.
toJSONString
(
request
)
+
",地址为:"
+
manualPalletUrl
);
String
result
=
""
;
try
{
String
resultStr
=
HttpHelper
.
postJson
(
manualPalletUrl
,
request
);
log
.
info
(
"manualPallet接口返回为:"
+
resultStr
);
LuxsanApiResult
apiResult
=
JSONObject
.
parseObject
(
resultStr
,
LuxsanApiResult
.
class
);
if
(
LuxsanApiEnum
.
ERROR
.
equals
(
apiResult
.
getMSGTY
()))
{
result
=
apiResult
.
getMSGTY
();
}
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
result
=
e
.
getMessage
();
}
return
result
;
}
@Override
public
void
outTaskStatusChange
(
String
outNotifyUrl
,
DataLog
task
)
{
//pickingIssue(new PickingIssueRequest());
...
...
@@ -1345,4 +1383,18 @@ public class LuxsanApi extends DefaultSmfApiListener {
public
void
setTicketPickPostUrl
(
String
url
){
LuxsanApi
.
ticketPickPostUrl
=
url
;
}
public
static
String
unBindPalletUrl
;
@Value
(
"${api.unBindPallet}"
)
public
void
setUnBindPalletUrl
(
String
url
){
LuxsanApi
.
unBindPalletUrl
=
url
;
}
public
static
String
manualPalletUrl
;
@Value
(
"${api.manualPallet}"
)
public
void
setManualPalletUrl
(
String
url
)
{
LuxsanApi
.
manualPalletUrl
=
url
;
}
}
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/request/ManualPalletRequest.java
0 → 100644
查看文件 @
56ea7cc
package
com
.
neotel
.
smfcore
.
custom
.
luxsan
.
api
.
bean
.
request
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
@Data
@AllArgsConstructor
public
class
ManualPalletRequest
{
private
String
PLANT_CODE
;
private
String
TICKET_CODE
;
private
String
TICKET_ITEM
;
private
String
PICKED_LABEL_ID
;
private
String
NEW_LABEL_ID
;
}
src/main/java/com/neotel/smfcore/custom/luxsan/api/bean/request/UnBindPalletRequest.java
0 → 100644
查看文件 @
56ea7cc
package
com
.
neotel
.
smfcore
.
custom
.
luxsan
.
api
.
bean
.
request
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
@Data
@AllArgsConstructor
public
class
UnBindPalletRequest
{
private
String
plant_code
;
private
String
ticket_code
;
private
String
ship_pallet
;
private
String
label_id
;
}
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
查看文件 @
56ea7cc
...
...
@@ -672,9 +672,12 @@ public class CDeviceController {
String
source
=
paramMap
.
get
(
"source"
);
String
needBinCodeStr
=
paramMap
.
get
(
"needBinCodeStr"
);
String
ignoreWorkStr
=
paramMap
.
get
(
"ignoreWorkBox"
)
;
boolean
ignoreWorkBox
=
false
;
boolean
ignoreWorkBox
=
Boolean
.
valueOf
(
ignoreWorkStr
);
String
ignoreWorkStr
=
paramMap
.
get
(
"ignoreWorkBox"
);
if
(
StringUtils
.
isNotEmpty
(
ignoreWorkStr
)){
ignoreWorkBox
=
Boolean
.
valueOf
(
ignoreWorkStr
);
}
List
<
String
>
validBinList
=
new
ArrayList
<
String
>();
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/GrPutInController.java
查看文件 @
56ea7cc
package
com
.
neotel
.
smfcore
.
custom
.
luxsan
.
factory_c
.
rawstor
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.manager.IComponentManager
;
...
...
@@ -153,6 +154,8 @@ public class GrPutInController {
String
materialStr
=
info
.
getMaterialStr
();
log
.
info
(
materialStr
+
"开始绑定GR信息为:"
+
JSON
.
toJSONString
(
info
));
if
(
StringUtils
.
isEmpty
(
materialStr
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"料串信息"
});
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/BinCacheUtil.java
查看文件 @
56ea7cc
...
...
@@ -166,7 +166,7 @@ public class BinCacheUtil {
List
<
String
>
emptyBoxList
=
new
ArrayList
<>();
if
(
ignoreWorkBox
)
{
if
(
!
ignoreWorkBox
)
{
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isCancel
()
&&
!
dataLog
.
isFinished
())
{
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/AgvDeviceController.java
查看文件 @
56ea7cc
...
...
@@ -229,6 +229,16 @@ public class AgvDeviceController {
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
queueTask
.
getBarcode
());
//通知WMS
PalletUpdateRequest
palletUpdateRequest
=
new
PalletUpdateRequest
();
palletUpdateRequest
.
setREQUEST_ID
(
System
.
currentTimeMillis
()+
""
);
palletUpdateRequest
.
setPALLET_LIST
(
Lists
.
newArrayList
(
barcode
.
getPalletId
()));
//上架是SWC, 下架是SWCT
palletUpdateRequest
.
setBIN_CODE
(
"SWC"
);
palletUpdateRequest
.
setBIZ_TYPE
(
"M"
);
palletUpdateRequest
.
setPLANT_CODE
(
CommonUtil
.
plantCode
);
LuxsanApi
.
palletUpdate
(
palletUpdateRequest
);
//已完成,加入库存,并且从完成队列中清除
StoragePos
storagePos
=
storagePosManager
.
get
(
queueTask
.
getPosId
());
if
(
barcode
!=
null
)
{
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/CancelRestockController.java
查看文件 @
56ea7cc
...
...
@@ -58,7 +58,7 @@ public class CancelRestockController {
boolean
cancelTask
=
taskService
.
cancelTask
(
dataLog
.
getId
());
log
.
info
(
dataLog
.
getBarcode
()
+
"取消任务,结果为:"
+
cancelTask
+
",odn为:"
+
ticketCode
);
}
else
{
dataLog
.
setLoc
(
TaskLocUtil
.
NG
);
dataLog
.
setLoc
(
TaskLocUtil
.
MW
);
if
(
dataLog
.
isOutFromPos
())
{
taskService
.
updateFinishedTask
(
dataLog
);
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/RestoreReplaceController.java
查看文件 @
56ea7cc
package
com
.
neotel
.
smfcore
.
custom
.
luxsan
.
factory_c
.
wipstor
.
controller
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.storage.service.dao.IStoragePosDao
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.luxsan.api.LuxsanApi
;
import
com.neotel.smfcore.custom.luxsan.api.bean.request.ManualPalletRequest
;
import
com.neotel.smfcore.custom.luxsan.api.bean.request.UnBindPalletRequest
;
import
com.neotel.smfcore.custom.luxsan.factory_c.common.util.CommonUtil
;
import
com.neotel.smfcore.custom.luxsan.factory_c.wipstor.util.TaskLocUtil
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -20,6 +35,8 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@Slf4j
@Api
(
tags
=
"odn还原补箱"
)
@RestController
...
...
@@ -38,43 +55,175 @@ public class RestoreReplaceController {
@Autowired
private
IStoragePosDao
storagePosDao
;
@Autowired
private
TaskService
taskService
;
@Autowired
private
IDataLogManager
dataLogManager
;
@Autowired
private
ILiteOrderItemManager
liteOrderItemManager
;
@Autowired
private
DataCache
dataCache
;
@Autowired
private
IBarcodeManager
barcodeManager
;
@ApiOperation
(
"还原补箱"
)
@RequestMapping
(
"/scanBox"
)
@AnonymousAccess
public
ResultBean
scanBox
(
String
boxStr
)
{
public
ResultBean
scanBox
(
String
boxStr
,
boolean
replaceBox
)
{
if
(
StringUtils
.
isEmpty
(
boxStr
))
{
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"料箱信息"
});
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"料箱信息"
});
}
log
.
info
(
"还原补箱,料箱号为:"
+
boxStr
);
//1.解析条码
Barcode
barcode
=
codeResolve
.
resolveOneValideBarcode
(
"=2x2="
+
boxStr
);
if
(
barcode
==
null
)
{
throw
new
ValidateException
(
"smfcore.error.barcode.invalid"
,
"条码无效"
);
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.error.barcode.invalid"
,
"条码无效"
);
}
//2.找一个料号相同,数量相同的箱子
String
partNumber
=
barcode
.
getPartNumber
();
int
amount
=
barcode
.
getAmount
();
String
palletId
=
barcode
.
getPalletId
();
if
(
StringUtils
.
isEmpty
(
palletId
)){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"栈板id"
});
}
//2.找到当前正在执行的任务
DataLog
dataLog
=
null
;
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
task
:
allTasks
)
{
if
(
task
.
getBarcode
().
equals
(
barcode
.
getBarcode
())){
if
(
task
.
isCheckOutTask
()
&&
!
task
.
isFinished
()
&&
!
task
.
isCancel
()){
dataLog
=
task
;
break
;
}
}
}
if
(
dataLog
==
null
){
DataLog
dbDatalog
=
dataLogManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"barcode"
).
is
(
barcode
.
getBarcode
())).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
)));
if
(
dbDatalog
.
isCheckOutTask
()
&&
dbDatalog
.
isOdn
()){
dataLog
=
dbDatalog
;
}
}
if
(
dataLog
==
null
||
StringUtils
.
isEmpty
(
dataLog
.
getSubSourceId
())){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
boxStr
+
"未找到对应的odn出货任务"
);
}
String
subSourceId
=
dataLog
.
getSubSourceId
();
LiteOrderItem
orderItem
=
liteOrderItemManager
.
get
(
subSourceId
);
if
(
orderItem
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
boxStr
+
"未找到对应的odn出货任务"
);
}
String
ticketCode
=
orderItem
.
getTicketCode
();
//如果不是完成的任务,则改成FINISHED
if
(
dataLog
.
isFinished
()){
dataLog
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
dataLog
.
setOperator
(
"还原补箱"
);
taskService
.
updateFinishedTask
(
dataLog
);
}
Criteria
c
=
Criteria
.
where
(
"barcode.partNumber"
).
is
(
partNumber
)
.
and
(
"id"
).
nin
(
liteOrderCache
.
excludeOutPosIds
())
.
and
(
"enabled"
).
is
(
true
)
.
and
(
"barcode.lockId"
).
is
(
null
)
.
and
(
"barcode.amount"
).
is
(
amount
);
Sort
s
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.amount"
,
"barcode.putInDate"
);
StoragePos
pos
=
storagePosDao
.
findOne
(
new
Query
(
c
).
with
(
s
));
if
(
pos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"未找到对应的料箱"
);
//如果不是补箱作业
StoragePos
pos
=
null
;
if
(!
replaceBox
){
}
else
{
//找一个料号相同,数量相同的箱子
String
partNumber
=
barcode
.
getPartNumber
();
int
amount
=
barcode
.
getAmount
();
Criteria
c
=
Criteria
.
where
(
"barcode.partNumber"
).
is
(
partNumber
)
.
and
(
"id"
).
nin
(
liteOrderCache
.
excludeOutPosIds
())
.
and
(
"enabled"
).
is
(
true
)
.
and
(
"barcode.lockId"
).
is
(
null
)
.
and
(
"barcode.amount"
).
is
(
amount
);
Sort
s
=
Sort
.
by
(
Sort
.
Direction
.
ASC
,
"barcode.amount"
,
"barcode.putInDate"
);
pos
=
storagePosDao
.
findOne
(
new
Query
(
c
).
with
(
s
));
if
(
pos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
boxStr
+
"未找到对应的可补的料箱"
);
}
}
//3.生成出库任务,到流水线
//3.先调用解绑信息
String
unBindPalletResult
=
LuxsanApi
.
unBindPallet
(
new
UnBindPalletRequest
(
CommonUtil
.
plantCode
,
ticketCode
,
""
,
palletId
));
if
(
StringUtils
.
isNotEmpty
(
unBindPalletResult
)){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
boxStr
+
"解绑失败,原因为:"
+
unBindPalletResult
);
}
if
(
pos
!=
null
){
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
taskService
.
addPutInTaskToExecute
(
storage
,
pos
.
getBarcode
(),
pos
,
TaskLocUtil
.
MW
);
}
return
ResultBean
.
newOkResult
(
""
);
}
@ApiOperation
(
"手动绑定栈板信息"
)
@RequestMapping
(
"/manualBindPallet"
)
@AnonymousAccess
public
ResultBean
manualBindPallet
(
String
oldPalletId
,
String
newPalletId
)
{
if
(
StringUtils
.
isEmpty
(
oldPalletId
))
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"原栈板Id"
});
}
if
(
StringUtils
.
isEmpty
(
newPalletId
))
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"新栈板Id"
});
}
Barcode
oldBarcode
=
barcodeManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"palletId"
).
is
(
oldPalletId
)));
if
(
oldBarcode
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"原栈板Id:"
+
oldPalletId
+
",对应的料箱信息不存在"
);
}
Barcode
newBarcode
=
barcodeManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"palletId"
).
is
(
newPalletId
)));
if
(
newBarcode
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"新栈板Id:"
+
oldPalletId
+
",对应的料箱信息不存在"
);
}
//获取原栈板id的任务
DataLog
dataLog
=
null
;
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
task
:
allTasks
)
{
if
(
task
.
getBarcode
().
equals
(
oldBarcode
.
getBarcode
())){
if
(
task
.
isCheckOutTask
()
&&
!
task
.
isFinished
()
&&
!
task
.
isCancel
()){
dataLog
=
task
;
break
;
}
}
}
if
(
dataLog
==
null
){
DataLog
dbDatalog
=
dataLogManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"barcode"
).
is
(
oldBarcode
.
getBarcode
())).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createDate"
)));
if
(
dbDatalog
.
isCheckOutTask
()
&&
dbDatalog
.
isOdn
()){
dataLog
=
dbDatalog
;
}
}
if
(
dataLog
==
null
||
StringUtils
.
isEmpty
(
dataLog
.
getSubSourceId
())){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"原栈板Id"
+
oldPalletId
+
"未找到对应的odn出货任务"
);
}
String
subSourceId
=
dataLog
.
getSubSourceId
();
LiteOrderItem
orderItem
=
liteOrderItemManager
.
get
(
subSourceId
);
if
(
orderItem
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"原栈板Id"
+
oldPalletId
+
"未找到对应的odn出货任务"
);
}
String
ticketCode
=
orderItem
.
getTicketCode
();
String
ticketItem
=
orderItem
.
getTicketItem
();
String
result
=
LuxsanApi
.
manualPallet
(
new
ManualPalletRequest
(
CommonUtil
.
plantCode
,
ticketCode
,
ticketItem
,
oldPalletId
,
newPalletId
));
if
(
StringUtils
.
isNotEmpty
(
result
))
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"原PalletId为:"
+
oldPalletId
+
",新PalletIdId为:"
+
newPalletId
+
",绑定失败,原因为:"
+
result
);
}
return
ResultBean
.
newOkResult
(
""
);
}
}
src/main/resources/config/application-21088prod.yml
查看文件 @
56ea7cc
...
...
@@ -103,7 +103,7 @@ api:
bindPalletBulk
:
#取消绑定栈板
unBindPallet
:
unBindPallet
:
http://10.68.30.22:8082/api/mlb/UnBindPallet
#拉取转库单据
fetchMoveTicket
:
http://10.68.30.22:8082/api/wcs/FetchMoveTicket
...
...
@@ -173,3 +173,6 @@ api:
#GB单据转库过账
ticketPickPost
:
http://10.68.30.22:8082/api/mlb/TicketPickPost
#自动仓手动绑定栈板
manualPallet
:
http://10.68.30.22:8082/api/mlb/manualPallet
src/main/resources/config/application-21088test.yml
查看文件 @
56ea7cc
...
...
@@ -103,7 +103,7 @@ api:
bindPalletBulk
:
#取消绑定栈板
unBindPallet
:
unBindPallet
:
http://10.42.220.171:8082/api/mlb/UnBindPallet
#拉取转库单据
fetchMoveTicket
:
http://10.42.220.171:8082/api/wcs/FetchMoveTicket
...
...
@@ -173,3 +173,6 @@ api:
#GB单据转库过账
ticketPickPost
:
http://10.42.220.171:8082/api/mlb/TicketPickPost
#自动仓手动绑定栈板
manualPallet
:
http://10.42.220.171:8082/api/mlb/manualPallet
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论