|
|
@@ -30,11 +30,10 @@ namespace UAS_MES_NEW.Query
|
|
|
li_code.SelectField = "li_code # 线别编号,li_name # 线别名称";
|
|
|
li_code.FormName = Name;
|
|
|
li_code.SetValueField = new string[] { "li_code" };
|
|
|
- li_code.Condition = "li_statuscode='AUDITED'";
|
|
|
+ li_code.Condition = "li_statuscode='AUDITED' and li_longline='"+User.UserCtCode+"'";
|
|
|
li_code.DbChange += Li_code_DbChange;
|
|
|
//初始提示
|
|
|
OperateResult.AppendText(">>请选择线别,输入人员工号后回车执行" + (UpLoadMan.Checked ? "上线" : "下线") + ";下线也可勾选列表后点\"确认下线\"批量处理\n", Color.Black);
|
|
|
- LoadGridData();
|
|
|
em_code.Focus();
|
|
|
}
|
|
|
|
|
|
@@ -113,14 +112,27 @@ namespace UAS_MES_NEW.Query
|
|
|
OperateResult.AppendText("<<人员工号不能为空\n", Color.Red, em_code);
|
|
|
return;
|
|
|
}
|
|
|
+ //线别卡控(上/下线均适用):必须先选线别,且线别必须在登录人长线范围内
|
|
|
+ if (linecode == "")
|
|
|
+ {
|
|
|
+ OperateResult.AppendText("<<请先选择线别\n", Color.Red, li_code);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //登录人资料未维护长线(em_ctcode为空)则不允许扫码
|
|
|
+ if (User.UserCtCode == "")
|
|
|
+ {
|
|
|
+ OperateResult.AppendText("<<人员资料未维护线别,仅拉长可以扫码\n", Color.Red, em_code);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //所选线别必须属于登录人长线(line.li_longline)下的线别,否则上/下线都不允许
|
|
|
+ if (dh.getFieldDataByCondition("line", "count(1)",
|
|
|
+ "li_longline='" + User.UserCtCode + "' and li_code='" + linecode + "' and li_statuscode='AUDITED'").ToString() == "0")
|
|
|
+ {
|
|
|
+ OperateResult.AppendText("<<线别" + linecode + "不在" + User.UserCtCode + "范围内,不允许扫码\n", Color.Red, li_code);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (UpLoadMan.Checked)
|
|
|
{
|
|
|
- //上线:必须选择线别
|
|
|
- if (linecode == "")
|
|
|
- {
|
|
|
- OperateResult.AppendText("<<请先选择线别\n", Color.Red, li_code);
|
|
|
- return;
|
|
|
- }
|
|
|
//一个人只能同时一条线上线:若已在别的线体上线,先把原线体自动下线,再在新线体上线
|
|
|
DataTable dtOn = (DataTable)dh.ExecuteSql("select lm_linecode from loadman where lm_emcode='" + emcode + "' and lm_downtime is null", "select");
|
|
|
if (dtOn.Rows.Count > 0)
|
|
|
@@ -163,9 +175,19 @@ namespace UAS_MES_NEW.Query
|
|
|
em_code.Focus();
|
|
|
return;
|
|
|
}
|
|
|
+ //人员当前在线线体也必须在登录人长线范围内,否则不允许下线
|
|
|
+ string onLineCode = dtOn.Rows[0]["lm_linecode"].ToString();
|
|
|
+ if (dh.getFieldDataByCondition("line", "count(1)",
|
|
|
+ "li_longline='" + User.UserCtCode + "' and li_code='" + onLineCode + "' and li_statuscode='AUDITED'").ToString() == "0")
|
|
|
+ {
|
|
|
+ OperateResult.AppendText("<<" + emcode + "当前在" + onLineCode + "上线,该线别不在" + User.UserCtCode + "范围内,不允许下线\n", Color.Red, em_code);
|
|
|
+ em_code.Clear();
|
|
|
+ em_code.Focus();
|
|
|
+ return;
|
|
|
+ }
|
|
|
dh.ExecuteSql("update loadman set lm_downtime=sysdate where lm_emcode='" + emcode + "' and lm_downtime is null", "update");
|
|
|
OperateResult.AppendText("<<" + emcode + " 已从"
|
|
|
- + dtOn.Rows[0]["lm_linecode"].ToString() + "下线\n", Color.Green, em_code);
|
|
|
+ + onLineCode + "下线\n", Color.Green, em_code);
|
|
|
}
|
|
|
//数据变更后刷新
|
|
|
LoadGridData();
|