/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_ATTEN_SETTING GetModel(decimal ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 ID,DUTY_TYPE,DUTY_LATE_MIN,DUTY_LATE_MAX,DUTY_LATE_PUNISH,DUTY_LEAVE_MIN,DUTY_LEAVE_MAX,DUTY_LEAVE_PUNISH,DUTY_EXTRA_MIN,DUTY_SWING_TIMES,DUTY_ON_TIME1,DUTY_OFF_TIME1,DUTY_ON_TIME2,DUTY_OFF_TIME2,DUTY_ONLY_ON,DUTY_ON_EARLIEST,DUTY_WORK_LENGTH,DUTY_FULL_TIME,DUTY_SAT_TYPE,DUTY_SUN_TYPE from SMT_ATTEN_SETTING "); strSql.Append(" where ID=@ID"); SqlParameter[] parameters = { new SqlParameter("@ID", SqlDbType.Decimal) }; parameters[0].Value = ID; Maticsoft.Model.SMT_ATTEN_SETTING model = new Maticsoft.Model.SMT_ATTEN_SETTING(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
private void AttenSetting_Load(object sender, EventArgs e) { cboLatePunish.SelectedIndex = 1; cboLeavePunish.SelectedIndex = 1; CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_ATTEN_SETTING settingBll = new Maticsoft.BLL.SMT_ATTEN_SETTING(); var settings = settingBll.GetModelList("DUTY_TYPE=0");//查找正常班 if (settings.Count == 0) { WinInfoHelper.ShowInfoWindow(this, "无正常班设置!"); return; } setting = settings[0]; this.Invoke(new Action(() => { DateTime now = DateTime.Now.Date; dtiOnDuty.Value = now + setting.DUTY_ON_TIME1; dtiOffDuty.Value = now + setting.DUTY_OFF_TIME1; dtiEarliestTime.Value = now + setting.DUTY_ON_EARLIEST; iiLateMin.Value = setting.DUTY_LATE_MIN; iiLateMax.Value = setting.DUTY_LATE_MAX; iiLeaveMin.Value = setting.DUTY_LEAVE_MIN; iiLeaveMax.Value = setting.DUTY_LEAVE_MAX; if (setting.DUTY_LATE_PUNISH == 0) { cboLatePunish.SelectedIndex = 0; } else if (setting.DUTY_LATE_PUNISH == 1) { cboLatePunish.SelectedIndex = 2; } else { cboLatePunish.SelectedIndex = 1; } if (setting.DUTY_LEAVE_PUNISH == 0) { cboLeavePunish.SelectedIndex = 0; } else if (setting.DUTY_LEAVE_PUNISH == 1) { cboLeavePunish.SelectedIndex = 2; } else { cboLeavePunish.SelectedIndex = 1; } cbOnlyOn.Checked = setting.DUTY_ONLY_ON; if (setting.DUTY_SAT_TYPE == 0) { cbSatSetting0.Checked = true; } else if (setting.DUTY_SAT_TYPE == 1) { cbSatSetting1.Checked = true; } else { cbSatSetting2.Checked = true; } if (setting.DUTY_SUN_TYPE == 0) { cbSunSetting0.Checked = true; } else if (setting.DUTY_SUN_TYPE == 1) { cbSunSetting1.Checked = true; } else { cbSunSetting2.Checked = true; } })); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "读取正常班设置异常!"); log.Error("读取考勤设置异常:", ex); } }); waiting.Show(this); }
private void btnSave_Click(object sender, EventArgs e) { if (setting == null) { setting = new Maticsoft.Model.SMT_ATTEN_SETTING(); setting.ID = -1; setting.DUTY_TYPE = 0; } setting.DUTY_ON_TIME1 = dtiOnDuty.Value.TimeOfDay; setting.DUTY_OFF_TIME1 = dtiOffDuty.Value.TimeOfDay; setting.DUTY_ON_EARLIEST = dtiEarliestTime.Value.TimeOfDay; setting.DUTY_LATE_MIN = iiLateMin.Value; setting.DUTY_LATE_MAX = iiLateMax.Value; setting.DUTY_LEAVE_MIN = iiLeaveMin.Value; setting.DUTY_LEAVE_MAX = iiLeaveMax.Value; if (cboLatePunish.SelectedIndex == 0) { setting.DUTY_LATE_PUNISH = 0; } else if (cboLatePunish.SelectedIndex == 2) { setting.DUTY_LATE_PUNISH = 1; } else { setting.DUTY_LATE_PUNISH = 0.5M; } if (cboLeavePunish.SelectedIndex == 0) { setting.DUTY_LEAVE_PUNISH = 0; } else if (cboLeavePunish.SelectedIndex == 2) { setting.DUTY_LEAVE_PUNISH = 1; } else { setting.DUTY_LEAVE_PUNISH = 0.5M; } setting.DUTY_ONLY_ON = cbOnlyOn.Checked; if (cbSatSetting0.Checked) { setting.DUTY_SAT_TYPE = 0; } else if (cbSatSetting1.Checked) { setting.DUTY_SAT_TYPE = 1; } else { setting.DUTY_SAT_TYPE = 2; } if (cbSunSetting0.Checked) { setting.DUTY_SUN_TYPE = 0; } else if (cbSunSetting1.Checked) { setting.DUTY_SUN_TYPE = 1; } else { setting.DUTY_SUN_TYPE = 2; } CtrlWaiting waiting = new CtrlWaiting("正在保存...", () => { try { Maticsoft.BLL.SMT_ATTEN_SETTING settingBll = new Maticsoft.BLL.SMT_ATTEN_SETTING(); if (setting.ID == -1) { settingBll.Add(setting); SmtLog.Info("设置", "设置考勤正常班"); } else { settingBll.Update(setting); SmtLog.Info("设置", "更新考勤正常班"); } WinInfoHelper.ShowInfoWindow(this, "保存成功。"); } catch (System.Exception ex) { WinInfoHelper.ShowInfoWindow(this, "保存设置异常!" + ex.Message); log.Error("保存正常班设置异常:" + ex.Message, ex); } }); waiting.Show(this); }
private void StartCreateReport() { DateTime dtStart = dtpStart.Value.Date; DateTime dtEnd = dtpEnd.Value.Date; CtrlWaiting waiting = new CtrlWaiting("正在生成...", () => { try { Maticsoft.BLL.SMT_ATTEN_SETTING settingBll = new Maticsoft.BLL.SMT_ATTEN_SETTING(); var settings = settingBll.GetModelList("DUTY_TYPE=0");//查找正常班 if (settings.Count == 0) { WinInfoHelper.ShowInfoWindow(this, "生成报表中断:无正常班设置,请设置正常班!"); return; } DateTime dt = dtStart; Maticsoft.Model.SMT_ATTEN_SETTING setting = settings[0]; Maticsoft.BLL.SMT_ATTEN_REPORT reportBll = new Maticsoft.BLL.SMT_ATTEN_REPORT(); while (dt <= dtEnd) { bool isweekend = false; int weekendType = 0; if (dt.DayOfWeek == DayOfWeek.Saturday) { isweekend = true; weekendType = setting.DUTY_SAT_TYPE; } else if (dt.DayOfWeek == DayOfWeek.Sunday) { isweekend = true; weekendType = setting.DUTY_SUN_TYPE; } if (isweekend && weekendType == 1)//全天上班 { isweekend = false; } else if (isweekend && weekendType == 0)//全天休息 { Maticsoft.DBUtility.DbHelperSQL.ExecuteSql("delete from SMT_ATTEN_REPORT where ATTEN_DATE='" + dt.ToString("yyyy-MM-dd") + "'"); goto End;//直接结束 } DateTime earliest = dt.Date + setting.DUTY_ON_EARLIEST; DateTime ontime1 = dt.Date + setting.DUTY_ON_TIME1; DateTime offtime1 = dt.Date + setting.DUTY_OFF_TIME1; string sql = string.Format("select t.RECORD_DATE,t.STAFF_ID from SMT_CARD_RECORDS t where t.RECORD_REASON='Swipe' and t.STAFF_ID>=0 and t.RECORD_DATE>='{0} 00:00:00' and t.RECORD_DATE<'{1} 00:00:00' and t.STAFF_ID in (select ssi.ID from SMT_STAFF_INFO ssi where ssi.IS_DELETE=0)", dt.ToString("yyyy-MM-dd"), dt.AddDays(1).ToString("yyyy-MM-dd")); DataTable dateTable = Maticsoft.DBUtility.DbHelperSQL.Query(sql).Tables[0]; List <Record> records = new List <Record>(); foreach (DataRow item in dateTable.Rows) { Record record = new Record(); record.StaffId = (decimal)item[1]; record.RecordTime = (DateTime)item[0]; records.Add(record); } var g = records.GroupBy(m => m.StaffId); List <decimal> staffIds = new List <decimal>(); foreach (var list in g) { List <Record> l = list.ToList();//获取一个职员当天的刷卡记录 staffIds.Add(l[0].StaffId); Maticsoft.Model.SMT_ATTEN_REPORT report = new Maticsoft.Model.SMT_ATTEN_REPORT(); report.ATTEN_DATE = dt.Date; report.STAFF_ID = l[0].StaffId; report.ATTEN_SWIPE_TIMES = setting.DUTY_SWING_TIMES; #region 班计算 List <Record> onRecords = l.FindAll(m => m.RecordTime >= earliest && m.RecordTime <= ontime1.AddMinutes(setting.DUTY_LATE_MAX)); if (onRecords.Count == 0)//上班未打卡,算旷工 { report.ATTEN_ON_STATE = "旷工(上班)"; report.ATTEN_AWAY_DAY = setting.DUTY_LATE_PUNISH; report.ATTEN_UNSWIPE_TIMES = 1; } else { DateTime minDate = onRecords.Min(m => m.RecordTime); report.ATTEN_ON_TIME = minDate.TimeOfDay; if (minDate <= ontime1.AddMinutes(setting.DUTY_LATE_MIN))//正常上班 { report.ATTEN_ON_STATE = "正常"; } else /* if (minDate<=ontime1.AddMinutes(setting.DUTY_LATE_MAX))*///迟到 { report.ATTEN_ON_STATE = "迟到"; report.ATTEN_LATE_MIN = (int)(minDate - ontime1).TotalMinutes; } } #endregion #region 班计算 if (!setting.DUTY_ONLY_ON || !isweekend) { onRecords = l.FindAll(m => m.RecordTime >= offtime1.AddMinutes(-setting.DUTY_LEAVE_MAX)); if (onRecords.Count == 0)//下班未打卡,算旷工 { report.ATTEN_OFF_STATE = "旷工(下班)"; if (report.ATTEN_AWAY_DAY == null) { report.ATTEN_AWAY_DAY = 0; } report.ATTEN_AWAY_DAY += setting.DUTY_LATE_PUNISH; if (report.ATTEN_UNSWIPE_TIMES == null) { report.ATTEN_UNSWIPE_TIMES = 0; } report.ATTEN_UNSWIPE_TIMES += 1; } else { DateTime maxDate = onRecords.Max(m => m.RecordTime); report.ATTEN_OFF_TIME = maxDate.TimeOfDay; if (maxDate < offtime1.AddMinutes(-setting.DUTY_LEAVE_MIN))//早退 { report.ATTEN_OFF_STATE = "早退"; report.ATTEN_LEAVE_MIN = (int)(offtime1 - maxDate).TotalMinutes; } else if (maxDate < offtime1.AddMinutes(setting.DUTY_EXTRA_MIN)) { report.ATTEN_OFF_STATE = "正常"; } else { report.ATTEN_OFF_STATE = "加班"; report.ATTEN_EXTRA_MIN = (int)(maxDate - offtime1).TotalMinutes; } } } #endregion var exist = reportBll.GetModelList("ATTEN_DATE='" + dt.Date.ToString("yyyy-MM-dd 00:00:00") + "' and STAFF_ID=" + report.STAFF_ID); if (exist.Count > 0) { report.ID = exist[0].ID; reportBll.Update(report); } else { reportBll.Add(report); } } sql = "select ID from SMT_STAFF_INFO where IS_DELETE=0 "; if (staffIds.Count > 0) { sql += " and Id not in (" + string.Join(",", staffIds.ToArray()) + ")"; } DataTable staffTables = Maticsoft.DBUtility.DbHelperSQL.Query(sql).Tables[0]; foreach (DataRow sid in staffTables.Rows) { Maticsoft.Model.SMT_ATTEN_REPORT report = new Maticsoft.Model.SMT_ATTEN_REPORT(); report.ATTEN_DATE = dt.Date; report.STAFF_ID = (decimal)sid[0]; report.ATTEN_SWIPE_TIMES = setting.DUTY_SWING_TIMES; report.ATTEN_ON_STATE = "旷工"; if (isweekend) { report.ATTEN_AWAY_DAY = 0.5M; } else { report.ATTEN_AWAY_DAY = 1M; report.ATTEN_OFF_STATE = "旷工"; } report.ATTEN_UNSWIPE_TIMES = setting.DUTY_SWING_TIMES; var exist = reportBll.GetModelList("ATTEN_DATE='" + dt.Date.ToString("yyyy-MM-dd 00:00:00") + "' and STAFF_ID=" + report.STAFF_ID); if (exist.Count > 0) { report.ID = exist[0].ID; reportBll.Update(report); } else { reportBll.Add(report); } } End: dt = dt.AddDays(1); } WinInfoHelper.ShowInfoWindow(this, "生成报表结束!"); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "生成报表异常:" + ex.Message); log.Error("生成报表异常:" + ex.Message, ex); } }); waiting.Show(this); }
/// <summary> /// 增加一条数据 /// </summary> public decimal Add(Maticsoft.Model.SMT_ATTEN_SETTING model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into SMT_ATTEN_SETTING("); strSql.Append("DUTY_TYPE,DUTY_LATE_MIN,DUTY_LATE_MAX,DUTY_LATE_PUNISH,DUTY_LEAVE_MIN,DUTY_LEAVE_MAX,DUTY_LEAVE_PUNISH,DUTY_EXTRA_MIN,DUTY_SWING_TIMES,DUTY_ON_TIME1,DUTY_OFF_TIME1,DUTY_ON_TIME2,DUTY_OFF_TIME2,DUTY_ONLY_ON,DUTY_ON_EARLIEST,DUTY_WORK_LENGTH,DUTY_FULL_TIME,DUTY_SAT_TYPE,DUTY_SUN_TYPE)"); strSql.Append(" values ("); strSql.Append("@DUTY_TYPE,@DUTY_LATE_MIN,@DUTY_LATE_MAX,@DUTY_LATE_PUNISH,@DUTY_LEAVE_MIN,@DUTY_LEAVE_MAX,@DUTY_LEAVE_PUNISH,@DUTY_EXTRA_MIN,@DUTY_SWING_TIMES,@DUTY_ON_TIME1,@DUTY_OFF_TIME1,@DUTY_ON_TIME2,@DUTY_OFF_TIME2,@DUTY_ONLY_ON,@DUTY_ON_EARLIEST,@DUTY_WORK_LENGTH,@DUTY_FULL_TIME,@DUTY_SAT_TYPE,@DUTY_SUN_TYPE)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@DUTY_TYPE", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_LATE_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_LATE_MAX", SqlDbType.Int, 4), new SqlParameter("@DUTY_LATE_PUNISH", SqlDbType.Float, 8), new SqlParameter("@DUTY_LEAVE_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_LEAVE_MAX", SqlDbType.Int, 4), new SqlParameter("@DUTY_LEAVE_PUNISH", SqlDbType.Float, 8), new SqlParameter("@DUTY_EXTRA_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_SWING_TIMES", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_ON_TIME1", SqlDbType.Time, 5), new SqlParameter("@DUTY_OFF_TIME1", SqlDbType.Time, 5), new SqlParameter("@DUTY_ON_TIME2", SqlDbType.Time, 5), new SqlParameter("@DUTY_OFF_TIME2", SqlDbType.Time, 5), new SqlParameter("@DUTY_ONLY_ON", SqlDbType.Bit, 1), new SqlParameter("@DUTY_ON_EARLIEST", SqlDbType.Time, 5), new SqlParameter("@DUTY_WORK_LENGTH", SqlDbType.Float, 8), new SqlParameter("@DUTY_FULL_TIME", SqlDbType.Bit, 1), new SqlParameter("@DUTY_SAT_TYPE", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_SUN_TYPE", SqlDbType.TinyInt, 1) }; parameters[0].Value = model.DUTY_TYPE; parameters[1].Value = model.DUTY_LATE_MIN; parameters[2].Value = model.DUTY_LATE_MAX; parameters[3].Value = model.DUTY_LATE_PUNISH; parameters[4].Value = model.DUTY_LEAVE_MIN; parameters[5].Value = model.DUTY_LEAVE_MAX; parameters[6].Value = model.DUTY_LEAVE_PUNISH; parameters[7].Value = model.DUTY_EXTRA_MIN; parameters[8].Value = model.DUTY_SWING_TIMES; parameters[9].Value = model.DUTY_ON_TIME1; parameters[10].Value = model.DUTY_OFF_TIME1; parameters[11].Value = model.DUTY_ON_TIME2; parameters[12].Value = model.DUTY_OFF_TIME2; parameters[13].Value = model.DUTY_ONLY_ON; parameters[14].Value = model.DUTY_ON_EARLIEST; parameters[15].Value = model.DUTY_WORK_LENGTH; parameters[16].Value = model.DUTY_FULL_TIME; parameters[17].Value = model.DUTY_SAT_TYPE; parameters[18].Value = model.DUTY_SUN_TYPE; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToDecimal(obj)); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_ATTEN_SETTING DataRowToModel(DataRow row) { Maticsoft.Model.SMT_ATTEN_SETTING model = new Maticsoft.Model.SMT_ATTEN_SETTING(); if (row != null) { if (row["ID"] != null && row["ID"].ToString() != "") { model.ID = decimal.Parse(row["ID"].ToString()); } if (row["DUTY_TYPE"] != null && row["DUTY_TYPE"].ToString() != "") { model.DUTY_TYPE = int.Parse(row["DUTY_TYPE"].ToString()); } if (row["DUTY_LATE_MIN"] != null && row["DUTY_LATE_MIN"].ToString() != "") { model.DUTY_LATE_MIN = int.Parse(row["DUTY_LATE_MIN"].ToString()); } if (row["DUTY_LATE_MAX"] != null && row["DUTY_LATE_MAX"].ToString() != "") { model.DUTY_LATE_MAX = int.Parse(row["DUTY_LATE_MAX"].ToString()); } if (row["DUTY_LATE_PUNISH"] != null && row["DUTY_LATE_PUNISH"].ToString() != "") { model.DUTY_LATE_PUNISH = decimal.Parse(row["DUTY_LATE_PUNISH"].ToString()); } if (row["DUTY_LEAVE_MIN"] != null && row["DUTY_LEAVE_MIN"].ToString() != "") { model.DUTY_LEAVE_MIN = int.Parse(row["DUTY_LEAVE_MIN"].ToString()); } if (row["DUTY_LEAVE_MAX"] != null && row["DUTY_LEAVE_MAX"].ToString() != "") { model.DUTY_LEAVE_MAX = int.Parse(row["DUTY_LEAVE_MAX"].ToString()); } if (row["DUTY_LEAVE_PUNISH"] != null && row["DUTY_LEAVE_PUNISH"].ToString() != "") { model.DUTY_LEAVE_PUNISH = decimal.Parse(row["DUTY_LEAVE_PUNISH"].ToString()); } if (row["DUTY_EXTRA_MIN"] != null && row["DUTY_EXTRA_MIN"].ToString() != "") { model.DUTY_EXTRA_MIN = int.Parse(row["DUTY_EXTRA_MIN"].ToString()); } if (row["DUTY_SWING_TIMES"] != null && row["DUTY_SWING_TIMES"].ToString() != "") { model.DUTY_SWING_TIMES = int.Parse(row["DUTY_SWING_TIMES"].ToString()); } if (row["DUTY_ON_TIME1"] != null && row["DUTY_ON_TIME1"].ToString() != "") { model.DUTY_ON_TIME1 = TimeSpan.Parse(row["DUTY_ON_TIME1"].ToString()); } if (row["DUTY_OFF_TIME1"] != null && row["DUTY_OFF_TIME1"].ToString() != "") { model.DUTY_OFF_TIME1 = TimeSpan.Parse(row["DUTY_OFF_TIME1"].ToString()); } if (row["DUTY_ON_TIME2"] != null && row["DUTY_ON_TIME2"].ToString() != "") { model.DUTY_ON_TIME2 = TimeSpan.Parse(row["DUTY_ON_TIME2"].ToString()); } if (row["DUTY_OFF_TIME2"] != null && row["DUTY_OFF_TIME2"].ToString() != "") { model.DUTY_OFF_TIME2 = TimeSpan.Parse(row["DUTY_OFF_TIME2"].ToString()); } if (row["DUTY_ONLY_ON"] != null && row["DUTY_ONLY_ON"].ToString() != "") { if ((row["DUTY_ONLY_ON"].ToString() == "1") || (row["DUTY_ONLY_ON"].ToString().ToLower() == "true")) { model.DUTY_ONLY_ON = true; } else { model.DUTY_ONLY_ON = false; } } if (row["DUTY_ON_EARLIEST"] != null && row["DUTY_ON_EARLIEST"].ToString() != "") { model.DUTY_ON_EARLIEST = TimeSpan.Parse(row["DUTY_ON_EARLIEST"].ToString()); } if (row["DUTY_WORK_LENGTH"] != null && row["DUTY_WORK_LENGTH"].ToString() != "") { model.DUTY_WORK_LENGTH = decimal.Parse(row["DUTY_WORK_LENGTH"].ToString()); } if (row["DUTY_FULL_TIME"] != null && row["DUTY_FULL_TIME"].ToString() != "") { if ((row["DUTY_FULL_TIME"].ToString() == "1") || (row["DUTY_FULL_TIME"].ToString().ToLower() == "true")) { model.DUTY_FULL_TIME = true; } else { model.DUTY_FULL_TIME = false; } } if (row["DUTY_SAT_TYPE"] != null && row["DUTY_SAT_TYPE"].ToString() != "") { model.DUTY_SAT_TYPE = int.Parse(row["DUTY_SAT_TYPE"].ToString()); } if (row["DUTY_SUN_TYPE"] != null && row["DUTY_SUN_TYPE"].ToString() != "") { model.DUTY_SUN_TYPE = int.Parse(row["DUTY_SUN_TYPE"].ToString()); } } return(model); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(Maticsoft.Model.SMT_ATTEN_SETTING model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update SMT_ATTEN_SETTING set "); strSql.Append("DUTY_TYPE=@DUTY_TYPE,"); strSql.Append("DUTY_LATE_MIN=@DUTY_LATE_MIN,"); strSql.Append("DUTY_LATE_MAX=@DUTY_LATE_MAX,"); strSql.Append("DUTY_LATE_PUNISH=@DUTY_LATE_PUNISH,"); strSql.Append("DUTY_LEAVE_MIN=@DUTY_LEAVE_MIN,"); strSql.Append("DUTY_LEAVE_MAX=@DUTY_LEAVE_MAX,"); strSql.Append("DUTY_LEAVE_PUNISH=@DUTY_LEAVE_PUNISH,"); strSql.Append("DUTY_EXTRA_MIN=@DUTY_EXTRA_MIN,"); strSql.Append("DUTY_SWING_TIMES=@DUTY_SWING_TIMES,"); strSql.Append("DUTY_ON_TIME1=@DUTY_ON_TIME1,"); strSql.Append("DUTY_OFF_TIME1=@DUTY_OFF_TIME1,"); strSql.Append("DUTY_ON_TIME2=@DUTY_ON_TIME2,"); strSql.Append("DUTY_OFF_TIME2=@DUTY_OFF_TIME2,"); strSql.Append("DUTY_ONLY_ON=@DUTY_ONLY_ON,"); strSql.Append("DUTY_ON_EARLIEST=@DUTY_ON_EARLIEST,"); strSql.Append("DUTY_WORK_LENGTH=@DUTY_WORK_LENGTH,"); strSql.Append("DUTY_FULL_TIME=@DUTY_FULL_TIME,"); strSql.Append("DUTY_SAT_TYPE=@DUTY_SAT_TYPE,"); strSql.Append("DUTY_SUN_TYPE=@DUTY_SUN_TYPE"); strSql.Append(" where ID=@ID"); SqlParameter[] parameters = { new SqlParameter("@DUTY_TYPE", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_LATE_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_LATE_MAX", SqlDbType.Int, 4), new SqlParameter("@DUTY_LATE_PUNISH", SqlDbType.Float, 8), new SqlParameter("@DUTY_LEAVE_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_LEAVE_MAX", SqlDbType.Int, 4), new SqlParameter("@DUTY_LEAVE_PUNISH", SqlDbType.Float, 8), new SqlParameter("@DUTY_EXTRA_MIN", SqlDbType.Int, 4), new SqlParameter("@DUTY_SWING_TIMES", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_ON_TIME1", SqlDbType.Time, 5), new SqlParameter("@DUTY_OFF_TIME1", SqlDbType.Time, 5), new SqlParameter("@DUTY_ON_TIME2", SqlDbType.Time, 5), new SqlParameter("@DUTY_OFF_TIME2", SqlDbType.Time, 5), new SqlParameter("@DUTY_ONLY_ON", SqlDbType.Bit, 1), new SqlParameter("@DUTY_ON_EARLIEST", SqlDbType.Time, 5), new SqlParameter("@DUTY_WORK_LENGTH", SqlDbType.Float, 8), new SqlParameter("@DUTY_FULL_TIME", SqlDbType.Bit, 1), new SqlParameter("@DUTY_SAT_TYPE", SqlDbType.TinyInt, 1), new SqlParameter("@DUTY_SUN_TYPE", SqlDbType.TinyInt, 1), new SqlParameter("@ID", SqlDbType.Decimal, 9) }; parameters[0].Value = model.DUTY_TYPE; parameters[1].Value = model.DUTY_LATE_MIN; parameters[2].Value = model.DUTY_LATE_MAX; parameters[3].Value = model.DUTY_LATE_PUNISH; parameters[4].Value = model.DUTY_LEAVE_MIN; parameters[5].Value = model.DUTY_LEAVE_MAX; parameters[6].Value = model.DUTY_LEAVE_PUNISH; parameters[7].Value = model.DUTY_EXTRA_MIN; parameters[8].Value = model.DUTY_SWING_TIMES; parameters[9].Value = model.DUTY_ON_TIME1; parameters[10].Value = model.DUTY_OFF_TIME1; parameters[11].Value = model.DUTY_ON_TIME2; parameters[12].Value = model.DUTY_OFF_TIME2; parameters[13].Value = model.DUTY_ONLY_ON; parameters[14].Value = model.DUTY_ON_EARLIEST; parameters[15].Value = model.DUTY_WORK_LENGTH; parameters[16].Value = model.DUTY_FULL_TIME; parameters[17].Value = model.DUTY_SAT_TYPE; parameters[18].Value = model.DUTY_SUN_TYPE; parameters[19].Value = model.ID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }