11
This commit is contained in:
@@ -114,6 +114,14 @@
|
||||
<f:Button ID="btnHandGenerate" Text="手动生成委托单" ToolTip="勾选需要生成委托单的焊口手动生成委托单" Icon="TableEdit" runat="server"
|
||||
OnClick="btnHandGenerate_Click" >
|
||||
</f:Button>
|
||||
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
<f:Toolbar ID="Toolbar4" Position="Top" runat="server" ToolbarAlign="Right">
|
||||
<Items>
|
||||
<f:Button ID="btnDailyCompPoint" Text="日报完成点口" ToolTip="日报忋完成审核点口" Icon="ArrowUndo"
|
||||
runat="server" OnClick="btnDailyCompPoint_Click">
|
||||
</f:Button>
|
||||
<f:Button ID="btnbtnOpenResetPoint" Text="打开重新点口" ToolTip="打开重新点口" Icon="ArrowUndo"
|
||||
runat="server" OnClick="btnbtnOpenResetPoint_Click">
|
||||
</f:Button>
|
||||
|
||||
@@ -854,6 +854,332 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 日报完成点口
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnDailyCompPoint_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointManageMenuId, Const.BtnOpenResetPoint))
|
||||
{
|
||||
string strSql = @"SELECT jot.ProjectId, pItem.PointBatchId,jot.CoverWelderId,rate.DetectionRateValue
|
||||
FROM dbo.Batch_PointBatchItem pItem
|
||||
LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = pItem.PointBatchId
|
||||
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = pItem.WeldJointId
|
||||
LEFT JOIN dbo.Base_DetectionRate rate ON rate.DetectionRateId=point.DetectionRateId
|
||||
WHERE pItem.IsCompletedPoint=0
|
||||
GROUP BY jot.ProjectId, pItem.PointBatchId,jot.CoverWelderId,rate.DetectionRateValue";
|
||||
DataTable dt = SQLHelper.GetDataTableRunText(strSql, null);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow r in dt.Rows)
|
||||
{
|
||||
// 已处理但批段未关闭的焊口
|
||||
List<PointBatchList> batchNoClose = (from x in Funs.DB.Batch_PointBatchItem
|
||||
join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
|
||||
where x.PointBatchId == r["PointBatchId"].ToString()
|
||||
&& y.CoverWelderId == r["CoverWelderId"].ToString()
|
||||
&& (x.BatchOrder == false || x.BatchOrder == null)
|
||||
&& x.IsCompletedPoint == true
|
||||
&& (y.IsCancel == false || y.IsCancel == null)
|
||||
select new PointBatchList { PointBatchItemId = x.PointBatchItemId, JointAttribute = y.JointAttribute }).ToList();
|
||||
|
||||
// 未处理焊口
|
||||
List<PointBatchList> jotList = (from x in Funs.DB.Batch_PointBatchItem
|
||||
join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
|
||||
where x.PointBatchId == r["PointBatchId"].ToString()
|
||||
&& y.CoverWelderId == r["CoverWelderId"].ToString()
|
||||
&& (x.IsCompletedPoint == false || x.IsCompletedPoint == null)
|
||||
&& (y.IsCancel == false || y.IsCancel == null)
|
||||
orderby x.EnterDate
|
||||
select new PointBatchList { PointBatchItemId = x.PointBatchItemId, JointAttribute = y.JointAttribute }).ToList();
|
||||
|
||||
// 未处理固定焊口
|
||||
List<PointBatchList> GJot = jotList.Where(x=>x.JointAttribute == "固定F").ToList();
|
||||
|
||||
if (Convert.ToInt32(r["DetectionRateValue"]) != 0)
|
||||
{
|
||||
// 批中一段的数量
|
||||
int dnum = Convert.ToInt32((double)100 / (int)r["DetectionRateValue"]);
|
||||
// 已处理但批段未关闭的焊口数量
|
||||
int batchNoCloseNum = batchNoClose.Count();
|
||||
// 未处理焊口数量
|
||||
int jotListNum = jotList.Count();
|
||||
// 未处理固定焊口数量
|
||||
int GJotNum = GJot.Count();
|
||||
|
||||
#region batchNoCloseNum大于0表示批段已处理但批段未关闭的焊口集合里,些批段已点口
|
||||
if (batchNoCloseNum > 0)
|
||||
{
|
||||
if ((batchNoCloseNum + jotListNum) > dnum)
|
||||
{
|
||||
// 关闭上一个批段还需要的数量
|
||||
int closeNum = dnum - batchNoCloseNum;
|
||||
var bachtclose = jotList.GetRange(0, closeNum);
|
||||
// 补足上一个批段,关闭同时状态为已处理
|
||||
foreach (var g in bachtclose)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
foreach (var g in batchNoClose)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
|
||||
if ((jotListNum - closeNum) > dnum)
|
||||
{
|
||||
// 取模(余数)
|
||||
int modelNum = (jotListNum - closeNum) % dnum;
|
||||
// 取整
|
||||
double doubleNum = Math.Ceiling((double)((jotListNum - closeNum) / (double)dnum));
|
||||
int intNum = Convert.ToInt32(doubleNum);
|
||||
// 补足上一个批段后剩余的待处理的列表
|
||||
var remailList = jotList.GetRange(closeNum, (jotListNum - closeNum));
|
||||
|
||||
for (int i = 0; i < intNum; i++)
|
||||
{
|
||||
if (modelNum == 0)
|
||||
{
|
||||
var bachtOrder = remailList.GetRange(i * dnum, dnum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i != intNum - 1)
|
||||
{
|
||||
var bachtOrder = remailList.GetRange(i * dnum, dnum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
// 最后一个段
|
||||
else
|
||||
{
|
||||
var bachtOrder = remailList.GetRange(i * dnum, modelNum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,此批段不关闭
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if ((jotListNum - closeNum) == dnum)
|
||||
{
|
||||
var bachtOrder = jotList.GetRange(closeNum, (jotListNum - closeNum));
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var bachtOrder = jotList.GetRange(closeNum, (jotListNum - closeNum));
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
|
||||
// 状态为已处理状态,此批段没关闭
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 当未关闭的批段+未处理焊口的数量等于探伤比例数量时批段关闭
|
||||
else if (batchNoCloseNum + jotListNum == dnum)
|
||||
{
|
||||
// 批段关闭
|
||||
foreach (var g in batchNoClose)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
// 批段关闭,状态为已处理
|
||||
foreach (var g in jotList)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 待处理完成,但批段未关闭
|
||||
foreach (var g in jotList)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region batchNoCloseNum等于0表示这个批段开始
|
||||
else
|
||||
{
|
||||
if (jotListNum > dnum)
|
||||
{
|
||||
// 取模(余数)
|
||||
int modelNum = jotList.Count() % dnum;
|
||||
// 取整
|
||||
double doubleNum = Math.Ceiling((double)jotList.Count() / (double)dnum);
|
||||
int intNum=Convert.ToInt32(doubleNum);
|
||||
|
||||
for (int i = 0; i < intNum; i++)
|
||||
{
|
||||
if (modelNum == 0)
|
||||
{
|
||||
var bachtOrder = jotList.GetRange(i * dnum, dnum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i != intNum - 1)
|
||||
{
|
||||
var bachtOrder = jotList.GetRange(i * dnum, dnum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
// 最后一个段
|
||||
else
|
||||
{
|
||||
var bachtOrder = jotList.GetRange(i * dnum, modelNum);
|
||||
var bachtOrderG = bachtOrder.Where(p => p.JointAttribute == "固定F").ToList();
|
||||
// 点口
|
||||
GetRandomPoint(bachtOrderG, bachtOrder);
|
||||
// 状态为已处理状态,此批段不关闭
|
||||
foreach (var g in bachtOrder)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (jotListNum == dnum)
|
||||
{
|
||||
// 点口
|
||||
GetRandomPoint(GJot, jotList);
|
||||
// 状态为已处理状态,并关闭此批段
|
||||
foreach (var g in jotList)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 点口
|
||||
GetRandomPoint(GJot, jotList);
|
||||
// 状态为已处理状态,但批段不关闭
|
||||
foreach (var g in jotList)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(g.PointBatchItemId, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 不点口,状态为变已处理,批段完成
|
||||
foreach (var q in jotList)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdateIsCompletedPoint(q.PointBatchItemId, true);
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchOrder(q.PointBatchItemId, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void GetRandomPoint(List<PointBatchList> GJot, List<PointBatchList> jotList)
|
||||
{
|
||||
// 先查找固定口数量,如有固定口,则优先点
|
||||
if (GJot.Count() > 0)
|
||||
{
|
||||
int Gnum = GJot.Count();
|
||||
int rnum = Funs.GetRandomNum(1, Gnum);
|
||||
int j = 1;
|
||||
foreach (var g in GJot)
|
||||
{
|
||||
if (rnum == j)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchItem(g.PointBatchItemId, "1", System.DateTime.Now, null);
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (jotList.Count() > 0)
|
||||
{
|
||||
int rnum = Funs.GetRandomNum(1, jotList.Count());
|
||||
int j = 1;
|
||||
foreach (var g in jotList)
|
||||
{
|
||||
if (rnum == j)
|
||||
{
|
||||
BLL.Batch_PointBatchItemService.UpdatePointBatchItem(g.PointBatchItemId, "1", System.DateTime.Now, null);
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 手动结束批
|
||||
/// </summary>
|
||||
@@ -1632,6 +1958,20 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage
|
||||
return newTrustCode;
|
||||
}
|
||||
|
||||
private class PointBatchList
|
||||
{
|
||||
public string PointBatchItemId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string JointAttribute
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -203,6 +203,24 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnHandGenerate;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar4 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar4;
|
||||
|
||||
/// <summary>
|
||||
/// btnDailyCompPoint 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnDailyCompPoint;
|
||||
|
||||
/// <summary>
|
||||
/// btnbtnOpenResetPoint 控件。
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user