예제 #1
0
        public void MesBdZyImport(BLLContext context, EntityBase saveEntity, DataSet ds)
        {
            string           errMess = "", bh = "", zy = "";
            int              rowCount = 1, rowCount2 = 1;;
            MES_BD_ZY        head = null;
            MES_BD_ZY_STATUS body = null;

            DataTable dt = new DataTable();

            dt = ds.Tables[0];

            #region 新增列
            dt.Columns.Add("IMP_ID", typeof(System.String));
            dt.Columns.Add("GUID", typeof(System.String));
            dt.Columns.Add("FGUID", typeof(System.String));
            dt.Columns.Add("CREATE_USER", typeof(System.String));
            dt.Columns.Add("CREATE_USER_NAME", typeof(System.String));
            dt.Columns.Add("CREATE_DATE", typeof(System.DateTime));
            #endregion

            string impId = Guid.NewGuid().ToString();
            foreach (DataRow dr in dt.Rows)
            {
                dr["IMP_ID"]           = impId;
                dr["GUID"]             = Guid.NewGuid().ToString();
                dr["CREATE_USER"]      = context.UserInfo.UserId;
                dr["CREATE_USER_NAME"] = context.UserInfo.UserName;
                dr["CREATE_DATE"]      = DateTime.Now.ToString("yyyy-MM-dd");

                rowCount++;

                #region 必填项
                if (dr["职员编号"].ToString().NullOrEmpty())
                {
                    errMess += "<BR>第" + rowCount + "行:职员编号不能为空!";
                }
                if (dr["工号"].ToString().NullOrEmpty())
                {
                    errMess += "<BR>第" + rowCount + "行:工号不能为空!";
                }
                if (dr["职员代码"].ToString().NullOrEmpty())
                {
                    errMess += "<BR>第" + rowCount + "行:职员代码不能为空!";
                }
                if (dr["职员名"].ToString().NullOrEmpty())
                {
                    errMess += "<BR>第" + rowCount + "行:职员名不能为空!";
                }

                if (!errMess.NullOrEmpty())
                {
                    throw new AppException(errMess);
                }
                #endregion

                if (bh != dr["职员编号"].ToString())
                {
                    #region 表头
                    bh = dr["职员编号"].ToString();

                    head = new MES_BD_ZY();
                    head.EffectDataFields();
                    head.BH           = bh;
                    head.PARENTID     = dr["上级职员编号"].ToString();
                    head.GH           = dr["工号"].ToString();
                    head.ZYNBM        = dr["职员内部名"].ToString();
                    head.CODE         = dr["职员代码"].ToString();
                    head.NAME         = dr["职员名"].ToString();
                    head.STATUS       = dr["职员状态"].ToString();
                    head.SSCJ         = dr["所属车间"].ToString();
                    head.TEL          = dr["移动电话"].ToString();
                    head.ID_CARD      = dr["身份证号码"].ToString();
                    head.KHYH         = dr["开户银行"].ToString();
                    head.KHM          = dr["开户名"].ToString();
                    head.BANK         = dr["银行账号"].ToString();
                    head.WHCD         = dr["文化程度"].ToString();
                    head.BYXX         = dr["毕业学校"].ToString();
                    head.BYZY         = dr["毕业专业"].ToString();
                    head.BYNF         = dr["毕业年份"].ToString();
                    head.PROVINCE     = dr["省份"].ToString();
                    head.CITY         = dr["城市"].ToString();
                    head.ADDRESS      = dr["住址"].ToString();
                    head.MAIL         = dr["电子邮件"].ToString();
                    head.REMARK       = dr["备注"].ToString();
                    head.JS1          = dr["家属1"].ToString();
                    head.JS1_RELATION = dr["家属1关系"].ToString();
                    head.JS1_TEL      = dr["家属1电话"].ToString();
                    head.JS1_ADDRESS  = dr["家属1住址"].ToString();
                    head.JS2          = dr["家属2"].ToString();
                    head.JS2_RELATION = dr["家属2关系"].ToString();
                    head.JS2_TEL      = dr["家属2电话"].ToString();
                    head.JS2_ADDRESS  = dr["家属2住址"].ToString();
                    head.JS3          = dr["家属3"].ToString();
                    head.JS3_RELATION = dr["家属3关系"].ToString();
                    head.JS3_TEL      = dr["家属3电话"].ToString();
                    head.JS3_ADDRESS  = dr["家属3住址"].ToString();
                    head.JS4          = dr["家属4"].ToString();
                    head.JS4_RELATION = dr["家属4关系"].ToString();
                    head.JS4_TEL      = dr["家属4电话"].ToString();
                    head.JS4_ADDRESS  = dr["家属4住址"].ToString();
                    head.CAR_NO       = dr["车牌号"].ToString();
                    head.CAR_TYPE     = dr["车辆类型"].ToString();

                    head.Validate();
                    val.SaveValidate(null, head, true);
                    #endregion
                }
            }
            DataTable dt2 = new DataTable();
            dt2 = ds.Tables[1];
            #region 新增列
            dt2.Columns.Add("IMP_ID", typeof(System.String));
            dt2.Columns.Add("GUID", typeof(System.String));
            //dt2.Columns.Add("FGUID", typeof(System.String));
            dt2.Columns.Add("CREATE_USER", typeof(System.String));
            dt2.Columns.Add("CREATE_USER_NAME", typeof(System.String));
            dt2.Columns.Add("CREATE_DATE", typeof(System.DateTime));
            #endregion
            foreach (DataRow dr in dt2.Rows)
            {
                dr["IMP_ID"]           = impId;
                dr["GUID"]             = Guid.NewGuid().ToString();
                dr["CREATE_USER"]      = context.UserInfo.UserId;
                dr["CREATE_USER_NAME"] = context.UserInfo.UserName;
                dr["CREATE_DATE"]      = DateTime.Now.ToString("yyyy-MM-dd");

                rowCount2++;
                #region 必填项
                if (dr["职员编号"].ToString().NullOrEmpty())
                {
                    errMess += "<BR>第" + rowCount + "行:职员编号不能为空!";
                }
                //if (dr["职员"].ToString().NullOrEmpty())
                //{
                //    errMess += "<BR>第" + rowCount + "行:职员不能为空!";
                //}

                if (!errMess.NullOrEmpty())
                {
                    throw new AppException(errMess);
                }
                if (string.IsNullOrEmpty(dr["入职日期"] as string))
                {
                    dr["入职日期"] = null;
                }
                if (string.IsNullOrEmpty(dr["离职日期"] as string))
                {
                    dr["离职日期"] = null;
                }
                #endregion

                if (zy != dr["职员编号"].ToString())
                {
                    #region 表体
                    body = new MES_BD_ZY_STATUS();
                    body.EffectDataFields();
                    body.BH       = dr["职员编号"].ToString();
                    body.NAME     = dr["职员"].ToString();
                    body.RZ_DATE  = dr["入职日期"].ToString().ToDateNullable();
                    body.LZ_DATE  = dr["离职日期"].ToString().ToDateNullable();
                    body.SSCJ     = dr["所属车间"].ToString();
                    body.SSCSCX   = dr["所属生产线"].ToString();
                    body.ZW       = dr["职务"].ToString();
                    body.GZ       = dr["工种"].ToString();
                    body.SSBZ     = dr["所属班组"].ToString();
                    body.GZJJGZBL = dr["工种计件工资比例"].ToString().ToDoubleNullOrEmptyToZero();
                    body.REMARK   = dr["备注"].ToString();
                    body.Validate();
                    #endregion
                }
            }

            SqlBulkCopyByDataTable(context, "MES_BD_ZY_IMP", "MES_BD_ZY_STATUS_IMP", dt, dt2, impId);

            #region 调用存储过程写入状态表
            var po = new PO("SP_MES_BD_ZY_IMP");
            po["P_IMP_ID"] = impId;
            po.ExecuteProcedure(context.Transaction, "");

            #endregion
        }