Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d9d0ae72
由
zshaohui
编写于
2023-08-11 12:02:18 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
海康功能对接提交
1 个父辈
bc5b7568
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
435 行增加
和
42 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/common/utils/HttpHelper.java
src/main/java/com/neotel/smfcore/core/barcode/rest/ComponentController.java
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
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/handler/impl/SpBoxHandler.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStorageManager.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StorageManagerImpl.java
src/main/java/com/neotel/smfcore/core/system/service/manager/IDataLogManager.java
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/hikvision_mobile/HikVisionApi.java
src/main/java/com/neotel/smfcore/hikvision_mobile/HikVisionController.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/CancelTaskInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/LightUpInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PosChangeInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PutOffShelvesInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PutOnShelvesInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/StockInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/StockResponseInfo.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/enums/ResponseCode.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/request/ApiRequest.java
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/response/ApiResponse.java
src/main/java/com/neotel/smfcore/panacim/PanaApiController.java
src/main/resources/config/application-prod.yml
src/main/resources/config/application.yml
src/main/resources/messages.properties
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
d9d0ae7
...
...
@@ -45,10 +45,10 @@ public class DataInitManager {
MainTimer
mainTimer
;
//@Value("${menu.show}")
private
String
[]
menuShowList
=
new
String
[]{
"
commonIn"
,
"returnIn"
,
"cutIn
"
};
private
String
[]
menuShowList
=
new
String
[]{
""
};
//@Value("${menu.hide}")
private
String
[]
menuHideList
=
new
String
[]{
"
singleDiskWarehousing
"
};
private
String
[]
menuHideList
=
new
String
[]{
"
mslOut"
,
"inList"
,
"dumpWarehousing"
,
"commonIn"
,
"returnIn"
,
"cutIn"
,
"sluggishMaterials"
,
"safetyInventory"
,
"outList"
,
"orderSet"
,
"reelOut"
,
"orderSheet"
,
"orderShortageOut"
,
"orderShortageSheet"
,
"productionLineReple"
,
"productionLineOut"
,
"interfaceException
"
};
@Autowired
PermissionInitUtil
annotationUtil
;
...
...
src/main/java/com/neotel/smfcore/common/utils/HttpHelper.java
查看文件 @
d9d0ae7
...
...
@@ -59,4 +59,33 @@ public class HttpHelper {
}
public
static
String
postJson
(
String
url
,
String
paramStr
,
Map
<
String
,
String
>
headerMap
)
throws
ApiException
{
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
();
HttpPost
httpPost
=
new
HttpPost
(
url
);
httpPost
.
addHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
for
(
Entry
<
String
,
String
>
entry
:
headerMap
.
entrySet
())
{
httpPost
.
addHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
// 设置请求参数
ObjectMapper
mapper
=
new
ObjectMapper
();
try
{
httpPost
.
setEntity
(
new
StringEntity
(
paramStr
));
}
catch
(
UnsupportedEncodingException
e
)
{
throw
new
ApiException
(
"Request params to ["
+
url
+
"] failed:"
+
e
.
getMessage
());
}
try
{
CloseableHttpResponse
response
=
httpClient
.
execute
(
httpPost
);
//System.out.println(response.getStatusLine().getStatusCode() + "\n");
HttpEntity
entity
=
response
.
getEntity
();
String
responseContent
=
EntityUtils
.
toString
(
entity
,
CONTENT_CHARSET
);
response
.
close
();
httpClient
.
close
();
return
responseContent
;
}
catch
(
Exception
e
)
{
throw
new
ApiException
(
"Request to ["
+
url
+
"] failed:"
+
e
.
getMessage
());
}
}
}
src/main/java/com/neotel/smfcore/core/barcode/rest/ComponentController.java
查看文件 @
d9d0ae7
...
...
@@ -21,6 +21,7 @@ import com.neotel.smfcore.core.barcode.service.po.Barcode;
import
com.neotel.smfcore.core.barcode.service.po.Component
;
import
com.neotel.smfcore.core.barcode.utils.QrcodeUtils
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.bean.FileProperties
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -250,6 +251,7 @@ public class ComponentController {
}
@ApiOperation
(
"下载元器件模板"
)
@GetMapping
(
value
=
"/downloadModel"
)
@AnonymousAccess
@PreAuthorize
(
"@el.check('component:list')"
)
public
void
downloadModel
(
HttpServletResponse
response
)
throws
IOException
{
downloadComponentModel
(
response
);
...
...
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
查看文件 @
d9d0ae7
...
...
@@ -53,7 +53,7 @@ public class Barcode extends BasePo implements Serializable {
/**
* 锡膏状态
*/
private
int
solderStatus
=
SOLDER_STATUS
.
NONE
;
//
private int solderStatus = SOLDER_STATUS.NONE;
/**
* 锡膏指定时间出库
...
...
@@ -382,7 +382,7 @@ public class Barcode extends BasePo implements Serializable {
}
}
public
int
getSolderStatus
()
{
/*
public int getSolderStatus() {
if (solderStatus == SOLDER_STATUS.REWARMING) {
//如果状态是回温中,且回温时间已经大于warmTime,修改状态为待搅拌
long now = System.currentTimeMillis();
...
...
@@ -391,7 +391,7 @@ public class Barcode extends BasePo implements Serializable {
}
}
return solderStatus;
}
}
*/
public
String
getNeedOutDateStr
()
{
if
(
needOutDate
==
null
)
{
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
d9d0ae7
...
...
@@ -632,7 +632,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
barcode
.
setInOpor
(
task
.
getOperator
());
barcode
.
setCheckOutDate
(
null
,
""
);
barcode
.
setPosName
(
task
.
getPosName
());
if
(
barcode
.
isSolder
())
{
/*
if (barcode.isSolder()) {
if (storagePos.isWarmPos()) {
//回温仓位
barcode.setSolderStatus(SOLDER_STATUS.RETREAT_STORAGE);
...
...
@@ -640,7 +640,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
barcode.setSolderStatus(SOLDER_STATUS.UNDER_REFRIGERATION);
}
barcode.setNeedOutDate(null);
}
}
*/
barcodeManager
.
save
(
barcode
);
}
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
d9d0ae7
...
...
@@ -2,12 +2,9 @@ package com.neotel.smfcore.core.device.handler.impl;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.api.CodeValidateParam
;
import
com.neotel.smfcore.core.device.api.IOpAuthApi
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.inList.service.po.InList
;
import
com.neotel.smfcore.core.inList.service.po.InListItem
;
...
...
@@ -16,32 +13,25 @@ import com.neotel.smfcore.core.order.enums.ORDER_COLOR;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.bean.OrderSetting
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.websocket.MsgType
;
import
com.neotel.smfcore.core.system.websocket.SocketMsg
;
import
com.neotel.smfcore.core.system.websocket.WebSocketServer
;
import
com.neotel.smfcore.hikvision.HikApi
;
import
com.neotel.smfcore.hikvision.bean.InOutApiInfo
;
import
com.neotel.smfcore.hikvision.bean.TransferOrderInInfo
;
import
com.neotel.smfcore.
security.TokenProvider
;
import
com.neotel.smfcore.
hikvision_mobile.HikVisionApi
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.service.manager.IUserManager
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.locks.ReentrantLock
;
@Api
(
tags
=
"SHELF: NLP感应料架"
)
@RestController
...
...
@@ -54,6 +44,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
@Autowired
private
IUserManager
userManager
;
@Autowired
HikVisionApi
hikVisionApi
;
/**
* 库位盘点料架CID列表
*/
...
...
@@ -204,6 +197,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
}
hasReelPosList
=
newList
.
toArray
(
new
String
[
newList
.
size
()]);
hikVisionApi
.
posChange
(
storage
,
hasReelPosList
,
0
+
""
);
//入库的库位列表
if
(
hasReelPosList
.
length
>
1
){
...
...
@@ -242,6 +236,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
String
[]
noReelPosList
=
request
.
getParameterValues
(
"noReelPosList"
);
if
(
noReelPosList
!=
null
){
hikVisionApi
.
posChange
(
storage
,
noReelPosList
,
1
+
""
);
//出库
for
(
String
noReelPosName
:
noReelPosList
)
{
log
.
info
(
cid
+
"处理无料库位:["
+
noReelPosName
+
"]"
);
...
...
@@ -304,9 +299,12 @@ public class NLPShelfHandler extends BaseDeviceHandler{
try
{
//入库完成,发送入库完成请求
log
.
info
(
queueTask
.
getBarcode
()
+
"入库完成,发送入库完成请求"
);
super
.
finishedPutIn
(
storage
.
getCid
(),
pos
.
getPosName
());
String
msg
=
queueTask
.
getBarcode
()
+
"入库到"
+
pos
.
getPosName
()
+
"成功"
;
log
.
info
(
msg
);
boolean
accept
=
hikVisionApi
.
acceptTaskStatus
(
queueTask
);
if
(
accept
){
super
.
finishedPutIn
(
storage
.
getCid
(),
pos
.
getPosName
());
String
msg
=
queueTask
.
getBarcode
()
+
"入库到"
+
pos
.
getPosName
()
+
"成功"
;
log
.
info
(
msg
);
}
inResult
=
true
;
try
{
//判断是否是入库单入库
...
...
@@ -318,13 +316,13 @@ public class NLPShelfHandler extends BaseDeviceHandler{
InList
inList
=
inListCache
.
getInList
(
queueTask
.
getSourceName
());
//入库完成,调用 7.2转储单入库过账接口
TransferOrderInInfo
inInfo
=
new
TransferOrderInInfo
(
inList
.
getName
(),
inList
.
getDocType
(),
queueTask
.
getBarcode
(),
item
.
getBaseCode
(),
item
.
getInLgort
(),
queueTask
.
getNum
());
HikApi
.
transferOrderInApi
(
queueTask
.
getOperator
(),
inInfo
);
//
HikApi.transferOrderInApi(queueTask.getOperator(), inInfo);
}
}
else
{
log
.
info
(
"调用 7.5入库上架过账接口"
);
//入库完成,调用 7.5入库上架过账接口
HikApi
.
putInApi
(
queueTask
.
getOperator
(),
InOutApiInfo
.
inputInfo
(
queueTask
.
getInType
(),
queueTask
.
getBarcode
(),
queueTask
.
getNum
()));
//
HikApi.putInApi(queueTask.getOperator(), InOutApiInfo.inputInfo(queueTask.getInType(), queueTask.getBarcode(), queueTask.getNum()));
}
}
catch
(
Exception
e
)
{
...
...
@@ -377,10 +375,13 @@ public class NLPShelfHandler extends BaseDeviceHandler{
//出库完成
try
{
outResult
=
noReelPosName
;
super
.
finishedOutPos
(
storage
.
getCid
(),
noReelPosName
);
String
msg
=
queueTask
.
getBarcode
()+
"从"
+
noReelPosName
+
"出库成功"
;
log
.
info
(
msg
);
break
;
boolean
accept
=
hikVisionApi
.
acceptTaskStatus
(
queueTask
);
if
(
accept
){
super
.
finishedOutPos
(
storage
.
getCid
(),
noReelPosName
);
String
msg
=
queueTask
.
getBarcode
()+
"从"
+
noReelPosName
+
"出库成功"
;
log
.
info
(
msg
);
break
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"库位:"
+
noReelPosName
+
"出库出错"
,
e
);
break
;
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/SpBoxHandler.java
查看文件 @
d9d0ae7
...
...
@@ -383,7 +383,7 @@ public class SpBoxHandler extends BaseDeviceHandler {
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
puttingTask
.
getBarcode
());
barcode
.
setPosName
(
puttingTask
.
getPosName
());
barcode
.
setStartWarmTime
(
System
.
currentTimeMillis
());
barcode
.
setSolderStatus
(
SOLDER_STATUS
.
REWARMING
);
//
barcode.setSolderStatus(SOLDER_STATUS.REWARMING);
barcodeManager
.
save
(
barcode
);
/**
* 仓位状态
...
...
@@ -438,13 +438,13 @@ public class SpBoxHandler extends BaseDeviceHandler {
return
;
}
Barcode
barcode
=
storagePos
.
getBarcode
();
if
(
barcode
!=
null
&&
barcode
.
getSolderStatus
()
!=
solderStatus
)
{
/*
if (barcode != null && barcode.getSolderStatus() != solderStatus) {
barcode.setSolderStatus(solderStatus);
barcode = barcodeManager.save(barcode);
storagePos.setBarcode(barcode);
storagePosManager.save(storagePos);
}
}
*/
}
private
void
mixEnd
(
DataLog
mixTask
)
throws
ValidateException
{
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/IStorageManager.java
查看文件 @
d9d0ae7
...
...
@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.storage.service.manager;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.report.bean.ChartItem
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
java.util.Date
;
import
java.util.List
;
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StorageManagerImpl.java
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
core
.
storage
.
service
.
manager
.
impl
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.DateUtil
;
...
...
@@ -8,6 +9,7 @@ import com.neotel.smfcore.core.report.bean.ChartItem;
import
com.neotel.smfcore.core.storage.service.dao.IStorageDao
;
import
com.neotel.smfcore.core.storage.service.manager.IStorageManager
;
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.dao.IDataLogDao
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
src/main/java/com/neotel/smfcore/core/system/service/manager/IDataLogManager.java
查看文件 @
d9d0ae7
...
...
@@ -16,4 +16,6 @@ public interface IDataLogManager extends IBaseManager<DataLog> {
DataLog
findLastOutTask
(
String
barcode
,
boolean
addOutbound
);
void
download
(
Query
query
,
Pageable
pageable
,
HttpServletResponse
response
,
Locale
locale
)
throws
IOException
;
int
countByReqCode
(
String
reqCode
);
}
src/main/java/com/neotel/smfcore/core/system/service/manager/impl/DataLogManagerImpl.java
查看文件 @
d9d0ae7
...
...
@@ -145,4 +145,9 @@ public class DataLogManagerImpl implements IDataLogManager {
}
});
}
@Override
public
int
countByReqCode
(
String
reqCode
)
{
return
dataLogDao
.
countByQuery
(
new
Query
(
Criteria
.
where
(
"reqCode"
).
is
(
reqCode
)));
}
}
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
d9d0ae7
...
...
@@ -258,6 +258,11 @@ public class DataLog extends BasePo implements Serializable {
*/
private
MSDAppendInfo
msdAppendInfo
;
/**
* 请求序列号
*/
private
String
reqCode
;
public
String
getBarcode
()
{
if
(
barcode
==
null
){
return
""
;
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
d9d0ae7
...
...
@@ -184,7 +184,7 @@ public class TaskService {
tiggerTaskChangeListener
(
task
);
}
public
void
addTaskToExecute
(
DataLog
taskToExecute
)
throws
ValidateException
{
public
DataLog
addTaskToExecute
(
DataLog
taskToExecute
)
throws
ValidateException
{
Collection
<
DataLog
>
tasks
=
taskMap
.
values
();
for
(
DataLog
task
:
tasks
)
{
String
barcode
=
taskToExecute
.
getBarcode
();
...
...
@@ -197,7 +197,7 @@ public class TaskService {
throw
new
ValidateException
(
"smfcore.error.pos.inQueue"
,
"位置:[{0}}]已在操作队列中,操作失败"
,
new
String
[]{
posName
});
}
}
updateQueueTask
(
taskToExecute
);
return
updateQueueTask
(
taskToExecute
);
}
/**
...
...
src/main/java/com/neotel/smfcore/hikvision_mobile/HikVisionApi.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.neotel.smfcore.common.exception.ApiException
;
import
com.neotel.smfcore.common.utils.HttpHelper
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.system.listener.ITaskListener
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.hikvision_mobile.bean.request.ApiRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
@Slf4j
@Component
public
class
HikVisionApi
implements
ITaskListener
{
@Value
(
"${hik.inOutTaskUrl}"
)
private
String
inOutTaskUrl
=
""
;
@Value
(
"${hik.posChangeUrl}"
)
private
String
posChangeUrl
=
""
;
@Value
(
"${hik.machineId}"
)
private
String
machineId
=
""
;
@Value
(
"${hik.authorization}"
)
private
String
authorization
=
""
;
@Value
(
"hik.onOff"
)
private
String
onOff
=
""
;
@Autowired
private
DataCache
dataCache
;
@PostConstruct
public
void
initHikVision
()
{
inOutTaskUrl
=
dataCache
.
GetConfigCache
(
"hik.inOutTaskUrl"
,
"hik.inOutTaskUrl"
,
inOutTaskUrl
);
posChangeUrl
=
dataCache
.
GetConfigCache
(
"hik.posChangeUrl"
,
"hik.posChangeUrl"
,
posChangeUrl
);
machineId
=
dataCache
.
GetConfigCache
(
"hik.machineId"
,
"hik.machineId"
,
machineId
);
authorization
=
dataCache
.
GetConfigCache
(
"hik.authorization"
,
"hik.authorization"
,
authorization
);
onOff
=
dataCache
.
GetConfigCache
(
"hik.onOff"
,
"hik.onOff"
,
onOff
);
}
/**
* taskCode String 32 是 任务单号
* status String 20 是 任务状态 0成功 1失败
* shelfCode String 20 是 货架编码
* uniqueCode String 54 是 物料唯一码,41位
* storageCode String 20 是 库位号
*
* @param task
*/
@Override
public
void
onTaskStatusChange
(
DataLog
task
)
{
}
public
boolean
acceptTaskStatus
(
DataLog
task
)
{
boolean
flag
=
true
;
if
(!
task
.
isFinished
())
{
//构造查询条件
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"taskCode"
,
task
.
getId
());
//if (task.isFinished()) {
map
.
put
(
"status"
,
0
);
/* } else {
map.put("status", 1);
}*/
map
.
put
(
"shelfCode"
,
task
.
getStorageName
());
map
.
put
(
"uniqueCode"
,
task
.
getBarcode
());
map
.
put
(
"storageCode"
,
task
.
getPosName
());
ApiRequest
apiRequest
=
new
ApiRequest
(
getReqCode
(),
task
.
getCreator
(),
Arrays
.
asList
(
map
));
String
requestBody
=
JSON
.
toJSONString
(
apiRequest
);
log
.
info
(
"出入库通知hik请求为:"
+
requestBody
);
try
{
String
result
=
HttpHelper
.
postJson
(
inOutTaskUrl
,
requestBody
,
getHeaderMap
());
log
.
info
(
"出入库通知hik返回为:"
+
result
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
result
);
if
(
jsonObject
.
getInteger
(
"code"
)
!=
null
&&
jsonObject
.
getInteger
(
"code"
)
==
0
)
{
flag
=
true
;
}
else
{
flag
=
false
;
}
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
flag
=
false
;
}
}
return
flag
;
}
public
void
posChange
(
Storage
storage
,
String
[]
posNameList
,
String
flag
)
{
if
(
"0"
.
equals
(
onOff
))
{
log
.
info
(
"库位变化,白盒接口预留,暂不开启"
);
return
;
}
List
<
Map
<
String
,
String
>>
paramList
=
new
ArrayList
<>();
for
(
String
posName
:
posNameList
)
{
Map
<
String
,
String
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"shelfCode"
,
storage
.
getName
());
paramMap
.
put
(
"storageCode"
,
posName
);
paramMap
.
put
(
"flag"
,
flag
);
paramList
.
add
(
paramMap
);
}
ApiRequest
apiRequest
=
new
ApiRequest
(
getReqCode
(),
""
,
paramList
);
String
paramStr
=
JSON
.
toJSONString
(
apiRequest
);
log
.
info
(
"接受库位变化信息接口入参为:"
+
paramStr
);
try
{
String
result
=
HttpHelper
.
postJson
(
posChangeUrl
,
paramStr
,
getHeaderMap
());
log
.
info
(
"接受库位变化信息接口出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
}
}
private
Map
<
String
,
String
>
getHeaderMap
()
{
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
headerMap
.
put
(
"MachineId"
,
machineId
);
headerMap
.
put
(
"Authorization"
,
authorization
);
return
headerMap
;
}
private
synchronized
static
String
getReqCode
()
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
return
"100000"
+
format
.
format
(
new
Date
());
}
}
src/main/java/com/neotel/smfcore/hikvision_mobile/HikVisionController.java
0 → 100644
查看文件 @
d9d0ae7
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/CancelTaskInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
@Data
public
class
CancelTaskInfo
{
/**
* taskCode String 20 是 任务单号
*/
private
String
taskCode
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/LightUpInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
@Data
@AllArgsConstructor
public
class
LightUpInfo
{
/**
* shelfCode String 20 是 货架编码
* storageCode String 20 是 库位号
* lightType String 5 是 亮灯类型/亮灯颜色 (7种灯,业务场景)
*/
private
String
shelfCode
;
private
String
storageCode
;
private
String
lightType
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PosChangeInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
/**
* 库位变化信息
*/
@Data
public
class
PosChangeInfo
{
/**
* shelfCode String 20 是 货架编码
* storageCode String 20 是 库位号
* flag String 1 是 上/下架标识 0上架 1下架
*/
private
String
shelfCode
;
private
String
storageCode
;
private
String
flag
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PutOffShelvesInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
/**
* 下架信息
*/
@Data
public
class
PutOffShelvesInfo
{
/**
* uniqueCode String 54 是 物料唯一码,41位
* matnr String 20 否 物料编码
* shelfCode String 20 是 货架编码
*/
private
String
shelfCode
;
private
String
uniqueCode
;
private
String
matnr
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/PutOnShelvesInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
/**
* 上架信息
*/
@Data
public
class
PutOnShelvesInfo
{
/**
* uniqueCode String 54 是 物料唯一码,41位
* matnr String 20 否 物料编码
* qty Integer 是 数量
* shelfCode String 20 是 货架编码
*/
private
String
uniqueCode
;
private
String
matnr
;
private
Integer
qty
;
private
String
shelfCode
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/StockInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
/**
* 库存信息
*/
@Data
public
class
StockInfo
{
/**
* shelfCode String 20 否 货架编码
* uniqueCode String 54 否 物料唯一码,41位
* storageCode String 20 否 库位号
*/
private
String
shelfCode
;
private
String
uniqueCode
;
private
String
storageCode
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/StockResponseInfo.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
;
import
lombok.Data
;
@Data
public
class
StockResponseInfo
{
/**
* shelfCode String 20 是 货架编码
* uniqueCode String 54 是 物料唯一码,41位
* storageCode String 20 是 库位号
* qty Integer 否 数量
* matnr String 20 否 物料编码
* seq Integer 否 排序字段
*/
private
String
shelfCode
;
private
String
uniqueCode
;
private
String
storageCode
;
private
Integer
qty
;
private
String
matnr
;
private
String
seq
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/enums/ResponseCode.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
.
enums
;
public
enum
ResponseCode
{
/**
* 0 成功
* 1 参数错误,需要重发
* 6 报文已处理,无需重发
* 99 其他未知错误,需要重发
*/
SUCCESS
(
0
),
REQUEST_ERROR
(
1
),
PROCESSED
(
6
),
ERROR
(
99
);
private
Integer
code
;
ResponseCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
Integer
getCode
()
{
return
code
;
}
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/request/ApiRequest.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
.
request
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
org.apache.poi.ss.formula.functions.T
;
/**
* 接口入参
*/
@Data
@AllArgsConstructor
public
class
ApiRequest
{
/**
* reqCode String 32 是 唯一请求号,保证每次请求不重复
* userCode String 32 是 操作人
*/
private
String
reqCode
;
private
String
userCode
;
private
Object
data
;
}
src/main/java/com/neotel/smfcore/hikvision_mobile/bean/response/ApiResponse.java
0 → 100644
查看文件 @
d9d0ae7
package
com
.
neotel
.
smfcore
.
hikvision_mobile
.
bean
.
response
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.util.Locale
;
@Data
public
class
ApiResponse
{
/**
* reqCode 是 String 唯一请求号,与传入的参数reqCode保持一致
* code 是 String 结果码:0-成功,1~N-失败
* message 是 String 0:成功 1~N:失败原因
* data 选填 Json 返回的数据结构
*/
private
String
reqCode
;
private
Integer
code
;
private
String
message
;
private
Object
data
;
public
static
ApiResponse
apiResponse
(
String
reqCode
,
Integer
code
,
Object
data
,
String
msgKey
,
String
[]
params
,
String
defaultMsg
)
{
ApiResponse
apiResponse
=
new
ApiResponse
();
apiResponse
.
setReqCode
(
reqCode
);
apiResponse
.
setCode
(
code
);
apiResponse
.
setMessage
(
MessageUtils
.
getText
(
msgKey
,
params
,
new
Locale
(
SecurityUtils
.
getCurrentUserLanguage
()),
defaultMsg
));
apiResponse
.
setData
(
data
);
return
apiResponse
;
}
}
src/main/java/com/neotel/smfcore/panacim/PanaApiController.java
查看文件 @
d9d0ae7
...
...
@@ -445,13 +445,13 @@ public class PanaApiController implements IOpAuthApi, ITaskListener{
@Override
public
void
onTaskStatusChange
(
DataLog
task
)
{
if
(
task
.
isFinished
()){
/*
if(task.isFinished()){
if(task.isPutInTask()){
checkInNotification(task);
}else{
deliverNotification(task);
}
}
}
*/
}
/**
...
...
src/main/resources/config/application-prod.yml
查看文件 @
d9d0ae7
...
...
@@ -2,9 +2,9 @@
spring
:
data
:
mongodb
:
host
:
10.1.129.59
# 主机地址
host
:
localhost
# 主机地址
port
:
27017
# 端口
database
:
hikvision
# 数据库
database
:
smf
# 数据库
minConSize
:
1000
maxConSize
:
2000
...
...
src/main/resources/config/application.yml
查看文件 @
d9d0ae7
server
:
port
:
8800
hik
:
inOutTaskUrl
:
http://meshz-uat.hikvision.com.cn:8000/hiscada/mesapi/mobileShelf/receiveTaskChange
machineId
:
NEO_SMF
authorization
:
1211111111111
posChangeUrl
:
http://meshz-uat.hikvision.com.cn:8000/hiscada/mesapi/mobileShelfWM/receiveStorageChange
onOff
:
1
#白盒接口预留开关,0是关闭 1是开启
# server: http://cloudapi-uat.hikvision.com.cn/api/
# baseCode: "8001"
# lgort: "M9142"
...
...
@@ -93,7 +98,7 @@ spring:
mongodb
:
host
:
localhost
# 主机地址
port
:
27017
# 端口
database
:
hikvision
# 数据库
database
:
smf
# 数据库
minConSize
:
5
maxConSize
:
5
...
...
src/main/resources/messages.properties
查看文件 @
d9d0ae7
...
...
@@ -266,7 +266,7 @@ smfcore.order.noBind=\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u5148\u4E3A\u5DE5\u535
#smfcore.order.out.short=\u5DE5\u5355\u51FA\u5E93\u5931\u8D25\uFF0C\u5DE5\u5355\u7F3A\u6599
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
#smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1
}
smfclient.nlp.cannotFindPos
=
\u
672A
\u
627E
\u5230\u
5E93
\u
4F4D:{0
}
#smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F
#smfclient.nlp.outputOk={0}\u4ECE{1}\u51FA\u5E93\u6210\u529F
#smfclient.nlp.noOutTask=\u672A\u627E\u5230[{0}]\u7684\u51FA\u5E93\u4EFB\u52A1
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论