代码修改

private bool process_Attribute(List customerMstList, List origCustEntityList)
{
#region 变量定义
CustmerMstEntity custmerErrorLog = new CustmerMstEntity();//用于记录出错行数
string custmerFieldName = string.Empty;//待处理顾客字段名称
string temporaryValue = string.Empty;// 临时字符
List custmerCodeList = new List();//取得所有使用的custcode值
List unusedCustmerCodeList = new List();//取得所有未使用的custcode值
int custmerCode = 0;//顾客编码
int custmerCodeMax = customerMstList.Select(t => int.Parse(t.CustCd.Value)).Max();// 利用済み最大のcustCode
#endregion

        try
        {                
            // 100万件のcodeを作成します
            for (int i = 1; i <= 1000000; i++)
            {
                unusedCustmerCodeList.Add(i);
            }
            
            foreach (var item in customerMstList)
            {                   
                custmerCodeList.Add(int.TryParse(item.CustCd.Value, out custmerCode) ? 0 : int.Parse(item.CustCd.Value));                   
            }
            
            unusedCustmerCodeList = unusedCustmerCodeList.Except(custmerCodeList).ToList().Sort();//消除可用顾客Code
            
            foreach (CustmerMstEntity custMstEntity in customerMstList)
            {
                custmerErrorLog = custMstEntity;//定义行数用于出错时记录Log

                //CustCd + SeikyuCd
                custmerFieldName = "CustCd + SeikyuCd";
                // 入力資料に値がない:"0"(上様)をセット
                if (!string.IsNullOrEmpty(custMstEntity.CustCd.Value))
                {
                    //整数以外の文字を使用:使用済み数値の最大値の次の数値
                    if (!CarCvrt.IsNumber(custMstEntity.CustCd.Value))
                    {
                        //0以下または1000000以上の数値:使用済み数値の最大値の次の数値
                        if (custmerCode < 0 || custmerCode > 1000000)
                        {
                            ++custmerCodeMax;
                            // 1000000以上の数値未使用の数値の中の最小値
                            if (custmerCodeMax > 1000000)
                            {                                    
                                custMstEntity.CustCd.Value = unusedCustmerCodeList[0].ToString();
                                custMstEntity.CustCd.Comment = ConstMGT.Comment_Error;
                                unusedCustmerCodeList.RemoveAt(0);
                            }
                            else
                            {
                                custMstEntity.CustCd.Value = custmerCodeMax.ToString();
                                custMstEntity.CustCd.Comment = ConstMGT.Comment_Error;
                                unusedCustmerCodeList.Remove(custmerCodeMax);
                            }
                        }
                    }
                    else
                    {
                        ++custmerCodeMax;
                        // 1000000以上の数値未使用の数値の中の最小値
                        if (custmerCodeMax > 1000000)
                        {                               
                            custMstEntity.CustCd.Value = unusedCustmerCodeList[0].ToString();
                            custMstEntity.CustCd.Comment = ConstMGT.Comment_Error;
                            unusedCustmerCodeList.RemoveAt(0);
                        }
                        else
                        {
                            custMstEntity.CustCd.Value = custmerCodeMax.ToString();
                            custMstEntity.CustCd.Comment = ConstMGT.Comment_Error;
                            unusedCustmerCodeList.Remove(custmerCodeMax);
                        }
                    }
                }
                else
                {
                    custMstEntity.CustCd.Value = "0";
                }
                custMstEntity.SeikyuCd.Value = custMstEntity.CustCd.Value;

                //CustKanjiName1
                custmerFieldName = "CustKanjiName1";                                                          
                custMstEntity.CustKanjiName1 = KanjiValueConvert(custMstEntity.CustKanjiName1, compList, kshoList, 50);
                
                //CustKanaName
                custmerFieldName = "CustKanaName";                                       
                custMstEntity.CustKanaName = KanaValueConvert(custMstEntity.CustKanaName.Value, 50);

                //CustKsho
                custmerFieldName = "CustKsho";                
                bool flag = false;
                //半角转换为全角
                temporaryValue = ConvertEX.ToDBC(custMstEntity.CustKanjiName1.Value);
                foreach (CompanyTypeEntity cte in compList)
                {
                    //法人種類略称判断
                    if (temporaryValue.Contains(cte.Simple))
                    {
                        flag = true;
                        custMstEntity.CustKsho.Value = "御中";
                        break;
                    }
                    //法人種類全称判断
                    if (temporaryValue.Contains(cte.Detail))
                    {
                        flag = true;
                        custMstEntity.CustKsho.Value = "御中";
                        break;
                    }
                }
                if (!flag)
                {
                    custMstEntity.CustKsho.Value = "様";
                }
            
                //CustPostNo
                custmerFieldName = "CustPostNo";                                  
                custMstEntity.CustPostNo = CustPostNoDataConvert(custMstEntity.CustPostNo);
            
                //CustAdr1 + CustAdr2
                custmerFieldName = "CustAdr1 + CustAdr2";                                   
                custmerFieldName = "CustAdr1 + CustAdr2";
                List<DefineType> custAdrList = CustAdrConvert(custMstEntity.CustAdr1, custMstEntity.CustAdr2, 50);
                custMstEntity.CustAdr1 = custAdrList[0];
                custMstEntity.CustAdr2 = custAdrList[1];
            
                //CustKanaAdr1 + CustKanaAdr2
                custmerFieldName = "CustKanaAdr1 + CustKanaAdr2";
                if (!CustAdrKanaConvert(customerMstList, adrList))
                {
                    return false;
                }
                
                //CustTel                  
                custmerFieldName = "CustTel";
                custMstEntity.CustTel = CustDataConvert(custMstEntity.CustTel, 16);
                //CustKeitai
                custmerFieldName = "CustKeitai";
                custMstEntity.CustKeitai = CustDataConvert(custMstEntity.CustKeitai, 16);
                //CustFax
                custmerFieldName = "CustFax";
                custMstEntity.CustFax = CustDataConvert(custMstEntity.CustFax, 16);

                //ShimeMM1
                custmerFieldName = "ShimeMM1";                                    
                //先全部转为半角
                temporaryValue = ConvertEX.ToDBC(custMstEntity.ShimeMM1.Value);
                if (int.TryParse(temporaryValue, out int result))
                {
                    if (result < 1 || result > 12)
                    {
                        custMstEntity.ShimeMM1 = new DefineType() { Value = "0", Comment = ConstMGT.Comment_Error };
                    }
                    else
                    {
                        custMstEntity.ShimeMM1.Value = temporaryValue;
                    }
                }

                //ShimeDD
                custmerFieldName = "ShimeDD";                                   
                //先全部转为半角
                temporaryValue = ConvertEX.ToDBC(custMstEntity.ShimeDD.Value);
                int intTemp = -99;
                //超范围
                if (!int.TryParse(temporaryValue, out intTemp) || intTemp < 1 || intTemp > 28)
                {
                    custMstEntity.ShimeDD.Value = "99";
                }
                else
                {
                    custMstEntity.ShimeDD.Value = temporaryValue;
                }                              
            }
        }
        catch (Exception ex)
        {
            LogFile.writeLog_Msg($"{ex.Message}\r\n(custMst.csv)源Excel文件中第{custmerErrorLog.Rows.ToString()}行中的 “" + custmerFieldName + "” 出错!");
            return false;
        }
        finally
        {
            custmerErrorLog = null;
            temporaryValue = string.Empty;
        }
        
        return true;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值