Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ee5cac00
由
LN
编写于
2022-03-02 13:58:44 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加机器人料仓代码
1 个父辈
c483084b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
106 行增加
和
17 行删除
src/main/java/com/neotel/smfcore/core/device/enums/OP_STATUS.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/RobotBoxHandler.java
src/main/java/com/neotel/smfcore/core/language/rest/LanguageSetController.java
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosSaveDto.java
src/main/java/com/neotel/smfcore/core/storage/service/po/Storage.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/security/rest/MenuController.java
src/main/java/com/neotel/smfcore/core/device/enums/OP_STATUS.java
查看文件 @
ee5cac0
...
@@ -33,6 +33,14 @@ public enum OP_STATUS {
...
@@ -33,6 +33,14 @@ public enum OP_STATUS {
/**
/**
* 已结束
* 已结束
*/
*/
END
END
,
/**
* 机器人正在移栽中
*/
INROBOT
,
/**
* 已放到料仓门口
*/
BOXDOOR
,
;
;
}
}
src/main/java/com/neotel/smfcore/core/device/handler/impl/RobotBoxHandler.java
0 → 100644
查看文件 @
ee5cac0
此文件的差异被折叠,
点击展开。
src/main/java/com/neotel/smfcore/core/language/rest/LanguageSetController.java
查看文件 @
ee5cac0
...
@@ -7,6 +7,7 @@ import com.neotel.smfcore.common.utils.SecurityUtils;
...
@@ -7,6 +7,7 @@ import com.neotel.smfcore.common.utils.SecurityUtils;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.language.service.bean.LanguageInfo
;
import
com.neotel.smfcore.core.language.service.bean.LanguageInfo
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.rest.bean.dto.UserDto
;
import
com.neotel.smfcore.security.rest.bean.dto.UserDto
;
import
com.neotel.smfcore.security.service.po.User
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -47,7 +48,8 @@ public class LanguageSetController {
...
@@ -47,7 +48,8 @@ public class LanguageSetController {
@ApiOperation
(
"获取语言列表"
)
@ApiOperation
(
"获取语言列表"
)
@GetMapping
@GetMapping
@PreAuthorize
(
"@el.check('translation')"
)
@AnonymousAccess
// @PreAuthorize("@el.check('translation')")
public
List
<
LanguageInfo
>
getList
(){
public
List
<
LanguageInfo
>
getList
(){
return
getAllLanList
();
return
getAllLanList
();
}
}
...
...
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
查看文件 @
ee5cac0
...
@@ -110,6 +110,11 @@ public enum DeviceType {
...
@@ -110,6 +110,11 @@ public enum DeviceType {
NLP
(
"storage.type.nlp"
),
NLP
(
"storage.type.nlp"
),
/**
/**
* 18 机器人料仓
*/
ROBOT_BOX
(
"storage.type.robotBox"
),
/**
* 18 (默认料仓)
* 18 (默认料仓)
*/
*/
DEFAULT
(
"storage.type.default"
)
DEFAULT
(
"storage.type.default"
)
...
@@ -134,6 +139,6 @@ public enum DeviceType {
...
@@ -134,6 +139,6 @@ public enum DeviceType {
}
}
public
static
List
<
DeviceType
>
availableTypeList
(){
public
static
List
<
DeviceType
>
availableTypeList
(){
return
Lists
.
newArrayList
(
AUTO
,
LINE
,
BATCH
,
SOLDERPASTE
,
VERTICALBOX
,
SMD_XL
,
SMD_DUO
,
SMD_XLC
,
VIRTUAL
,
NL
,
NLP
);
return
Lists
.
newArrayList
(
AUTO
,
LINE
,
BATCH
,
SOLDERPASTE
,
VERTICALBOX
,
SMD_XL
,
SMD_DUO
,
SMD_XLC
,
VIRTUAL
,
NL
,
NLP
,
ROBOT_BOX
);
}
}
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
ee5cac0
...
@@ -239,8 +239,14 @@ public class StoragePosController {
...
@@ -239,8 +239,14 @@ public class StoragePosController {
pos
.
setPriority
(
saveDto
.
getPriority
());
pos
.
setPriority
(
saveDto
.
getPriority
());
pos
.
setH
(
saveDto
.
getH
());
pos
.
setH
(
saveDto
.
getH
());
pos
.
setW
(
saveDto
.
getW
());
pos
.
setW
(
saveDto
.
getW
());
String
enabledStr
=
""
;
if
(
pos
.
isEnabled
()!=
saveDto
.
isEnabled
()){
pos
.
setEnabled
(
saveDto
.
isEnabled
());
enabledStr
=
saveDto
.
isEnabled
()?
",启用库位"
:
",禁用库位"
;
}
storagePosManager
.
save
(
pos
);
storagePosManager
.
save
(
pos
);
log
.
info
(
"修改库位:库位号["
+
pos
.
getId
()
+
"]=["
+
saveDto
.
toString
()
+
"]"
);
log
.
info
(
"修改库位:库位号["
+
pos
.
getId
()
+
"]=["
+
saveDto
.
toString
()
+
"]"
+
enabledStr
);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/dto/StoragePosSaveDto.java
查看文件 @
ee5cac0
...
@@ -24,4 +24,7 @@ public class StoragePosSaveDto implements Serializable {
...
@@ -24,4 +24,7 @@ public class StoragePosSaveDto implements Serializable {
@ApiModelProperty
(
"宽度"
)
@ApiModelProperty
(
"宽度"
)
private
int
w
;
private
int
w
;
@ApiModelProperty
(
"是否可用,true=可用,false=禁用"
)
private
boolean
enabled
=
true
;
}
}
src/main/java/com/neotel/smfcore/core/storage/service/po/Storage.java
查看文件 @
ee5cac0
...
@@ -179,6 +179,10 @@ public class Storage extends BasePo implements Serializable {
...
@@ -179,6 +179,10 @@ public class Storage extends BasePo implements Serializable {
return
DeviceType
.
SMD_XLC
.
name
().
equals
(
type
);
return
DeviceType
.
SMD_XLC
.
name
().
equals
(
type
);
}
}
public
boolean
isRobotBox
()
{
return
DeviceType
.
ROBOT_BOX
.
name
().
equals
(
type
);
}
public
boolean
isType
(
DeviceType
[]
types
){
public
boolean
isType
(
DeviceType
[]
types
){
for
(
DeviceType
str
:
for
(
DeviceType
str
:
types
)
{
types
)
{
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
ee5cac0
...
@@ -210,6 +210,11 @@ public class DataLog extends BasePo implements Serializable {
...
@@ -210,6 +210,11 @@ public class DataLog extends BasePo implements Serializable {
*/
*/
private
MSDAppendInfo
msdAppendInfo
;
private
MSDAppendInfo
msdAppendInfo
;
/**
* 位置信息,如料架编号,托盘编号,移栽编号,皮带线编号,机器人编号等
*/
private
String
locInfo
=
""
;
public
String
getBarcode
()
{
public
String
getBarcode
()
{
if
(
barcode
==
null
){
if
(
barcode
==
null
){
return
""
;
return
""
;
...
@@ -252,6 +257,14 @@ public class DataLog extends BasePo implements Serializable {
...
@@ -252,6 +257,14 @@ public class DataLog extends BasePo implements Serializable {
return
OP_STATUS
.
END
.
name
().
equals
(
status
);
return
OP_STATUS
.
END
.
name
().
equals
(
status
);
}
}
public
boolean
isInRobot
(){
return
OP_STATUS
.
INROBOT
.
name
().
equals
(
status
);
}
public
boolean
isBoxdoor
(){
return
OP_STATUS
.
BOXDOOR
.
name
().
equals
(
status
);
}
/**
/**
* 是否是入库任务
* 是否是入库任务
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
ee5cac0
...
@@ -325,6 +325,21 @@ public class TaskService {
...
@@ -325,6 +325,21 @@ public class TaskService {
return
false
;
return
false
;
}
}
private
DataLog
findPutInBoxTask
(
Storage
storage
){
if
(
storage
.
isRobotBox
()){
for
(
DataLog
task
:
taskMap
.
values
())
{
if
(
OP
.
PUT_IN
==
task
.
getType
()
&&
task
.
getCid
().
equals
(
storage
.
getCid
()))
{
if
(
task
.
isBoxdoor
()){
return
task
;
}
}
}
}
return
null
;
}
/**
/**
* 为 box 分配出库任务
* 为 box 分配出库任务
*/
*/
...
@@ -393,6 +408,30 @@ public class TaskService {
...
@@ -393,6 +408,30 @@ public class TaskService {
*/
*/
public
StatusBean
checkOut
(
Storage
storage
,
StatusBean
statusBean
)
{
public
StatusBean
checkOut
(
Storage
storage
,
StatusBean
statusBean
)
{
try
{
try
{
DataLog
putInTask
=
findPutInBoxTask
(
storage
);
if
(
putInTask
!=
null
){
//发送入库任务到BOX
putInTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskMap
.
put
(
putInTask
.
getId
(),
putInTask
);
putInTask
=
dataLogDao
.
save
(
putInTask
);
String
posName
=
putInTask
.
getPosName
();
Barcode
codeObj
=
barcodeManager
.
findByBarcode
(
putInTask
.
getBarcode
());
int
plateW
=
0
;
int
plateH
=
0
;
if
(
codeObj
!=
null
)
{
plateW
=
codeObj
.
getPlateSize
();
plateH
=
codeObj
.
getHeight
();
}
else
{
log
.
warn
(
"入库未找到条码"
+
storage
.
getName
()
+
"["
+
posName
+
"],条码["
+
putInTask
.
getBarcode
()+
"]"
);
}
statusBean
.
setOp
(
OP
.
PUT_IN
);
statusBean
.
addPosInfo
(
putInTask
.
getBarcode
(),
posName
,
plateW
,
plateH
,
true
);
log
.
info
(
"入库"
+
storage
.
getName
()
+
"["
+
posName
+
"]物料["
+
putInTask
.
getBarcode
()
+
"]["
+
putInTask
.
getStatus
()+
"]到 "
+
storage
.
getCid
());
return
statusBean
;
}
//准备更新暂停出入库
//准备更新暂停出入库
if
(
dataCache
.
getCache
(
Constants
.
CACHE_StopOut
))
{
if
(
dataCache
.
getCache
(
Constants
.
CACHE_StopOut
))
{
return
statusBean
;
return
statusBean
;
...
@@ -946,4 +985,13 @@ public class TaskService {
...
@@ -946,4 +985,13 @@ public class TaskService {
taskMap
.
remove
(
task
.
getId
());
taskMap
.
remove
(
task
.
getId
());
theFinishedTaskMap
.
put
(
task
.
getId
(),
task
);
theFinishedTaskMap
.
put
(
task
.
getId
(),
task
);
}
}
public
DataLog
findTask
(
String
barcode
)
{
for
(
DataLog
task
:
taskMap
.
values
())
{
if
(
task
.
getBarcode
().
equals
(
barcode
))
{
return
task
;
}
}
return
null
;
}
}
}
src/main/java/com/neotel/smfcore/security/rest/MenuController.java
查看文件 @
ee5cac0
...
@@ -103,7 +103,7 @@ public class MenuController {
...
@@ -103,7 +103,7 @@ public class MenuController {
List
<
Menu
>
menus
=
menuManager
.
getMenusByPid
(
pid
);
List
<
Menu
>
menus
=
menuManager
.
getMenusByPid
(
pid
);
Locale
locale
=
servletRequest
.
getLocale
();
Locale
locale
=
servletRequest
.
getLocale
();
for
(
Menu
menu
:
menus
for
(
Menu
menu
:
menus
)
{
)
{
menu
.
UpdateTitle
(
locale
);
menu
.
UpdateTitle
(
locale
);
}
}
List
<
MenuDto
>
dtos
=
menuMapper
.
toDto
(
menus
);
List
<
MenuDto
>
dtos
=
menuMapper
.
toDto
(
menus
);
...
@@ -161,8 +161,8 @@ public class MenuController {
...
@@ -161,8 +161,8 @@ public class MenuController {
@PostMapping
@PostMapping
@PreAuthorize
(
"@el.check('menu:add')"
)
@PreAuthorize
(
"@el.check('menu:add')"
)
public
ResponseEntity
<
Object
>
create
(
@Validated
@RequestBody
MenuDto
menuDto
)
{
public
ResponseEntity
<
Object
>
create
(
@Validated
@RequestBody
MenuDto
menuDto
)
{
Menu
resources
=
menuMapper
.
toEntity
(
menuDto
);
//
Menu resources=menuMapper.toEntity(menuDto);
menuManager
.
saveMenu
(
resources
);
//
menuManager.saveMenu(resources);
return
new
ResponseEntity
<>(
HttpStatus
.
CREATED
);
return
new
ResponseEntity
<>(
HttpStatus
.
CREATED
);
}
}
...
@@ -184,16 +184,16 @@ public class MenuController {
...
@@ -184,16 +184,16 @@ public class MenuController {
@DeleteMapping
@DeleteMapping
@PreAuthorize
(
"@el.check('menu:del')"
)
@PreAuthorize
(
"@el.check('menu:del')"
)
public
ResponseEntity
<
Object
>
delete
(
@RequestBody
Set
<
String
>
ids
)
{
public
ResponseEntity
<
Object
>
delete
(
@RequestBody
Set
<
String
>
ids
)
{
if
(!
SecurityUtils
.
getCurrentUsername
().
equals
(
Constants
.
SUPER_USERNAME
)){
//
if(!SecurityUtils.getCurrentUsername().equals(Constants.SUPER_USERNAME)){
throw
new
ValidateException
(
"smfcore.noAccessUpdate"
,
"没有删除菜单的权限"
);
//
throw new ValidateException("smfcore.noAccessUpdate","没有删除菜单的权限");
}
//
}
Set
<
Menu
>
menuSet
=
new
HashSet
<>();
//
Set<Menu> menuSet = new HashSet<>();
for
(
String
id
:
ids
)
{
//
for (String id : ids) {
List
<
Menu
>
menuList
=
menuManager
.
getMenusByPid
(
id
);
//
List<Menu> menuList = menuManager.getMenusByPid(id);
menuSet
.
add
(
menuManager
.
get
(
id
));
//
menuSet.add(menuManager.get(id));
menuSet
=
menuManager
.
getChildMenus
(
menuList
,
menuSet
);
//
menuSet = menuManager.getChildMenus(menuList, menuSet);
}
//
}
menuManager
.
delete
(
menuSet
);
//
menuManager.delete(menuSet);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论