切换导航条
此项目
正在载入...
登录
mmm-go
/
partnermg
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
陈志颖
4 years ago
提交
2a8149d0402ef0948931ad8e25b4926478e6f5c7
1 个父辈
8a949c26
fix:修改表格内容校验,增加列显示
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
65 行增加
和
79 行删除
pkg/port/beego/controllers/order_info_controlller.go
pkg/port/beego/controllers/order_info_controlller.go
查看文件 @
2a8149d
...
...
@@ -779,29 +779,29 @@ func (c *OrderInfoController) ImportOrderFromExcel() {
// 必填项校验
nullLine
:=
make
([]
interface
{},
0
)
nullFlag
:=
false
for
i
,
row
:=
range
rows
{
if
i
>
2
&&
row
!=
nil
{
rowCnt
++
if
len
(
row
)
==
constant
.
EXCEL_COLUMN
{
// 中间空字符校验
// 单个空格
// 多个空格
var
tmpRow
=
row
var
myRow
[]
string
for
j
,
_
:=
range
row
{
if
j
!=
7
{
// 业务员抽成比例非必填
if
row
[
j
]
==
""
||
row
[
j
]
==
" "
{
// 空字符补位
if
row
[
j
]
==
""
||
row
[
j
]
==
" "
{
// 空字符补位
s
tmpRow
[
j
]
=
""
nullFlag
=
true
r
:=
strconv
.
Itoa
(
i
+
1
)
c
:=
strconv
.
Itoa
(
j
+
1
)
myRow
=
append
(
myRow
,
"第"
+
r
+
"行的第"
+
c
+
"列必填项为空"
)
// 错误信息
myRow
=
append
(
myRow
,
r
)
// 行号
myRow
=
append
(
myRow
,
tmpRow
...
)
// 错误行数据
nullLine
=
append
(
nullLine
,
myRow
)
}
}
}
if
nullFlag
{
myRow
=
append
(
myRow
,
"必填项不能为空"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
myRow
=
append
(
myRow
,
s
)
// 行号
myRow
=
append
(
myRow
,
tmpRow
...
)
// 错误行数据
nullLine
=
append
(
nullLine
,
myRow
)
nullFlag
=
false
}
}
else
if
len
(
row
)
>
0
&&
len
(
row
)
<
constant
.
EXCEL_COLUMN
{
// 尾部空字符校验
var
myRow
[]
string
for
k
:=
0
;
k
<
constant
.
EXCEL_COLUMN
-
len
(
row
);
k
++
{
// 空字符补位
...
...
@@ -838,17 +838,21 @@ func (c *OrderInfoController) ImportOrderFromExcel() {
if
i
>
2
&&
row
!=
nil
&&
len
(
row
)
==
constant
.
EXCEL_COLUMN
{
// 数据行
var
myRow
[]
string
for
j
,
cell
:=
range
row
{
r
:=
strconv
.
Itoa
(
i
+
1
)
c
:=
strconv
.
Itoa
(
j
+
1
)
switch
j
{
case
0
,
1
,
2
,
3
,
4
,
5
,
8
:
// 订单号、发货单号、客户名称、订单区域、编号、合伙人、产品名称长度校验
{
cellStr
:=
strings
.
TrimSpace
(
cell
)
lenCellStr
:=
utf8
.
RuneCountInString
(
cellStr
)
if
lenCellStr
>
50
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
tableHeader
[
j
+
2
]
+
"长度超过50位,请重新输入"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列"
+
tableHeader
[
j
+
2
]
+
"长度超过50位,请重新输入"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
}
...
...
@@ -856,139 +860,121 @@ func (c *OrderInfoController) ImportOrderFromExcel() {
{
if
!
utils
.
IsContain
(
partnerType
,
cell
)
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"合伙人类型须为以下类型:事业合伙、业务合伙、研发合伙、业务-产品应用合伙"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列合伙人类型错误,合伙人类型必须为以下类型:事业合伙、业务合伙、研发合伙、业务-产品应用合伙"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
}
case
7
:
// 业务员抽成比例,非必填,精确到小数点后两位
{
var
(
typeErrFlag
bool
lenErrFlag
bool
ratioErrFlag
bool
)
if
len
(
cell
)
>
0
{
// 参数类型转换
shareRatio
,
err
:=
strconv
.
ParseFloat
(
cell
,
64
)
if
err
!=
nil
{
typeErrFlag
=
true
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列业务员抽成比例格式错误,业务员抽成比例必须为数字"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 比例不能超过100%
if
shareRatio
>
100
{
ratioErrFlag
=
true
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列业务员抽成比例超过限额,请输入正确的业务员抽成比例,并保留两位小数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 长度校验
regexpStr
:=
`^(100|[1-9]\d|\d)(.\d{1,2})?$`
ok
:=
regexp
.
MustCompile
(
regexpStr
)
.
MatchString
(
cell
)
if
!
ok
{
lenErrFlag
=
true
}
if
typeErrFlag
||
lenErrFlag
||
ratioErrFlag
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"业务员抽成比例格式错误,请输入正确的业务员抽成比例,保留两位小数"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列业务员抽成比例超过最大长度,请输入正确的业务员抽成比例,并保留两位小数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
typeErrFlag
=
false
lenErrFlag
=
false
ratioErrFlag
=
false
}
}
}
case
9
:
// 数量不超过16位正整数
{
var
(
typeErrFlag
bool
lenErrFlag
bool
)
//参数类型转换
orderNum
,
err
:=
strconv
.
ParseInt
(
cell
,
10
,
64
)
if
err
!=
nil
{
typeErrFlag
=
true
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列产品数量格式错误,产品数量必须整数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 长度校验
if
orderNum
>
1e16
{
lenErrFlag
=
true
}
if
typeErrFlag
||
lenErrFlag
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"数量长度超过最大限制十六位整数,请重新填写"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列产品数量长度超过最大限制十六位整数,请重新填写"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
typeErrFlag
=
false
lenErrFlag
=
false
}
}
case
10
:
// 单价,精确到小数点后两位,小数点左侧最多可输入16位数字
{
// 参数类型转换
univalent
,
err
:=
strconv
.
ParseFloat
(
cell
,
64
)
if
err
!=
nil
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"单价格式错误,请输入正确的单价,保留两位小数点,小数点前面不能超过十六位数字"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列单价格式错误,产品单价必须为数字类型"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 长度校验
if
univalent
>=
1e16
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"单价格式错误,请输入正确的单价,保留两位小数点,小数点前面不能超过十六位数字"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列产品单价超过最大限制,产品单价小数点前面不能超过十六位数字,并保留两位小数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
}
case
11
:
// 合伙人分红比例,精确到小数点后两位
{
var
(
typeErrFlag
bool
lenErrFlag
bool
ratioErrFlag
bool
)
//参数类型转换
partnerRatio
,
err
:=
strconv
.
ParseFloat
(
cell
,
64
)
if
err
!=
nil
{
typeErrFlag
=
true
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列合伙人分红比例类型错误,合伙人分红比例必须为数字"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 合伙人分红比例超额
if
partnerRatio
>
100
{
ratioErrFlag
=
true
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列合伙人分红比例超过限额,请输入正确的合伙人分红比例,并保留两位小数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
}
// 长度判断
regexpStr
:=
`^(100|[1-9]\d|\d)(.\d{1,2})?$`
ok
:=
regexp
.
MustCompile
(
regexpStr
)
.
MatchString
(
cell
)
if
!
ok
{
lenErrFlag
=
true
}
if
typeErrFlag
||
lenErrFlag
||
ratioErrFlag
{
var
tmpRow
[]
string
tmpRow
=
append
(
tmpRow
,
"合伙人分红比例格式错误,请输入正确的合伙人分红比例,保留两位小数"
)
// 错误信息
s
:=
strconv
.
Itoa
(
i
+
1
)
tmpRow
=
append
(
tmpRow
,
s
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
tmpRow
=
append
(
tmpRow
,
"第"
+
r
+
"行第"
+
c
+
"列合伙人分红比例超过最大长度,请输入正确的合伙人分红比例,并保留两位小数"
)
// 错误信息
tmpRow
=
append
(
tmpRow
,
r
)
// 行号
tmpRow
=
append
(
tmpRow
,
row
...
)
// 错误行数据
myRow
=
tmpRow
typeErrFlag
=
false
lenErrFlag
=
false
ratioErrFlag
=
false
}
}
}
...
...
请
注册
或
登录
后发表评论