Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0a0627a0
由
zshaohui
编写于
2024-12-05 11:53:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.差异料功能提交
2.工单出库优先挑任务少的仓
1 个父辈
dc37a63d
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
107 行增加
和
14 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/DifferenceReelController.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
0a0627a
...
...
@@ -495,7 +495,12 @@ public class LiteOrderCache {
if
(
StringUtils
.
isNotBlank
(
export
)){
exportStr
=
export
;
}
else
{
exportStr
=
StorageExportUtil
.
getExportByOrderNo
(
cacheOrder
.
getOrderNo
(),
true
,
cacheOrder
.
isMaiZheng
());
if
(!
cacheOrder
.
isDifferenceReq
())
{
exportStr
=
StorageExportUtil
.
getExportByOrderNo
(
cacheOrder
.
getOrderNo
(),
true
,
cacheOrder
.
isMaiZheng
());
}
else
{
log
.
info
(
cacheOrder
.
getOrderNo
()+
"为ng料,出料口为ng"
);
exportStr
=
"ng"
;
}
}
if
(
StringUtils
.
isBlank
(
exportStr
))
{
//log.info(cacheOrder.getOrderNo() + "没有空闲的出料口");
...
...
@@ -533,6 +538,26 @@ public class LiteOrderCache {
//List<LiteOrderItem> orderItems = liteOrderItemManager.findOrderItems(cacheOrder.getId());
for
(
LiteOrderItem
orderItem
:
cacheOrder
.
getOrderItems
())
{
List
<
String
>
fewTasksStorageIdList
=
new
ArrayList
<>();
//任务少的id
for
(
String
availableStorageId
:
availableStorageIds
)
{
Storage
storage
=
dataCache
.
getStorageById
(
availableStorageId
);
if
(!
storage
.
isVirtual
())
{
int
taskCount
=
0
;
for
(
DataLog
task
:
taskService
.
getAllTasks
())
{
if
(
task
.
isCheckOutTask
()
&&
availableStorageId
.
equals
(
task
.
getStorageId
()))
{
if
(!
task
.
isFinished
()
&&
!
task
.
isCancel
())
{
taskCount
++;
}
}
}
log
.
info
(
"[{}]的任务数量为[{}],ID为[{}]"
,
storage
.
getName
(),
taskCount
,
availableStorageId
);
if
(
taskCount
<
10
)
{
fewTasksStorageIdList
.
add
(
availableStorageId
);
}
}
}
Collection
<
String
>
excludePosIds
=
excludeOutPosIds
();
//如果已出数量大于已出盘数,则跳过
...
...
@@ -575,7 +600,15 @@ public class LiteOrderCache {
//PN
do
{
for
(
String
pn
:
partNumberSpl
)
{
pos
=
storagePosManager
.
findPartNumberInStorages
(
storageIdList
,
pn
,
excludePosIds
,
checkoutType
,
orderItem
.
getBrand
());
//先从数量少的,去挑
if
(
fewTasksStorageIdList
!=
null
&&
!
fewTasksStorageIdList
.
isEmpty
())
{
log
.
info
(
"先从任务数量少的料仓,去挑,partNumber为[{}],工单号为[{}]"
,
pn
,
orderNo
);
pos
=
storagePosManager
.
findPartNumberInStorages
(
fewTasksStorageIdList
,
pn
,
excludePosIds
,
checkoutType
,
orderItem
.
getBrand
());
}
if
(
pos
==
null
)
{
log
.
info
(
"从任务数量少的料仓未找到出库的物料,从全部料仓中去挑的料仓,去挑,partNumber为[{}],工单号为[{}]"
,
pn
,
orderNo
);
pos
=
storagePosManager
.
findPartNumberInStorages
(
storageIdList
,
pn
,
excludePosIds
,
checkoutType
,
orderItem
.
getBrand
());
}
if
(
pos
!=
null
){
break
;
}
...
...
@@ -647,6 +680,7 @@ public class LiteOrderCache {
task
.
setModel
(
orderItem
.
getModel
());
task
.
setMo
(
orderItem
.
getMo
());
task
.
setMaiZhengOrder
(
cacheOrder
.
isMaiZheng
());
task
.
setDifferenceReq
(
cacheOrder
.
isDifferenceReq
());
//先调用tower发料
String
result
=
lizhenApi
.
towerCheck
(
task
);
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
0a0627a
...
...
@@ -172,7 +172,7 @@ public class LiteOrder extends BasePo implements Serializable {
private
String
count
;
private
String
startTime
;
private
boolean
differenceReq
=
false
;
public
void
setClosed
(
boolean
value
){
this
.
closed
=
value
;
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
0a0627a
...
...
@@ -385,6 +385,10 @@ public class DataLog extends BasePo implements Serializable {
private
boolean
maiZhengOrder
=
false
;
private
boolean
differenceReq
=
false
;
public
String
getBarcode
()
{
if
(
barcode
==
null
){
return
""
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
查看文件 @
0a0627a
...
...
@@ -264,7 +264,7 @@ public class InnerBoxRestController {
//String export = StorageExportUtil.getExportByOrderNo(sourceName,false);
//判断是否禁用了
String
exportStr
=
dataLog
.
getExport
();
if
(
StringUtils
.
isNotBlank
(
exportStr
))
{
if
(
StringUtils
.
isNotBlank
(
exportStr
)
&&
!
dataLog
.
isDifferenceReq
()
)
{
StorageExport
export
=
StorageExportUtil
.
getExport
(
exportStr
);
if
(
export
.
isDisable
())
{
log
.
info
(
exportStr
+
"出料口被禁用"
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/DifferenceReelController.java
查看文件 @
0a0627a
...
...
@@ -2,10 +2,12 @@ package com.neotel.smfcore.custom.lizhen.wcs;
import
com.alibaba.fastjson.JSONObject
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.custom.lizhen.wcs.bean.DifferentMaterial
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -32,18 +34,24 @@ public class DifferenceReelController {
@ApiOperation
(
"工单差异料上传"
)
@RequestMapping
(
"/api/Mes/differenceReel"
)
@AnonymousAccess
public
ResultBean
differenceReel
(
@RequestBody
List
<
Map
<
String
,
String
>>
param
List
)
{
log
.
info
(
"收到mes的差异料数据为:"
+
JSONObject
.
toJSONString
(
param
List
));
public
synchronized
String
differenceReel
(
@RequestBody
List
<
DifferentMaterial
>
differentMaterial
List
)
{
log
.
info
(
"收到mes的差异料数据为:"
+
JSONObject
.
toJSONString
(
differentMaterial
List
));
List
<
LiteOrderItem
>
itemList
=
new
ArrayList
<>();
for
(
Map
<
String
,
String
>
paramMap
:
paramList
)
{
String
mo
=
paramMap
.
get
(
"mo"
);
String
mc
=
paramMap
.
get
(
"mc"
);
String
ipn
=
paramMap
.
get
(
"ipn"
);
String
zone
=
paramMap
.
get
(
"zone"
);
String
gidLineSide
=
paramMap
.
get
(
"gidLineSide"
);
for
(
DifferentMaterial
differentMaterial
:
differentMaterialList
)
{
String
mo
=
differentMaterial
.
getMo
();
String
mc
=
differentMaterial
.
getMc
();
String
ipn
=
differentMaterial
.
getIpn
();
if
(
StringUtils
.
isEmpty
(
ipn
)){
continue
;
}
String
zone
=
differentMaterial
.
getZone
();
String
gidLineSide
=
differentMaterial
.
getGidLineSide
();
String
[]
gidLineSideS
=
gidLineSide
.
split
(
"_"
);
if
(
gidLineSideS
.
length
<
3
){
return
gidLineSide
+
"格式不正确"
;
}
String
line
=
gidLineSideS
[
0
];
String
side
=
gidLineSideS
[
2
];
...
...
@@ -57,7 +65,6 @@ public class DifferenceReelController {
item
.
setSide
(
side
);
item
.
setNeedNum
(
1
);
item
.
setNeedReelCount
(
1
);
//item.setDifferenceReq(true);
itemList
.
add
(
item
);
}
...
...
@@ -70,12 +77,13 @@ public class DifferenceReelController {
liteOrder
.
setLine
(
line
);
liteOrder
.
setTotalTaskReelCount
(
item
.
size
());
liteOrder
.
setOrderItems
(
item
);
liteOrder
.
setDifferenceReq
(
true
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
}
}
return
ResultBean
.
newOkResult
(
""
)
;
return
""
;
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
0 → 100644
查看文件 @
0a0627a
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
wcs
.
bean
;
import
lombok.Data
;
@Data
public
class
DifferentMaterial
{
/**
* wo;//工单
* mc;//机台
* ipn;//物料
* zone;//站位
* gidLineSide;//线_Line_面
*/
private
String
mo
;
private
String
mc
;
private
String
ipn
;
private
String
zone
;
private
String
gidLineSide
;
/*
[
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "377S00070",
"zone": "1-07-L",
"gidLineSide": "A05-5FRF-01_1A_B"
},
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "117S00069$YA0A01B5",
"zone": "1-08-L",
"gidLineSide": "A05-5FRF-01_1A_B"
},
{
"wo": "030000248583",
"mc": "NPM-2",
"ipn": "N/A",
"zone": "1-10",
"gidLineSide": "A05-5FRF-01_1B_T"
}
]
*/
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论