正在显示
1 个修改的文件
包含
58 行增加
和
72 行删除
| @@ -779,28 +779,28 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | @@ -779,28 +779,28 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | ||
| 779 | 779 | ||
| 780 | // 必填项校验 | 780 | // 必填项校验 |
| 781 | nullLine := make([]interface{}, 0) | 781 | nullLine := make([]interface{}, 0) |
| 782 | - nullFlag := false | ||
| 783 | for i, row := range rows { | 782 | for i, row := range rows { |
| 784 | if i > 2 && row != nil { | 783 | if i > 2 && row != nil { |
| 785 | rowCnt++ | 784 | rowCnt++ |
| 786 | if len(row) == constant.EXCEL_COLUMN { // 中间空字符校验 | 785 | if len(row) == constant.EXCEL_COLUMN { // 中间空字符校验 |
| 786 | + // 单个空格 | ||
| 787 | + | ||
| 788 | + // 多个空格 | ||
| 789 | + | ||
| 787 | var tmpRow = row | 790 | var tmpRow = row |
| 788 | var myRow []string | 791 | var myRow []string |
| 789 | for j, _ := range row { | 792 | for j, _ := range row { |
| 790 | if j != 7 { // 业务员抽成比例非必填 | 793 | if j != 7 { // 业务员抽成比例非必填 |
| 791 | - if row[j] == "" || row[j] == " " { // 空字符补位 | 794 | + if row[j] == "" || row[j] == " " { // 空字符补位s |
| 792 | tmpRow[j] = "" | 795 | tmpRow[j] = "" |
| 793 | - nullFlag = true | ||
| 794 | - } | ||
| 795 | - } | ||
| 796 | - } | ||
| 797 | - if nullFlag { | ||
| 798 | - myRow = append(myRow, "必填项不能为空") // 错误信息 | ||
| 799 | - s := strconv.Itoa(i + 1) | ||
| 800 | - myRow = append(myRow, s) // 行号 | 796 | + r := strconv.Itoa(i + 1) |
| 797 | + c := strconv.Itoa(j + 1) | ||
| 798 | + myRow = append(myRow, "第"+r+"行的第"+c+"列必填项为空") // 错误信息 | ||
| 799 | + myRow = append(myRow, r) // 行号 | ||
| 801 | myRow = append(myRow, tmpRow...) // 错误行数据 | 800 | myRow = append(myRow, tmpRow...) // 错误行数据 |
| 802 | nullLine = append(nullLine, myRow) | 801 | nullLine = append(nullLine, myRow) |
| 803 | - nullFlag = false | 802 | + } |
| 803 | + } | ||
| 804 | } | 804 | } |
| 805 | } else if len(row) > 0 && len(row) < constant.EXCEL_COLUMN { // 尾部空字符校验 | 805 | } else if len(row) > 0 && len(row) < constant.EXCEL_COLUMN { // 尾部空字符校验 |
| 806 | var myRow []string | 806 | var myRow []string |
| @@ -838,16 +838,20 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | @@ -838,16 +838,20 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | ||
| 838 | if i > 2 && row != nil && len(row) == constant.EXCEL_COLUMN { // 数据行 | 838 | if i > 2 && row != nil && len(row) == constant.EXCEL_COLUMN { // 数据行 |
| 839 | var myRow []string | 839 | var myRow []string |
| 840 | for j, cell := range row { | 840 | for j, cell := range row { |
| 841 | + | ||
| 842 | + r := strconv.Itoa(i + 1) | ||
| 843 | + c := strconv.Itoa(j + 1) | ||
| 844 | + | ||
| 841 | switch j { | 845 | switch j { |
| 842 | case 0, 1, 2, 3, 4, 5, 8: // 订单号、发货单号、客户名称、订单区域、编号、合伙人、产品名称长度校验 | 846 | case 0, 1, 2, 3, 4, 5, 8: // 订单号、发货单号、客户名称、订单区域、编号、合伙人、产品名称长度校验 |
| 843 | { | 847 | { |
| 844 | cellStr := strings.TrimSpace(cell) | 848 | cellStr := strings.TrimSpace(cell) |
| 845 | lenCellStr := utf8.RuneCountInString(cellStr) | 849 | lenCellStr := utf8.RuneCountInString(cellStr) |
| 850 | + | ||
| 846 | if lenCellStr > 50 { | 851 | if lenCellStr > 50 { |
| 847 | var tmpRow []string | 852 | var tmpRow []string |
| 848 | - tmpRow = append(tmpRow, tableHeader[j+2]+"长度超过50位,请重新输入") // 错误信息 | ||
| 849 | - s := strconv.Itoa(i + 1) | ||
| 850 | - tmpRow = append(tmpRow, s) // 行号 | 853 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列"+tableHeader[j+2]+"长度超过50位,请重新输入") // 错误信息 |
| 854 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 851 | tmpRow = append(tmpRow, row...) // 错误行数据 | 855 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 852 | myRow = tmpRow | 856 | myRow = tmpRow |
| 853 | } | 857 | } |
| @@ -856,139 +860,121 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | @@ -856,139 +860,121 @@ func (c *OrderInfoController) ImportOrderFromExcel() { | ||
| 856 | { | 860 | { |
| 857 | if !utils.IsContain(partnerType, cell) { | 861 | if !utils.IsContain(partnerType, cell) { |
| 858 | var tmpRow []string | 862 | var tmpRow []string |
| 859 | - tmpRow = append(tmpRow, "合伙人类型须为以下类型:事业合伙、业务合伙、研发合伙、业务-产品应用合伙") // 错误信息 | ||
| 860 | - s := strconv.Itoa(i + 1) | ||
| 861 | - tmpRow = append(tmpRow, s) // 行号 | 863 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列合伙人类型错误,合伙人类型必须为以下类型:事业合伙、业务合伙、研发合伙、业务-产品应用合伙") // 错误信息 |
| 864 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 862 | tmpRow = append(tmpRow, row...) // 错误行数据 | 865 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 863 | myRow = tmpRow | 866 | myRow = tmpRow |
| 864 | } | 867 | } |
| 865 | } | 868 | } |
| 866 | case 7: // 业务员抽成比例,非必填,精确到小数点后两位 | 869 | case 7: // 业务员抽成比例,非必填,精确到小数点后两位 |
| 867 | { | 870 | { |
| 868 | - var ( | ||
| 869 | - typeErrFlag bool | ||
| 870 | - lenErrFlag bool | ||
| 871 | - ratioErrFlag bool | ||
| 872 | - ) | ||
| 873 | if len(cell) > 0 { | 871 | if len(cell) > 0 { |
| 872 | + | ||
| 874 | // 参数类型转换 | 873 | // 参数类型转换 |
| 875 | shareRatio, err := strconv.ParseFloat(cell, 64) | 874 | shareRatio, err := strconv.ParseFloat(cell, 64) |
| 876 | if err != nil { | 875 | if err != nil { |
| 877 | - typeErrFlag = true | 876 | + var tmpRow []string |
| 877 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列业务员抽成比例格式错误,业务员抽成比例必须为数字") // 错误信息 | ||
| 878 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 879 | + tmpRow = append(tmpRow, row...) // 错误行数据 | ||
| 880 | + myRow = tmpRow | ||
| 878 | } | 881 | } |
| 879 | 882 | ||
| 880 | // 比例不能超过100% | 883 | // 比例不能超过100% |
| 881 | if shareRatio > 100 { | 884 | if shareRatio > 100 { |
| 882 | - ratioErrFlag = true | 885 | + var tmpRow []string |
| 886 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列业务员抽成比例超过限额,请输入正确的业务员抽成比例,并保留两位小数") // 错误信息 | ||
| 887 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 888 | + tmpRow = append(tmpRow, row...) // 错误行数据 | ||
| 889 | + myRow = tmpRow | ||
| 883 | } | 890 | } |
| 884 | 891 | ||
| 885 | // 长度校验 | 892 | // 长度校验 |
| 886 | regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})?$` | 893 | regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})?$` |
| 887 | ok := regexp.MustCompile(regexpStr).MatchString(cell) | 894 | ok := regexp.MustCompile(regexpStr).MatchString(cell) |
| 888 | if !ok { | 895 | if !ok { |
| 889 | - lenErrFlag = true | ||
| 890 | - } | ||
| 891 | - | ||
| 892 | - if typeErrFlag || lenErrFlag || ratioErrFlag { | ||
| 893 | var tmpRow []string | 896 | var tmpRow []string |
| 894 | - tmpRow = append(tmpRow, "业务员抽成比例格式错误,请输入正确的业务员抽成比例,保留两位小数") // 错误信息 | ||
| 895 | - s := strconv.Itoa(i + 1) | ||
| 896 | - tmpRow = append(tmpRow, s) // 行号 | 897 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列业务员抽成比例超过最大长度,请输入正确的业务员抽成比例,并保留两位小数") // 错误信息 |
| 898 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 897 | tmpRow = append(tmpRow, row...) // 错误行数据 | 899 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 898 | myRow = tmpRow | 900 | myRow = tmpRow |
| 899 | - typeErrFlag = false | ||
| 900 | - lenErrFlag = false | ||
| 901 | - ratioErrFlag = false | ||
| 902 | } | 901 | } |
| 903 | } | 902 | } |
| 904 | } | 903 | } |
| 905 | case 9: // 数量不超过16位正整数 | 904 | case 9: // 数量不超过16位正整数 |
| 906 | { | 905 | { |
| 907 | - var ( | ||
| 908 | - typeErrFlag bool | ||
| 909 | - lenErrFlag bool | ||
| 910 | - ) | ||
| 911 | - | ||
| 912 | //参数类型转换 | 906 | //参数类型转换 |
| 913 | orderNum, err := strconv.ParseInt(cell, 10, 64) | 907 | orderNum, err := strconv.ParseInt(cell, 10, 64) |
| 914 | if err != nil { | 908 | if err != nil { |
| 915 | - typeErrFlag = true | 909 | + var tmpRow []string |
| 910 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列产品数量格式错误,产品数量必须整数") // 错误信息 | ||
| 911 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 912 | + tmpRow = append(tmpRow, row...) // 错误行数据 | ||
| 913 | + myRow = tmpRow | ||
| 916 | } | 914 | } |
| 917 | 915 | ||
| 918 | // 长度校验 | 916 | // 长度校验 |
| 919 | if orderNum > 1e16 { | 917 | if orderNum > 1e16 { |
| 920 | - lenErrFlag = true | ||
| 921 | - } | ||
| 922 | - | ||
| 923 | - if typeErrFlag || lenErrFlag { | ||
| 924 | var tmpRow []string | 918 | var tmpRow []string |
| 925 | - tmpRow = append(tmpRow, "数量长度超过最大限制十六位整数,请重新填写") // 错误信息 | ||
| 926 | - s := strconv.Itoa(i + 1) | ||
| 927 | - tmpRow = append(tmpRow, s) // 行号 | 919 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列产品数量长度超过最大限制十六位整数,请重新填写") // 错误信息 |
| 920 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 928 | tmpRow = append(tmpRow, row...) // 错误行数据 | 921 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 929 | myRow = tmpRow | 922 | myRow = tmpRow |
| 930 | - typeErrFlag = false | ||
| 931 | - lenErrFlag = false | ||
| 932 | } | 923 | } |
| 933 | } | 924 | } |
| 934 | case 10: // 单价,精确到小数点后两位,小数点左侧最多可输入16位数字 | 925 | case 10: // 单价,精确到小数点后两位,小数点左侧最多可输入16位数字 |
| 935 | { | 926 | { |
| 927 | + | ||
| 936 | // 参数类型转换 | 928 | // 参数类型转换 |
| 937 | univalent, err := strconv.ParseFloat(cell, 64) | 929 | univalent, err := strconv.ParseFloat(cell, 64) |
| 938 | if err != nil { | 930 | if err != nil { |
| 939 | var tmpRow []string | 931 | var tmpRow []string |
| 940 | - tmpRow = append(tmpRow, "单价格式错误,请输入正确的单价,保留两位小数点,小数点前面不能超过十六位数字") // 错误信息 | ||
| 941 | - s := strconv.Itoa(i + 1) | ||
| 942 | - tmpRow = append(tmpRow, s) // 行号 | 932 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列单价格式错误,产品单价必须为数字类型") // 错误信息 |
| 933 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 943 | tmpRow = append(tmpRow, row...) // 错误行数据 | 934 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 944 | myRow = tmpRow | 935 | myRow = tmpRow |
| 945 | } | 936 | } |
| 937 | + | ||
| 946 | // 长度校验 | 938 | // 长度校验 |
| 947 | if univalent >= 1e16 { | 939 | if univalent >= 1e16 { |
| 948 | var tmpRow []string | 940 | var tmpRow []string |
| 949 | - tmpRow = append(tmpRow, "单价格式错误,请输入正确的单价,保留两位小数点,小数点前面不能超过十六位数字") // 错误信息 | ||
| 950 | - s := strconv.Itoa(i + 1) | ||
| 951 | - tmpRow = append(tmpRow, s) // 行号 | 941 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列产品单价超过最大限制,产品单价小数点前面不能超过十六位数字,并保留两位小数") // 错误信息 |
| 942 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 952 | tmpRow = append(tmpRow, row...) // 错误行数据 | 943 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 953 | myRow = tmpRow | 944 | myRow = tmpRow |
| 954 | } | 945 | } |
| 955 | } | 946 | } |
| 956 | case 11: // 合伙人分红比例,精确到小数点后两位 | 947 | case 11: // 合伙人分红比例,精确到小数点后两位 |
| 957 | { | 948 | { |
| 958 | - var ( | ||
| 959 | - typeErrFlag bool | ||
| 960 | - lenErrFlag bool | ||
| 961 | - ratioErrFlag bool | ||
| 962 | - ) | ||
| 963 | 949 | ||
| 964 | //参数类型转换 | 950 | //参数类型转换 |
| 965 | partnerRatio, err := strconv.ParseFloat(cell, 64) | 951 | partnerRatio, err := strconv.ParseFloat(cell, 64) |
| 966 | if err != nil { | 952 | if err != nil { |
| 967 | - typeErrFlag = true | 953 | + var tmpRow []string |
| 954 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列合伙人分红比例类型错误,合伙人分红比例必须为数字") // 错误信息 | ||
| 955 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 956 | + tmpRow = append(tmpRow, row...) // 错误行数据 | ||
| 957 | + myRow = tmpRow | ||
| 968 | } | 958 | } |
| 969 | 959 | ||
| 970 | // 合伙人分红比例超额 | 960 | // 合伙人分红比例超额 |
| 971 | if partnerRatio > 100 { | 961 | if partnerRatio > 100 { |
| 972 | - ratioErrFlag = true | 962 | + var tmpRow []string |
| 963 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列合伙人分红比例超过限额,请输入正确的合伙人分红比例,并保留两位小数") // 错误信息 | ||
| 964 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 965 | + tmpRow = append(tmpRow, row...) // 错误行数据 | ||
| 966 | + myRow = tmpRow | ||
| 973 | } | 967 | } |
| 974 | 968 | ||
| 975 | // 长度判断 | 969 | // 长度判断 |
| 976 | regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})?$` | 970 | regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})?$` |
| 977 | ok := regexp.MustCompile(regexpStr).MatchString(cell) | 971 | ok := regexp.MustCompile(regexpStr).MatchString(cell) |
| 978 | if !ok { | 972 | if !ok { |
| 979 | - lenErrFlag = true | ||
| 980 | - } | ||
| 981 | - | ||
| 982 | - if typeErrFlag || lenErrFlag || ratioErrFlag { | ||
| 983 | var tmpRow []string | 973 | var tmpRow []string |
| 984 | - tmpRow = append(tmpRow, "合伙人分红比例格式错误,请输入正确的合伙人分红比例,保留两位小数") // 错误信息 | ||
| 985 | - s := strconv.Itoa(i + 1) | ||
| 986 | - tmpRow = append(tmpRow, s) // 行号 | 974 | + tmpRow = append(tmpRow, "第"+r+"行第"+c+"列合伙人分红比例超过最大长度,请输入正确的合伙人分红比例,并保留两位小数") // 错误信息 |
| 975 | + tmpRow = append(tmpRow, r) // 行号 | ||
| 987 | tmpRow = append(tmpRow, row...) // 错误行数据 | 976 | tmpRow = append(tmpRow, row...) // 错误行数据 |
| 988 | myRow = tmpRow | 977 | myRow = tmpRow |
| 989 | - typeErrFlag = false | ||
| 990 | - lenErrFlag = false | ||
| 991 | - ratioErrFlag = false | ||
| 992 | } | 978 | } |
| 993 | } | 979 | } |
| 994 | } | 980 | } |
-
请 注册 或 登录 后发表评论