Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 533db9b4
由
LN
编写于
2021-10-25 14:42:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
新建datalog默认为等待状态
1 个父辈
6adc0672
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
35 行增加
和
25 行删除
src/main/java/com/neotel/smfcore/common/utils/Constants.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.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/hella/handler/HellaServiceHandler.java
src/main/java/com/neotel/smfcore/common/utils/Constants.java
查看文件 @
533db9b
...
@@ -99,5 +99,8 @@ public class Constants {
...
@@ -99,5 +99,8 @@ public class Constants {
*/
*/
public
static
final
String
CACHE_StopJob
=
"stopJob"
;
public
static
final
String
CACHE_StopJob
=
"stopJob"
;
/**
* 出库方式类型 出库策略配置
*/
public
static
final
String
CACHE_CheckOutType
=
"checkoutType"
;
public
static
final
String
CACHE_CheckOutType
=
"checkoutType"
;
}
}
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
533db9b
...
@@ -4,6 +4,7 @@ import com.google.common.base.Strings;
...
@@ -4,6 +4,7 @@ import com.google.common.base.Strings;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP
;
...
@@ -52,6 +53,8 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -52,6 +53,8 @@ public class LiteOrderCache implements ITaskListener {
@Autowired
@Autowired
private
IStoragePosManager
storagePosManager
;
private
IStoragePosManager
storagePosManager
;
@Autowired
private
IBarcodeManager
barcodeManager
;
/**
/**
* 正在执行的liteOrderMap, key 为orderNo,value 为order
* 正在执行的liteOrderMap, key 为orderNo,value 为order
...
@@ -160,21 +163,21 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -160,21 +163,21 @@ public class LiteOrderCache implements ITaskListener {
liteOrderItem
.
setTotalOutNum
(
liteOrderItem
.
getTotalOutNum
()+
task
.
getNum
());
liteOrderItem
.
setTotalOutNum
(
liteOrderItem
.
getTotalOutNum
()+
task
.
getNum
());
liteOrderItem
.
setTotalOutReelCount
(
liteOrderItem
.
getTotalOutReelCount
()+
1
);
liteOrderItem
.
setTotalOutReelCount
(
liteOrderItem
.
getTotalOutReelCount
()+
1
);
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
liteOrderItem
=
liteOrderItemManager
.
save
(
liteOrderItem
);
//
Barcode barcode = barcodeManager.findByBarcode(task.getBarcode());
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
task
.
getBarcode
());
//
if (barcode != null) {
if
(
barcode
!=
null
)
{
//
Float totalNeedNum = liteOrderItem.getNeedNum() * order.getOrderTimes();
Float
totalNeedNum
=
liteOrderItem
.
getNeedNum
()
*
order
.
getOrderTimes
();
//
int barcodeRemainNum = liteOrderItem.getOutNum() - totalNeedNum.intValue();
int
barcodeRemainNum
=
liteOrderItem
.
getOutNum
()
-
totalNeedNum
.
intValue
();
//
if (barcodeRemainNum < 0) {
if
(
barcodeRemainNum
<
0
)
{
//
barcodeRemainNum = 0;
barcodeRemainNum
=
0
;
//
}
}
//
barcode.setAmount(barcodeRemainNum);
barcode
.
setAmount
(
barcodeRemainNum
);
//
log.info("条码[" + task.getBarcode() + "]从工单出库,更改数量为:" + barcodeRemainNum);
log
.
info
(
"条码["
+
task
.
getBarcode
()
+
"]从工单出库,更改数量为:"
+
barcodeRemainNum
);
//
try {
try
{
//
barcodeManager.save(barcode);
barcodeManager
.
save
(
barcode
);
//
} catch (ValidateException e) {
}
catch
(
ValidateException
e
)
{
//
e.printStackTrace();
e
.
printStackTrace
();
//
}
}
//
}
}
}
}
items
.
add
(
liteOrderItem
);
items
.
add
(
liteOrderItem
);
}
}
...
@@ -188,7 +191,9 @@ public class LiteOrderCache implements ITaskListener {
...
@@ -188,7 +191,9 @@ public class LiteOrderCache implements ITaskListener {
break
;
break
;
}
}
}
}
order
.
setClosed
(
closed
);
if
(
closed
){
order
.
setClosed
(
closed
);
}
}
}
}
else
{
}
else
{
log
.
error
(
"工单["
+
orderNo
+
"]的任务["
+
task
.
getBarcode
()
+
"]完成时,状态为:"
+
task
.
getStatus
());
log
.
error
(
"工单["
+
orderNo
+
"]的任务["
+
task
.
getBarcode
()
+
"]完成时,状态为:"
+
task
.
getStatus
());
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
查看文件 @
533db9b
...
@@ -177,7 +177,7 @@ public class MaterialController {
...
@@ -177,7 +177,7 @@ public class MaterialController {
}
}
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
true
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
true
,
SecurityUtils
.
getCurrentUsername
()
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
throw
new
ValidateException
(
"smfcode.error"
,
outResult
);
throw
new
ValidateException
(
"smfcode.error"
,
outResult
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
533db9b
...
@@ -310,7 +310,6 @@ public class StoragePosController {
...
@@ -310,7 +310,6 @@ public class StoragePosController {
}
}
String
isSingleOutStr
=
checkOutDto
.
getSingleOut
();
String
isSingleOutStr
=
checkOutDto
.
getSingleOut
();
boolean
isSingleOut
=
Boolean
.
valueOf
(
isSingleOutStr
);
boolean
isSingleOut
=
Boolean
.
valueOf
(
isSingleOutStr
);
// String pids = checkOutDto.getPids();
for
(
String
pid
:
checkOutDto
.
getPids
())
{
for
(
String
pid
:
checkOutDto
.
getPids
())
{
StoragePos
pos
=
storagePosManager
.
get
(
pid
);
StoragePos
pos
=
storagePosManager
.
get
(
pid
);
...
@@ -325,7 +324,7 @@ public class StoragePosController {
...
@@ -325,7 +324,7 @@ public class StoragePosController {
}
}
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
,
SecurityUtils
.
getCurrentUsername
()
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
throw
new
ValidateException
(
"smfcode.error"
,
outResult
);
throw
new
ValidateException
(
"smfcode.error"
,
outResult
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
533db9b
...
@@ -36,6 +36,7 @@ public class DataLog extends BasePo implements Serializable {
...
@@ -36,6 +36,7 @@ public class DataLog extends BasePo implements Serializable {
setPosId
(
pos
.
getId
());
setPosId
(
pos
.
getId
());
setPosName
(
pos
.
getPosName
());
setPosName
(
pos
.
getPosName
());
setStatus
(
OP_STATUS
.
WAIT
.
name
());
}
}
/**
/**
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
533db9b
...
@@ -101,7 +101,7 @@ public class TaskService {
...
@@ -101,7 +101,7 @@ public class TaskService {
* @return
* @return
* @throws ValidateException
* @throws ValidateException
*/
*/
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
)
throws
ValidateException
{
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
)
throws
ValidateException
{
if
(
pos
.
getBarcode
()
==
null
)
{
if
(
pos
.
getBarcode
()
==
null
)
{
String
msg
=
"库位["
+
pos
.
getPosName
()
+
"]中已无物料,忽略"
;
String
msg
=
"库位["
+
pos
.
getPosName
()
+
"]中已无物料,忽略"
;
log
.
info
(
msg
);
log
.
info
(
msg
);
...
@@ -112,7 +112,7 @@ public class TaskService {
...
@@ -112,7 +112,7 @@ public class TaskService {
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setSingleOut
(
isSingleOut
);
task
.
setSingleOut
(
isSingleOut
);
task
.
setOperator
(
opUserName
);
addTaskToExecute
(
task
);
addTaskToExecute
(
task
);
return
""
;
return
""
;
}
}
...
@@ -521,6 +521,7 @@ public class TaskService {
...
@@ -521,6 +521,7 @@ public class TaskService {
task
.
setPosId
(
pos
.
getId
());
task
.
setPosId
(
pos
.
getId
());
task
.
setPosName
(
pos
.
getPosName
());
task
.
setPosName
(
pos
.
getPosName
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
return
task
;
return
task
;
}
}
...
@@ -669,7 +670,7 @@ public class TaskService {
...
@@ -669,7 +670,7 @@ public class TaskService {
//如果已在库位中,那么自动将该库位的物料出库
//如果已在库位中,那么自动将该库位的物料出库
log
.
info
(
"出库已在库位中的物料["
+
barcodeSave
.
getBarcode
()+
"]"
);
log
.
info
(
"出库已在库位中的物料["
+
barcodeSave
.
getBarcode
()+
"]"
);
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
checkout
(
storage
,
pos
,
true
);
checkout
(
storage
,
pos
,
true
,
""
);
throw
new
ValidateException
(
"smfcode.error.barcode.exist"
,
"[{0}}]已在{1}}[{2}}]中"
,
new
String
[]{
barcodeSave
.
getBarcode
(),
storage
.
getName
(),
pos
.
getPosName
()});
throw
new
ValidateException
(
"smfcode.error.barcode.exist"
,
"[{0}}]已在{1}}[{2}}]中"
,
new
String
[]{
barcodeSave
.
getBarcode
(),
storage
.
getName
(),
pos
.
getPosName
()});
}
}
...
@@ -904,10 +905,11 @@ public class TaskService {
...
@@ -904,10 +905,11 @@ public class TaskService {
}
else
{
}
else
{
log
.
info
(
"策略出库,PN["
+
item
.
getPartNumber
()
+
"]第["
+
i
+
"]盘, 出库位置仓位【"
+
pos
.
getPosName
()
+
"】RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] PN=["
+
partNumber
+
"] num:"
+
pos
.
getBarcode
().
getAmount
());
log
.
info
(
"策略出库,PN["
+
item
.
getPartNumber
()
+
"]第["
+
i
+
"]盘, 出库位置仓位【"
+
pos
.
getPosName
()
+
"】RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] PN=["
+
partNumber
+
"] num:"
+
pos
.
getBarcode
().
getAmount
());
DataLog
task
=
newTask
(
pos
);
DataLog
task
=
newTask
(
pos
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setOperator
(
SecurityUtils
.
getCurrentUsername
());
task
.
setSingleOut
(
true
);
task
.
setSourceId
(
null
);
task
.
setSourceId
(
null
);
task
.
setSourceName
(
"策略出库"
);
task
.
setSourceName
(
"策略出库"
);
task
.
setType
(
OP
.
CHECKOUT
);
addTaskToExecute
(
task
);
addTaskToExecute
(
task
);
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
查看文件 @
533db9b
...
@@ -186,7 +186,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
...
@@ -186,7 +186,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}
else
{
}
else
{
Storage
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
Storage
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
try
{
try
{
taskService
.
checkout
(
storage
,
storagePos
,
false
);
taskService
.
checkout
(
storage
,
storagePos
,
false
,
""
);
}
catch
(
ValidateException
ve
){
}
catch
(
ValidateException
ve
){
resultCode
=
"-3"
;
resultCode
=
"-3"
;
resultMsg
=
ve
.
getMessage
();
resultMsg
=
ve
.
getMessage
();
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论