Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9a01a7e6
由
zshaohui
编写于
2024-10-15 19:25:05 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.解析客户表格,到barcode数据表中
1 个父辈
1e2c16a0
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
98 行增加
和
4 行删除
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
src/main/java/com/neotel/smfcore/core/barcode/rest/BarcodeController.java
查看文件 @
9a01a7e
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
rest
;
package
com
.
neotel
.
smfcore
.
core
.
barcode
.
rest
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.csv.CsvReader
;
import
com.neotel.smfcore.common.csv.CsvReader
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.DateUtil
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.bean.BarcodeRule
;
import
com.neotel.smfcore.core.barcode.bean.BarcodeRule
;
import
com.neotel.smfcore.core.barcode.bean.CodeBean
;
import
com.neotel.smfcore.core.barcode.bean.CodeBean
;
import
com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeRuleDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.dto.BarcodeRuleDto
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper
;
import
com.neotel.smfcore.core.barcode.rest.bean.mapstruct.BarcodeMapper
;
import
com.neotel.smfcore.core.barcode.rest.bean.query.BarcodeQueryCriteria
;
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.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.manager.IComponentManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
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.CodeResolve
;
import
com.neotel.smfcore.core.barcode.utils.CodeResolve
;
import
com.neotel.smfcore.core.barcode.utils.QrcodeUtils
;
import
com.neotel.smfcore.core.barcode.utils.QrcodeUtils
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
...
@@ -25,6 +31,7 @@ import io.swagger.annotations.Api;
...
@@ -25,6 +31,7 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
...
@@ -39,10 +46,10 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -39,10 +46,10 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.File
;
import
java.
util.ArrayList
;
import
java.
io.IOException
;
import
java.
util.List
;
import
java.
io.InputStream
;
import
java.
util.Map
;
import
java.
text.SimpleDateFormat
;
import
java.util.
Set
;
import
java.util.
*
;
@Slf4j
@Slf4j
@RestController
@RestController
...
@@ -64,6 +71,9 @@ public class BarcodeController {
...
@@ -64,6 +71,9 @@ public class BarcodeController {
@Autowired
@Autowired
private
CodeResolve
codeResolve
;
private
CodeResolve
codeResolve
;
@Autowired
private
IComponentManager
componentManager
;
@ApiOperation
(
"导出条码数据"
)
@ApiOperation
(
"导出条码数据"
)
@GetMapping
(
value
=
"/download"
)
@GetMapping
(
value
=
"/download"
)
public
void
download
(
HttpServletResponse
response
,
BarcodeQueryCriteria
criteria
)
throws
Exception
{
public
void
download
(
HttpServletResponse
response
,
BarcodeQueryCriteria
criteria
)
throws
Exception
{
...
@@ -218,6 +228,90 @@ public class BarcodeController {
...
@@ -218,6 +228,90 @@ public class BarcodeController {
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.error.barcode.invalid"
,
"未找到有效条码"
);
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.error.barcode.invalid"
,
"未找到有效条码"
);
}
}
@ApiOperation
(
"解析客户表格,增加物料信息"
)
@RequestMapping
(
"/excelTransferToBarcode"
)
@AnonymousAccess
public
ResultBean
excelTransferToBarcode
(
@RequestParam
MultipartFile
file
)
throws
IOException
{
ExcelUtil
util
=
new
ExcelUtil
();
// 获取excel文件数据流
InputStream
is
=
file
.
getInputStream
();
// 创建工作簿
Workbook
wb
=
WorkbookFactory
.
create
(
is
);
Sheet
sheet
=
wb
.
getSheetAt
(
0
);
List
<
Barcode
>
barcodeList
=
new
ArrayList
<>();
// 遍历每一行数据
for
(
int
i
=
3
;
i
<=
sheet
.
getLastRowNum
();
i
++)
{
Row
row
=
sheet
.
getRow
(
i
);
String
partNumber
=
row
.
getCell
(
1
).
getStringCellValue
();
String
barcodeStr
=
""
;
Cell
cell
=
row
.
getCell
(
2
);
if
(
cell
!=
null
){
if
(
cell
.
getCellType
()
==
CellType
.
STRING
){
barcodeStr
=
cell
.
getStringCellValue
();
}
else
if
(
cell
.
getCellType
()
==
CellType
.
NUMERIC
){
double
value
=
cell
.
getNumericCellValue
();
barcodeStr
=
String
.
valueOf
((
int
)
value
);
}
}
if
(
StringUtils
.
isEmpty
(
barcodeStr
)){
continue
;
}
double
amount
=
row
.
getCell
(
3
).
getNumericCellValue
();
String
yyMMdd
=
row
.
getCell
(
5
).
getStringCellValue
();
// 假设时间格式为HH:mm:ss
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
Date
date
=
row
.
getCell
(
6
).
getDateCellValue
();
String
hhMMss
=
sdf
.
format
(
date
);
Date
produceDate
=
DateUtil
.
toDate
(
yyMMdd
+
" "
+
hhMMss
,
"yy/MM/dd HH:mm:ss"
);
Barcode
barcode
=
new
Barcode
();
barcode
.
setBarcode
(
barcodeStr
);
barcode
.
setPartNumber
(
partNumber
);
if
(
amount
==
0
){
amount
=
1
;
}
barcode
.
setAmount
((
int
)
amount
);
barcode
.
setProduceDate
(
produceDate
);
barcode
.
setPlateSize
(
7
);
barcode
.
setHeight
(
8
);
barcodeList
.
add
(
barcode
);
}
for
(
int
i
=
0
;
i
<
barcodeList
.
size
();
i
++)
{
Barcode
barcode
=
barcodeList
.
get
(
i
);
Component
component
=
componentManager
.
findByPartNumberAndProvider
(
barcode
.
getPartNumber
(),
barcode
.
getProvider
());
if
(
component
==
null
)
{
//log.info("自动添加[" + barcode.getPartNumber() + "][" + barcode.getProvider() + "]的档案信息[" + barcode.getPlateSize() + "x" + barcode.getHeight() + "]");
component
=
new
Component
();
component
.
setPartNumber
(
barcode
.
getPartNumber
());
component
.
setAmount
(
barcode
.
getAmount
());
component
.
setPlateSize
(
barcode
.
getPlateSize
());
component
.
setHeight
(
barcode
.
getHeight
());
component
.
setName
(
barcode
.
getPartNumber
());
component
.
setProvider
(
barcode
.
getProvider
());
component
.
setType
(
COMPONENT_TYPE
.
COMPONENT
);
componentManager
.
save
(
component
);
}
Barcode
dbBarcode
=
barcodeManager
.
findByBarcode
(
barcode
.
getBarcode
());
if
(
dbBarcode
==
null
){
log
.
info
(
"当前的保存的顺序为:"
+
i
+
",目标数量为:"
+
barcodeList
.
size
()+
",barcode为:"
+
barcode
.
getBarcode
()+
"partNumber为:"
+
barcode
.
getPartNumber
());
barcodeManager
.
saveBarcode
(
barcode
);
}
}
return
ResultBean
.
newOkResult
(
""
);
}
protected
String
handleBarcode
(
String
fileURL
)
throws
Exception
{
protected
String
handleBarcode
(
String
fileURL
)
throws
Exception
{
log
.
info
(
"开始读取文件:"
+
fileURL
);
log
.
info
(
"开始读取文件:"
+
fileURL
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论