Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit cbfa410d
由
sunke
编写于
2022-08-19 10:36:22 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
线边仓间入库类型修正
出入库记录只记录补料单号
1 个父辈
7d58d994
全部展开
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
57 行增加
和
23 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/hik/rest/SingleInController.java
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/outList/rest/OutListController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
src/main/java/com/neotel/smfcore/core/storage/service/po/StoragePos.java
src/main/java/com/neotel/smfcore/hikvision/bean/InOutApiInfo.java
src/main/java/com/neotel/smfcore/panacim/PanaApiController.java
src/main/java/com/neotel/smfcore/security/rest/bean/query/RoleQueryCriteria.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
cbfa410
...
...
@@ -27,6 +27,8 @@ import com.neotel.smfcore.core.hik.enums.IN_OUT_TYPE;
import
com.neotel.smfcore.core.message.util.DeviceMessageUtil
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
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.core.storage.enums.DeviceType
;
...
...
@@ -95,6 +97,12 @@ public class BaseDeviceHandler implements IDeviceHandler {
@Autowired
protected
LiteOrderCache
liteOrderCache
;
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
ILiteOrderItemManager
liteOrderItemManager
;
/**
* CID的服务器消息(key 为 cid)
*/
...
...
@@ -663,13 +671,15 @@ public class BaseDeviceHandler implements IDeviceHandler {
//判断是否是工单出库
if
(
ObjectUtil
.
isNotEmpty
(
task
.
getSourceId
())&&
ObjectUtil
.
isNotEmpty
(
task
.
getSourceName
())&&
task
.
isOrderTask
()){
LiteOrder
liteOrder
=
liteOrderCache
.
findOrderByNo
(
task
.
getSourceName
());
LiteOrderItem
item
=
liteOrder
.
getItemById
(
task
.
getSubSourceId
());
log
.
info
(
"工单["
+
task
.
getSourceId
()+
"]物料["
+
task
.
getBarcode
()+
"]ItemId="
+
task
.
getSubSourceId
()
+
"出库完成"
);
LiteOrder
liteOrder
=
liteOrderManager
.
get
(
task
.
getSourceId
());
//LiteOrderItem item= liteOrderItemManager.get(task.getSubSourceId());
//liteOrder.getItemById(task.getSubSourceId());
String
station
=
task
.
getSubSourceInfo
();
int
interceptFlag
=
task
.
isNeedSplitting
()?
1
:
0
;
int
interceptQty
=
task
.
getNeedQty
();
//工单出库出库完成,7.3排程发料过账接口
ScheduleTaskInfo
taskInfo
=
new
ScheduleTaskInfo
(
liteOrder
.
getJobNo
(),
liteOrder
.
getReplenishmentNo
(),
item
.
getStation
()
,
liteOrder
.
getBaseCode
(),
liteOrder
.
getLgort
(),
task
.
getNum
(),
interceptFlag
,
interceptQty
,
task
.
getBarcode
());
ScheduleTaskInfo
taskInfo
=
new
ScheduleTaskInfo
(
liteOrder
.
getJobNo
(),
liteOrder
.
getReplenishmentNo
(),
station
,
liteOrder
.
getBaseCode
(),
liteOrder
.
getLgort
(),
task
.
getNum
(),
interceptFlag
,
interceptQty
,
task
.
getBarcode
());
boolean
result
=
HikApi
.
scheduleTaskApi
(
task
.
getOperator
(),
taskInfo
);
}
else
{
//出库完成,调用 ,7.6出库下架过账接口
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
cbfa410
...
...
@@ -112,7 +112,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
taskService
.
updateQueueTask
(
queueTask
);
if
(
Strings
.
isNotBlank
(
queueTask
.
getPosName
())){
statusBean
.
addData
(
"open"
,
queueTask
.
getPosName
()
+
"="
+
color
.
name
());
log
.
info
(
"库位["
+
queueTask
.
getPosName
()
+
"]["
+
queueTask
.
getBarcode
()+
"]+亮灯:"
+
color
.
name
());
log
.
info
(
"
发送到客户端
库位["
+
queueTask
.
getPosName
()
+
"]["
+
queueTask
.
getBarcode
()+
"]+亮灯:"
+
color
.
name
());
}
}
}
...
...
@@ -151,7 +151,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
List
<
String
>
ngToOk
=
new
ArrayList
<>();
//数据库有信息,实际无料
if
(
noReelPosErrorList
.
length
>
0
){
log
.
info
(
"开始检测noReelPosErrorList"
);
//
log.info("开始检测noReelPosErrorList");
Query
query
=
new
Query
(
Criteria
.
where
(
"posName"
).
in
(
noReelPosErrorList
));
List
<
StoragePos
>
posList
=
storagePosManager
.
findByQuery
(
query
);
for
(
StoragePos
pos:
posList
)
{
...
...
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
cbfa410
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/hik/rest/SingleInController.java
查看文件 @
cbfa410
...
...
@@ -248,13 +248,14 @@ public class SingleInController {
if
(
inList
!=
null
){
if
(
inList
.
getDocType
()
==
4
){
//线边仓间入库
businessType
=
"0
1
"
;
businessType
=
"0
2
"
;
businessNo
=
docName
;
}
}
}
if
(
inType
.
equals
(
4
)){
//退料入库
businessType
=
"01"
;
}
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
cbfa410
...
...
@@ -104,6 +104,20 @@ public class LiteOrderCache implements ITaskListener {
liteOrderMap
.
put
(
order
.
getOrderNo
(),
order
);
}
public
LiteOrder
findOrderById
(
String
orderId
){
for
(
LiteOrder
order
:
liteOrderMap
.
values
())
{
if
(
order
.
getId
().
equals
(
orderId
)){
return
order
;
}
}
LiteOrder
order
=
liteOrderManager
.
get
(
orderId
);
if
(
order
!=
null
){
addOrderToMap
(
order
);
return
order
;
}
return
null
;
}
public
LiteOrder
findOrderByNo
(
String
orderNo
){
if
(
liteOrderMap
.
containsKey
(
orderNo
)){
...
...
@@ -184,18 +198,19 @@ public class LiteOrderCache implements ITaskListener {
private
synchronized
void
finishedOrderTask
(
DataLog
task
)
throws
ValidateException
{
//更新工单状态
String
orderNo
=
task
.
getSourceName
();
if
(!
Strings
.
isNullOrEmpty
(
orderNo
))
{
LiteOrder
order
=
liteOrderMap
.
get
(
orderNo
);
String
sourceName
=
task
.
getSourceName
();
if
(!
Strings
.
isNullOrEmpty
(
task
.
getSourceId
()
))
{
LiteOrder
order
=
findOrderById
(
task
.
getSourceId
()
);
if
(
order
==
null
)
{
log
.
info
(
"缓存中未找到
["
+
orderNo
+
"],从数据库中重新加载"
);
order
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
log
.
info
(
"缓存中未找到
"
+
sourceName
+
"["
+
task
.
getSourceId
()
+
"],从数据库中重新加载"
);
order
=
liteOrderManager
.
get
(
task
.
getSourceId
()
);
if
(
order
!=
null
)
{
List
<
LiteOrderItem
>
items
=
liteOrderItemManager
.
findOrderItems
(
orderNo
);
List
<
LiteOrderItem
>
items
=
liteOrderItemManager
.
findOrderItems
(
sourceName
);
order
.
setOrderItems
(
items
);
}
}
if
(
order
!=
null
)
{
String
orderNo
=
order
.
getOrderNo
();
//任务是取消的,需要将总待出库数量-1
if
(
task
.
isCancel
())
{
order
.
setTaskReelCount
(
order
.
getTaskReelCount
()
-
1
);
...
...
@@ -239,9 +254,9 @@ public class LiteOrderCache implements ITaskListener {
}
}
liteOrderManager
.
save
(
order
);
liteOrderMap
.
put
(
order
No
,
order
);
liteOrderMap
.
put
(
order
.
getOrderNo
()
,
order
);
}
else
{
log
.
error
(
"完成任务时,未找到工单
["
+
orderNo
+
"]信息"
);
log
.
error
(
"完成任务时,未找到工单
"
+
sourceName
+
"["
+
task
.
getSourceId
()
+
"]信息"
);
}
}
...
...
@@ -565,7 +580,6 @@ public class LiteOrderCache implements ITaskListener {
DataLog
task
=
taskService
.
newTask
(
pos
)
;
task
.
setSourceId
(
cacheOrder
.
getId
());
task
.
setSourceName
(
cacheOrder
.
getOrderNo
());
task
.
setSubSourceId
(
orderItem
.
getId
());
task
.
setSubSourceInfo
(
orderItem
.
getStation
());
task
.
setType
(
OP
.
CHECKOUT
);
...
...
@@ -574,7 +588,9 @@ public class LiteOrderCache implements ITaskListener {
task
.
setOperator
(
userName
);
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_ORDER
);
//工单出库类型为10
task
.
setSourceName
(
cacheOrder
.
getJobNo
());
if
(
cacheOrder
.
isRepleOrder
()){
//task.setSourceName(cacheOrder.getReplenishmentNo());
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_REPLE
);
//补料出库类型为11
}
if
(
jieliaoPosMap
.
containsKey
(
pos
.
getPosName
())){
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
cbfa410
...
...
@@ -243,6 +243,11 @@ public class LiteOrder extends BasePo implements Serializable {
setClosed
(
true
);
}
}
if
(
isRepleOrder
()){
//产线补料,直接关闭
setClosed
(
true
);
}
setTaskFinishedTime
(
System
.
currentTimeMillis
());
}
...
...
src/main/java/com/neotel/smfcore/core/outList/rest/OutListController.java
查看文件 @
cbfa410
...
...
@@ -30,6 +30,7 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
...
...
@@ -215,6 +216,10 @@ public class OutListController {
Integer
type
=
Convert
.
toInt
(
params
.
get
(
"docType"
));
//先从已存在的出库单查询是否存在
if
(
Strings
.
isBlank
(
name
)){
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.empty"
,
"出库单号不能为空"
);
}
OutList
outList
=
outListCache
.
getOutList
(
name
);
if
(
outList
==
null
)
{
//从接口获取出库单
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StorageController.java
查看文件 @
cbfa410
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/storage/service/po/StoragePos.java
查看文件 @
cbfa410
...
...
@@ -81,6 +81,7 @@ public class StoragePos extends BasePo implements Serializable {
*/
private
List
<
String
>
limitPnList
;
//海康项目小于0时用于锁定料架上的库位,不进行工单挑料
//进料优先级,数字越大优先级越高,例:1-1的优先级为100 仓1-2的优先级200,那么入仓时就会优先进入1-2仓
private
double
priority
=
0
f
;
...
...
src/main/java/com/neotel/smfcore/hikvision/bean/InOutApiInfo.java
查看文件 @
cbfa410
package
com
.
neotel
.
smfcore
.
hikvision
.
bean
;
import
com.sun.corba.se.impl.resolver.SplitLocalResolverImpl
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
...
...
src/main/java/com/neotel/smfcore/panacim/PanaApiController.java
查看文件 @
cbfa410
...
...
@@ -424,7 +424,7 @@ public class PanaApiController implements IOpAuthApi, ITaskListener{
}
}
}
else
{
log
.
info
(
"没有配置PanaCIM条码检测接口,查找setConfiguration注册的IP 及端口"
);
//
log.info("没有配置PanaCIM条码检测接口,查找setConfiguration注册的IP 及端口");
return
null
;
}
}
catch
(
Exception
e
)
{
...
...
@@ -477,7 +477,7 @@ public class PanaApiController implements IOpAuthApi, ITaskListener{
String
result
=
HttpHelper
.
postJson
(
inNotifyApi
,
params
);
log
.
info
(
"Response Of checkInNotification From PanaCIM:"
+
result
);
}
else
{
log
.
info
(
"没有配置PanaCIM接口,无需通知"
);
//
log.info("没有配置PanaCIM接口,无需通知");
}
}
catch
(
Exception
e
)
{
...
...
@@ -511,7 +511,7 @@ public class PanaApiController implements IOpAuthApi, ITaskListener{
log
.
info
(
"Response Of deliverNotification From PanaCIM:"
+
result
);
}
else
{
log
.
info
(
"没有配置PanaCIM接口,无需通知"
);
//
log.info("没有配置PanaCIM接口,无需通知");
}
}
catch
(
Exception
e
)
{
log
.
error
(
"出库通知PanaCIM["
+
outNotifyApi
+
"]料盘"
+
task
.
getBarcode
()+
" 出错"
,
e
);
...
...
src/main/java/com/neotel/smfcore/security/rest/bean/query/RoleQueryCriteria.java
查看文件 @
cbfa410
...
...
@@ -4,12 +4,9 @@ import com.neotel.smfcore.common.annotation.QueryCondition;
import
com.neotel.smfcore.common.bean.BetweenData
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Date
;
import
java.util.List
;
@ApiModel
public
class
RoleQueryCriteria
implements
Serializable
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论