Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e36c55b2
由
LN
编写于
2021-09-08 10:05:33 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加条码设置功能。查找出库增加条码解析。
1 个父辈
53152fd7
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
113 行增加
和
54 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/common/utils/Constants.java
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/dto/BarcodeSettingDto.java
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/dto/CodeDto.java
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/mapstruct/BarcodeSettingMapper.java → src/main/java/com/neotel/smfcore/core/barcode/rest/bean/mapstruct/CodeMapper.java
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.java
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
e36c55b
...
...
@@ -191,9 +191,9 @@ public class DataInitManager {
Menu
menuStorage
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storage:list"
,
"料仓管理"
,
1
,
"bunker"
,
"storage/storage/index"
,
""
,
0
,
"database"
);
Menu
menuStoragePos
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storagePos:list"
,
"库位管理"
,
1
,
"storagePos"
,
"storagePos/storagePos/index"
,
""
,
0
,
"tree-table"
);
Menu
menuMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"menu:list"
,
"菜单管理"
,
1
,
"menu"
,
"system/menu/index"
,
""
,
0
,
"menu"
);
Menu
sysSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"setting"
,
"
系统设置"
,
1
,
"setting"
,
"system/s
etting/index"
,
""
,
0
,
"database"
);
Menu
sysSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"setting"
,
"
条码设置"
,
1
,
"barcodeSetting"
,
"system/barcodeS
etting/index"
,
""
,
0
,
"database"
);
// menuMenu.setHidden(true);
sysSetting
.
setHidden
(
true
);
//
sysSetting.setHidden(true);
menus
.
addAll
(
createMenus
(
poutSet
,
menuStorage
,
menuStoragePos
,
menuMenu
,
sysSetting
));
...
...
src/main/java/com/neotel/smfcore/common/utils/Constants.java
查看文件 @
e36c55b
...
...
@@ -83,4 +83,6 @@ public class Constants {
* @deprecated No longer used to set themes.
*/
public
static
final
String
CSS_THEME
=
"csstheme"
;
public
static
final
String
CACHE_CodeRule
=
"codeRule"
;
}
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
查看文件 @
e36c55b
...
...
@@ -8,9 +8,7 @@ import com.neotel.smfcore.common.exception.ValidateException;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeSettingDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeSettingMapper
;
import
com.neotel.smfcore.core.barcode.rest.bean.query.BarcodeQueryCriteria
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
...
...
@@ -36,7 +34,6 @@ import javax.servlet.http.HttpServletResponse;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
@Slf4j
...
...
@@ -50,8 +47,6 @@ public class BarcodeController {
@Autowired
private
final
BarcodeMapper
barcodeMapper
;
@Autowired
private
final
BarcodeSettingMapper
barcodeSettingMapper
;
@Autowired
private
final
DataCache
dataCache
;
@Autowired
...
...
@@ -110,31 +105,25 @@ public class BarcodeController {
}
@ApiOperation
(
"获取条码
设置信息
"
)
@GetMapping
(
"/
setting
"
)
@ApiOperation
(
"获取条码
规则
"
)
@GetMapping
(
"/
rule
"
)
@PreAuthorize
(
"@el.check('barcode:setting')"
)
public
BarcodeSettingDto
setting
(){
BarcodeSettingDto
settingDto
=
barcodeSettingMapper
.
toDto
(
dataCache
.
getSettings
()
);
return
settingDto
;
public
List
<
String
>
getRules
(){
return
dataCache
.
getSettings
().
getCodeRuleList
();
}
@ApiOperation
(
"修改条码
设置信息
"
)
@PutMapping
(
"/
setting
"
)
@ApiOperation
(
"修改条码
规则
"
)
@PutMapping
(
"/
rule
"
)
@PreAuthorize
(
"@el.check('barcode:setting')"
)
public
ResponseEntity
<
Object
>
update
Setting
(
@Validated
@RequestBody
BarcodeSettingDto
settingDto
)
{
if
(
settingDto
.
getCodeRuleList
()
.
isEmpty
()){
public
ResponseEntity
<
Object
>
update
Rules
(
@Validated
@RequestBody
List
<
String
>
codeRules
)
{
if
(
codeRules
.
isEmpty
()){
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"codeRuleList"
}
);
}
if
(
settingDto
.
getPageHeight
()==
null
){
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"pageHeight"
}
);
}
if
(
settingDto
.
getPageWidth
()==
null
){
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"pageWidth"
}
);
if
(
codeRules
.
size
()>
10
){
throw
new
ValidateException
(
"smfcode.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"codeRuleList"
}
);
}
Settings
settings
=
dataCache
.
getSettings
();
settings
.
setCodeRuleList
(
settingDto
.
getCodeRuleList
());
settings
.
setPageHeight
(
settingDto
.
getPageHeight
());
settings
.
setPageWidth
(
settingDto
.
getPageWidth
());
settings
.
setCodeRuleList
(
codeRules
);
dataCache
.
updateSettings
(
settings
);
//修改设置
return
new
ResponseEntity
<>(
HttpStatus
.
OK
);
...
...
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/dto/BarcodeSettingDto.java
deleted
100644 → 0
查看文件 @
53152fd
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
rest
.
bean
.
dto
;
import
com.google.common.collect.Lists
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
@Getter
@Setter
public
class
BarcodeSettingDto
{
@ApiModelProperty
(
"多条条码规则"
)
private
List
<
String
>
codeRuleList
=
Lists
.
newArrayList
();
@ApiModelProperty
(
"打印条码的纸张宽度(条码为方形,大小是长宽中最小的)"
)
private
Integer
pageWidth
=
500
;
@ApiModelProperty
(
"打印条码的纸张高度"
)
private
Integer
pageHeight
=
160
;
}
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/dto/CodeDto.java
0 → 100644
查看文件 @
e36c55b
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
rest
.
bean
.
dto
;
import
com.google.common.collect.Lists
;
import
com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS
;
import
com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE
;
import
com.neotel.smfcore.core.barcode.enums.SOLDER_STATUS
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
org.springframework.data.annotation.Transient
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
@Getter
@Setter
@ToString
public
class
CodeDto
implements
Serializable
{
@ApiModelProperty
(
"条码编号"
)
private
String
barcode
;
@ApiModelProperty
(
"料件编号"
)
private
String
partNumber
;
@ApiModelProperty
(
"宽度"
)
private
int
plateSize
=
0
;
@ApiModelProperty
(
"高度"
)
private
int
height
=
0
;
/**
* 原始条码
*/
@ApiModelProperty
(
"原始条码"
)
private
String
fullCode
;
}
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/mapstruct/
BarcodeSetting
Mapper.java
→
src/main/java/com/neotel/smfcore/core/barcode/rest/bean/mapstruct/
Code
Mapper.java
查看文件 @
e36c55b
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
rest
.
bean
.
mapstruct
;
import
com.neotel.smfcore.common.base.BaseMapper
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.
BarcodeSetting
Dto
;
import
com.neotel.smfcore.core.
system.service.po.Settings
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.
Code
Dto
;
import
com.neotel.smfcore.core.
barcode.service.po.Barcode
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
BarcodeSettingMapper
extends
BaseMapper
<
BarcodeSettingDto
,
Settings
>
{
public
interface
CodeMapper
extends
BaseMapper
<
CodeDto
,
Barcode
>
{
}
src/main/java/com/neotel/smfcore/core/barcode/utils/CodeResolve.java
查看文件 @
e36c55b
...
...
@@ -43,7 +43,7 @@ public class CodeResolve {
}
/**
* 解析条码为单个 Barcode
* 解析条码为单个 Barcode
,自动保存到数据库
*/
public
CodeBean
resolveSingleCode
(
String
barcodeItemStr
){
...
...
@@ -220,6 +220,26 @@ public class CodeResolve {
return
codeBeanFromRule
;
}
/**
* 解析条码为单个 Barcode
*/
public
Barcode
resolveCode
(
String
barcodeItemStr
)
{
CodeBean
codeBeanFromRule
=
null
;
//每个规则尝试解析一次
for
(
BarcodeRule
codeRule
:
barcodeRuleList
)
{
codeBeanFromRule
=
codeRule
.
toCodeBean
(
barcodeItemStr
);
if
(
codeBeanFromRule
.
isValid
())
{
if
(
codeBeanFromRule
.
getBarcode
()
!=
null
)
{
return
codeBeanFromRule
.
getBarcode
();
}
}
}
return
null
;
}
public
Collection
<
CodeBean
>
resolveCodeStr
(
String
codeStr
){
List
<
CodeBean
>
codeBeans
=
Lists
.
newArrayList
();
//Map<String, CodeBean> codeBeanMap = Maps.newHashMap();
...
...
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
e36c55b
...
...
@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.device.util;
import
com.google.common.base.Strings
;
import
com.google.common.collect.Maps
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
...
...
@@ -99,6 +100,10 @@ public class DataCache {
public
void
updateCache
(
String
cacheKey
,
Object
value
){
cacheItemDao
.
updateCacheItem
(
cacheKey
,
value
);
cacheMap
.
put
(
cacheKey
,
value
);
if
(
cacheKey
.
equals
(
Constants
.
CACHE_CodeRule
)){
List
<
String
>
ruleList
=(
List
<
String
>)
value
;
codeResolve
.
updateBarcodeRuleList
(
ruleList
);
}
}
/**
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
e36c55b
...
...
@@ -8,6 +8,10 @@ import com.neotel.smfcore.common.utils.Constants;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.StorageConstants
;
import
com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.CodeDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.CodeMapper
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.rest.dto.CheckOutDto
;
import
com.neotel.smfcore.core.storage.rest.dto.StoragePosDto
;
...
...
@@ -27,6 +31,7 @@ import io.swagger.annotations.ApiModelProperty;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
net.bytebuddy.asm.Advice
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
...
...
@@ -59,6 +64,12 @@ public class StoragePosController {
@Autowired
private
TaskService
taskService
;
@Autowired
private
CodeResolve
codeResolve
;
@Autowired
private
CodeMapper
codeMapper
;
@ApiOperation
(
"查询库位"
)
...
...
@@ -235,4 +246,21 @@ public class StoragePosController {
}
return
ResultBean
.
newOkResult
(
""
);
}
@ApiOperation
(
"解析出库条码"
)
@PutMapping
(
"/resolveCode"
)
public
CodeDto
resolveCode
(
@RequestParam
(
"blurry"
)
String
blurry
){
String
barcodeStr
=
blurry
;
Barcode
barcode
=
codeResolve
.
resolveCode
(
barcodeStr
);
if
(
barcode
==
null
){
return
null
;
}
else
{
CodeDto
dto
=
codeMapper
.
toDto
(
barcode
);
log
.
info
(
"resolveCode ["
+
barcodeStr
+
"]=["
+
dto
.
toString
()+
"]"
);
return
dto
;
}
}
}
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosFindCriteria.java
查看文件 @
e36c55b
...
...
@@ -11,7 +11,7 @@ import java.util.Date;
@Data
public
class
StoragePosFindCriteria
{
@QueryCondition
(
blurry
=
"barcode,posName"
)
@QueryCondition
(
blurry
=
"barcode
.partNumber,barcode
,posName"
)
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.java
查看文件 @
e36c55b
...
...
@@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import
java.util.Date
;
@Data
public
class
StoragePosQueryCriteria
{
@QueryCondition
(
blurry
=
"barcode.barcode,posName"
)
@QueryCondition
(
blurry
=
"barcode.
partNumber,barcode.
barcode,posName"
)
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
,
propName
=
"updateDate"
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论