ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/WebService1.asmx.cs

848 lines
46 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.IO.Compression;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Web;
using System.Collections;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.Web.Services.Protocols;
using System.Web.Services;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using BLL;
namespace FineUIPro.Web
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod(Description="求和方法")]
public int sum(int a ,int b)
{
return a + b;
}
[WebMethod(Description = "项目焊工")]
public string welderListToJson(string projectId)
{
//var project = BLL.Project_WelderService.GetProjectWelder(projectId);
//string[] welders = new string[project.Count()];
List<Model.Project_Welder> welderList = new List<Model.Project_Welder>();
welderList = BLL.Project_WelderService.GetProjectWelder(projectId);
//foreach (var p in project)
//{
// welderList = BLL.Project_WelderService.GetProjectWelder(p.WED_ID);
// //welderList.Add(welder.WED_Code + welder.WED_Name);
//}
//return BLL.JsonHelper.SerializeObject(welderList);
DataContractJsonSerializer json = new DataContractJsonSerializer(welderList.GetType());
string welderJson = "";
return BLL.JsonHelper.ListToJson(welderList);
//welders = welderList.ToArray();
//return welderJson;
}
[WebMethod(Description = "获取项目焊工")]
public string[] welderList(string projectId)
{
var project = BLL.Project_WelderService.GetProjectWelder(projectId);
string[] welders = new string[project.Count()];
List<string> welderList = new List<string>();
foreach (var p in project)
{
var welder = BLL.HJGL_PersonManageService.GetWelderByWenId(p.WED_ID);
welderList.Add(welder.WED_Code + welder.WED_Name);
}
welders = welderList.ToArray();
return welders;
}
[WebMethod(Description = "hello")]
public string pHelloWorld(string projectId)
{
return projectId + " Hello World";
}
[WebMethod(Description = "日报预提交")]
public string InsertPreWeldReportMain(string jotId)
{
try
{
var jot = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jotId);
Model.HJGL_BO_PreWeldReportMain report = new Model.HJGL_BO_PreWeldReportMain();
report.PreWeldReportId = BLL.SQLHelper.GetNewID(typeof(Model.HJGL_BO_PreWeldReportMain));
report.ProjectId = jot.ProjectId;
report.JOT_ID = jotId;
report.JOT_WeldDate = DateTime.Now;
BLL.Funs.DB.HJGL_BO_PreWeldReportMain.InsertOnSubmit(report);
BLL.Funs.DB.SubmitChanges();
return "日报预提交成功!";
}
catch(Exception e)
{
return "日报预提交失败!";
}
}
/// <summary>
/// 焊接日报提交
/// </summary>
/// <param name="strJson">Json字符串</param>
/// <returns>提示字符串</returns>
[WebMethod(Description = "焊接日报提交")]
public string WeldReportSubmit(string strJson)
{
string message = string.Empty;
JObject obj = JObject.Parse(strJson);
string jotId = obj["jotId"].ToString();
string jot_FloorWelderID = obj["jot_FloorWelderID"].ToString();
string jot_CellWelderID = obj["jot_CellWelderID"].ToString();
string jot_WeldDate = obj["jot_WeldDate"].ToString();
string wlo_CodeID = obj["wlo_CodeID"].ToString();
string jot_DoneDin = obj["jot_DoneDin"].ToString();
string jot_JointAttribute = obj["jot_JointAttribute"].ToString();
string jot_Location = obj["jot_Location"].ToString();
string jot_Sch = obj["jot_Sch"].ToString();
string wme_ID = obj["wme_ID"].ToString();
string jot_WeldMat = obj["jot_WeldMat"].ToString();
string jot_WeldSilk = obj["jot_WeldSilk"].ToString();
string currUser = obj["currUser"].ToString();
string dReportId = BLL.HJGL_WeldReportService.GetDailyReportByWelder(jot_CellWelderID, Convert.ToDateTime(jot_WeldDate));
var newJointInfo = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jotId);
var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(newJointInfo.ISO_ID);
var project = BLL.Base_ProjectService.GetProjectByProjectId(isoInfo.ProjectId);
if (!string.IsNullOrEmpty(jot_CellWelderID) && !string.IsNullOrEmpty(jot_FloorWelderID))
{
var welder = BLL.HJGL_PersonManageService.GetWelderByWenId(jot_CellWelderID);
newJointInfo.JOT_JointStatus = "100";
newJointInfo.JOT_CellWelder = jot_CellWelderID;
newJointInfo.JOT_FloorWelder = jot_FloorWelderID;
newJointInfo.WLO_Code = wlo_CodeID;
if (!string.IsNullOrEmpty(jot_DoneDin))
{
newJointInfo.JOT_DoneDin = Convert.ToDecimal(jot_DoneDin);
}
newJointInfo.JOT_JointAttribute = jot_JointAttribute;
newJointInfo.JOT_Location = jot_Location;
newJointInfo.JOT_Sch = jot_Sch;
newJointInfo.WME_ID = wme_ID;
if (!string.IsNullOrEmpty(jot_WeldMat))
{
newJointInfo.JOT_WeldMat = jot_WeldMat;
}
if (!string.IsNullOrEmpty(jot_WeldSilk))
{
newJointInfo.JOT_WeldSilk = jot_WeldSilk;
}
if (newJointInfo.JOT_Dia.HasValue)
{
var inch = BLL.HJGL_ControlService.GetSizeByDia(newJointInfo.JOT_Dia.Value);//焊口寸经根据外径改变
if (inch != null)
{
newJointInfo.JOT_Size = inch;
newJointInfo.JOT_DoneDin = inch;
}
}
//焊口规格:Φ外径*壁厚
if (newJointInfo.JOT_Dia.HasValue && !string.IsNullOrEmpty(newJointInfo.JOT_Sch))
{
newJointInfo.JOT_JointDesc = "Φ" + newJointInfo.JOT_Dia.Value.ToString() + "×" + jot_Sch;
}
if (!string.IsNullOrEmpty(dReportId))
{
newJointInfo.DReportID = dReportId;
}
else
{
// 先保存日报
Model.HJGL_BO_WeldReportMain newWeldReportMain = new Model.HJGL_BO_WeldReportMain();
newWeldReportMain.ProjectId = newJointInfo.ProjectId;
string perfix = project.ProjectCode + "-" + welder.WED_Code + "-";
string dailyReportNo = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetNewCodeByProjectId", "dbo.HJGL_BO_WeldReportMain", "JOT_DailyReportNo", newJointInfo.ProjectId, perfix);
newWeldReportMain.JOT_DailyReportNo = dailyReportNo;
if (!string.IsNullOrEmpty(isoInfo.BSU_ID))
{
newWeldReportMain.BSU_ID = isoInfo.BSU_ID;
}
newWeldReportMain.JOT_WeldDate = Convert.ToDateTime(jot_WeldDate);
newWeldReportMain.CHT_Tabler = currUser;
newWeldReportMain.CHT_TableDate = DateTime.Now.Date;
string newReportID=BLL.SQLHelper.GetNewID(typeof(Model.HJGL_BO_WeldReportMain));
newWeldReportMain.DReportID = newReportID;
BLL.HJGL_WeldReportService.AddWeldReport(newWeldReportMain);
newJointInfo.DReportID = newReportID;
}
// 再更新焊口
BLL.HJGL_PW_JointInfoService.UpdateJointInfoByDReport(newJointInfo);
//更新焊口号 修改固定焊口号后 +G
BLL.HJGL_PW_JointInfoService.UpdateJointNoAddG(newJointInfo.JOT_ID, newJointInfo.JOT_JointAttribute, "增加");
// 最后再插入批里
// 组批条件
if (newJointInfo != null && !string.IsNullOrEmpty(newJointInfo.InstallationId)
&& !string.IsNullOrEmpty(jot_CellWelderID) && !string.IsNullOrEmpty(jot_FloorWelderID)
&& !string.IsNullOrEmpty(isoInfo.ISC_ID) && !string.IsNullOrEmpty(newJointInfo.NDTR_ID)
&& !string.IsNullOrEmpty(isoInfo.ISO_Executive) && !string.IsNullOrEmpty(newJointInfo.JOTY_ID)
&& !string.IsNullOrEmpty(isoInfo.STE_ID))
{
var batchInfo = from x in Funs.DB.HJGL_BO_Batch
where x.ProjectId == isoInfo.ProjectId
&& x.InstallationId == newJointInfo.InstallationId && x.ISC_ID == isoInfo.ISC_ID
&& x.STE_ID == isoInfo.STE_ID
&& x.ExecStandardId == isoInfo.ISO_Executive && x.JOTY_ID == newJointInfo.JOTY_ID
&& x.NDTR_ID == newJointInfo.NDTR_ID && x.IsSpecial == newJointInfo.IsSpecial
&& (x.BatchIsClosed == null || x.BatchIsClosed == false)
select x;
string batchId = string.Empty;
if (batchInfo.Count() == 0)
{
Model.HJGL_BO_Batch batch = new Model.HJGL_BO_Batch();
batch.BatchId = SQLHelper.GetNewID(typeof(Model.HJGL_BO_Batch));
batchId = batch.BatchId;
//string perfix = ins.InstallationCode + "-" + isoC.ISC_IsoCode + "-" + ser.SER_Abbreviate + "-" + execS.ExecStandardName + "-";
batch.BatchCode = BLL.SQLHelper.RunProcFlowCode("SpGetFlowCode", "dbo.HJGL_BO_Batch", "BatchCode", isoInfo.ProjectId);
batch.ProjectId = isoInfo.ProjectId;
batch.InstallationId = newJointInfo.InstallationId;
batch.ISC_ID = isoInfo.ISC_ID;
batch.STE_ID = isoInfo.STE_ID;
//batch.SER_ID = isoInfo.SER_ID;
batch.ExecStandardId = isoInfo.ISO_Executive;
batch.JOTY_ID = newJointInfo.JOTY_ID;
batch.NDTR_ID = newJointInfo.NDTR_ID;
batch.IsSpecial = newJointInfo.IsSpecial;
batch.BatchStartDate = DateTime.Now.Date;
BLL.HJGL_BO_BatchService.AddBatch(batch);
}
else
{
batchId = batchInfo.First().BatchId;
}
var b = BLL.HJGL_BO_BatchDetailService.GetBatchDetailByJotId(jotId);
if (b == null)
{
Model.HJGL_BO_BatchDetail batchDetail = new Model.HJGL_BO_BatchDetail();
batchDetail.BatchDetailId = SQLHelper.GetNewID(typeof(Model.HJGL_BO_BatchDetail));
batchDetail.BatchId = batchId;
batchDetail.ISO_ID = newJointInfo.ISO_ID;
batchDetail.JOT_ID = jotId;
BLL.Funs.DB.HJGL_BO_BatchDetail.InsertOnSubmit(batchDetail);
BLL.Funs.DB.SubmitChanges();
}
message = "焊口【" + newJointInfo.JOT_JointNo + "】焊接日报提交成功!";
}
else
{
message = "焊口【" + newJointInfo.JOT_JointNo + "】组批条件不能为空!";
}
}
else
{
message = "请选择焊工!";
}
return message;
}
[WebMethod(Description = "返修记录提交")]
public string RepairRecordSubmit(string strJson)
{
string message = string.Empty;
JObject obj = JObject.Parse(strJson);
JArray arr = JArray.Parse(obj["strJson"].ToString());
try
{
foreach (var item in arr)
{
string repairItemRecordId = item["repairItemRecordId"].ToString();
string strIsHotProess = item["isHotHandle"].ToString();
string welderID = item["optWelder"].ToString();
string weldDate = item["weldDate"].ToString();
string currUser = item["currUser"].ToString();
var man = BLL.Sys_UserService.GetUsersByUserId(currUser);
if (!string.IsNullOrEmpty(repairItemRecordId) && !string.IsNullOrEmpty(welderID) && !string.IsNullOrEmpty(weldDate))
{
var hotProessTrustItems = from x in Funs.DB.HJGL_CH_HotProessTrustItem select x;
Model.HJGL_CH_RepairItemRecord record = BLL.HJGL_CH_RepairItemRecordService.GetRepairItemRecordById(repairItemRecordId);
var jot = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(record.JOT_ID);
record.IsWeld = true;
bool isHotProess = Convert.ToBoolean(strIsHotProess);
if (isHotProess) //勾选了热处理委托
{
var oldHotProessTrustItem = (from x in hotProessTrustItems
join y in Funs.DB.HJGL_CH_RepairItemRecord
on x.TrustItemID equals y.RepairItemRecordId
where x.JOT_ID == record.JOT_ID && y.RepairMark == record.RepairMark
orderby x.TrustDate descending
select x).FirstOrDefault();
if (oldHotProessTrustItem == null) //该口本次返修尚未进行热处理委托
{
Model.HJGL_PW_JointInfo joint = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(record.JOT_ID);
Model.HJGL_PW_IsoInfo iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(record.ISO_ID);
Model.Base_Project project = BLL.Base_ProjectService.GetProjectByProjectId(record.ProjectId);
if (!string.IsNullOrEmpty(joint.ProessTypes))
{
string[] strs = joint.ProessTypes.Split('|');
Model.HJGL_CH_HotProessTrust trust = new Model.HJGL_CH_HotProessTrust();
trust.HotProessTrustId = SQLHelper.GetNewID(typeof(Model.Base_Project));
trust.ProjectId = record.ProjectId;
trust.HotProessTrustCode = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetNewCode2ByProjectId", "dbo.HJGL_CH_HotProessTrust", "HotProessTrustCode", record.ProjectId, BLL.Base_ProjectService.GetProjectCode(record.ProjectId) + "-" + string.Format("{0:MMdd}", DateTime.Now) + "-R-");
trust.ProjectName = project.ProjectName;
trust.ConstructionNo = project.ProjectCode;
trust.TrustUnitId = iso.BSU_ID;
trust.TrstManId = currUser;
trust.TrustType = "2"; //返修口
BLL.HJGL_CH_HotProessTrustService.AddCH_HotProessTrust(trust);
foreach (var str in strs)
{
Model.HJGL_CH_HotProessTrustItem newTrustItem = new Model.HJGL_CH_HotProessTrustItem();
newTrustItem.HotProessTrustId = trust.HotProessTrustId;
newTrustItem.JOT_ID = record.JOT_ID;
newTrustItem.ProessTypes = str;
newTrustItem.TrustDate = DateTime.Now;
newTrustItem.TrustItemID = record.RepairItemRecordId;
BLL.HJGL_CH_HotProessTrustService.AddCH_HotProessTrustItem(newTrustItem);
if (newTrustItem.ProessTypes.Contains("4") || newTrustItem.ProessTypes.Contains("5")) //需要进入热处理报告的记录
{
Model.HJGL_HotProessItem oldHotProessItem = (from x in Funs.DB.HJGL_HotProessItem where x.JOT_ID == newTrustItem.JOT_ID && x.ProessTypes == newTrustItem.ProessTypes && x.HotProessTrustId == trust.HotProessTrustId select x).FirstOrDefault();
if (oldHotProessItem == null)
{
Model.HJGL_HotProessItem hotProessItem = new Model.HJGL_HotProessItem();
hotProessItem.HotProessItemId = SQLHelper.GetNewID(typeof(Model.HJGL_HotProessItem));
hotProessItem.JOT_ID = newTrustItem.JOT_ID;
hotProessItem.HotProessTrustId = trust.HotProessTrustId;
hotProessItem.ProessTypes = newTrustItem.ProessTypes;
hotProessItem.SortIndex = BLL.HJGL_HotProessManageEditService.GetSortIndex(trust.HotProessTrustId, newTrustItem.JOT_ID, newTrustItem.ProessTypes);
BLL.HJGL_HotProessManageEditService.AddHotProessItem(hotProessItem, "", null);
}
}
//进入热处理结果反馈
Model.HJGL_CH_HotProessResult oldHotProessResult = (from x in Funs.DB.HJGL_CH_HotProessResult where x.JOT_ID == newTrustItem.JOT_ID && x.ProessTypes == newTrustItem.ProessTypes && x.HotProessTrustId == trust.HotProessTrustId select x).FirstOrDefault();
if (oldHotProessResult == null)
{
Model.HJGL_CH_HotProessResult hotProessResult = new Model.HJGL_CH_HotProessResult();
hotProessResult.JOT_ID = newTrustItem.JOT_ID;
hotProessResult.HotProessTrustId = trust.HotProessTrustId;
hotProessResult.ProessTypes = newTrustItem.ProessTypes;
BLL.HJGL_CH_HotProessResultService.AddHotProessResult(hotProessResult);
}
}
}
}
}
record.JOT_CellWelder = welderID;
record.JOT_FloorWelder = welderID;
record.WeldDate = Convert.ToDateTime(weldDate);
if (man != null)
{
record.ConstructionPerson = man.UserName;
}
record.ConfirmDate = DateTime.Now;
BLL.HJGL_CH_RepairItemRecordService.UpdateCH_RepairItemRecord(record);
}
else
{
message = "焊工或焊接日期不能为空!";
}
}
message = "返修记录提交成功!";
}
catch (Exception e)
{
message = e.Message;
}
return message;
}
[WebMethod(Description = "检测批委托提交")]
public string GeneratingOrderSubmit(string strJson)
{
string message = string.Empty;
try
{
JObject obj = JObject.Parse(strJson);
JArray arr = JArray.Parse(obj["strJson"].ToString());
string firstBatchDetailId = arr[0]["batchDetailId"].ToString();
var firstBatchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailById(firstBatchDetailId);
string batchId = firstBatchDetail.BatchId;
var batch = BLL.HJGL_BO_BatchService.GetBatchById(batchId);
var trust = from x in Funs.DB.HJGL_CH_Trust where x.BatchId == batchId select x;
if (trust.Count() == 0)
{
int flag = 1;
foreach (var item in arr)
{
string batchDetailId = item["batchDetailId"].ToString();
string ndtItem = item["ndtItem"].ToString();
string currUser = item["currUser"].ToString();
var man = BLL.Sys_UserService.GetUsersByUserId(currUser);
var batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailById(batchDetailId);
if (batchDetail != null)
{
if (!string.IsNullOrEmpty(ndtItem))
{
batchDetail.NDT = ndtItem;
batchDetail.PointDate = DateTime.Now;
batchDetail.PointType = "1";
batchDetail.Checker = man.UserName;
}
else
{
batchDetail.NDT = null;
batchDetail.PointDate = null;
batchDetail.PointType = null;
batchDetail.Checker = null;
}
batchDetail.BatchDetailId = batchDetailId;
BLL.HJGL_BO_BatchDetailService.UpdateBatchDetail(batchDetail);
}
string[] ndt = ndtItem.Split(','); // 可能有多种探伤类型
foreach (string n in ndt)
{
var trustNdt = from x in Funs.DB.HJGL_CH_Trust where x.BatchId == batchId && x.CH_NDTMethod == n && x.Flag == flag select x;
if (trustNdt.Count() == 0)
{
var joint = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(batchDetail.JOT_ID);
var iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(joint.ISO_ID);
var ndtInfo = BLL.HJGL_TestingService.GetTestingByTestingId(n);
//选择管道等级、执行标准时,自动添加对接焊缝检测比例、合格等级、支管连接接头检测比例、合格等级、角焊缝检测比例、合格等级
var weldControl = BLL.HJGL_WeldControlService.GEtWeldControlByISCIDAndExecStandardId(iso.ISC_ID, iso.ISO_Executive);
Model.HJGL_CH_Trust t = new Model.HJGL_CH_Trust();
t.BatchId = batchId;
t.CH_TrustID = SQLHelper.GetNewID(typeof(Model.HJGL_CH_Trust));
t.CH_TrustCode = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetTrustCodeByProjectId", "dbo.HJGL_CH_Trust", "CH_TrustCode", batch.ProjectId, ndtInfo.NDT_Code + "-");
t.CH_NDTMethod = n;
t.Flag = flag;
t.CH_TrustType = "1";
t.CH_TrustUnit = iso.BSU_ID;
t.CH_TrustDate = DateTime.Now;
t.ProjectId = batch.ProjectId;
t.InstallationId = batch.InstallationId;
t.CH_WeldMethod = joint.WME_ID;
t.CH_SlopeType = joint.JST_ID;
t.CH_NDTRate = batch.NDTR_ID;
t.CH_NDTCriteria = "NB/T47013-2015";
t.CH_TrustMan = currUser;
if (weldControl != null)
{
if (ndtInfo.NDT_Code == "RT")
{
t.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_Level).Value;
}
else
{
t.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_C_Level).Value;
}
}
BLL.HJGL_TrustManageEditService.AddCH_Trust(t);
// 增加明细
Model.HJGL_CH_TrustItem trustItem = new Model.HJGL_CH_TrustItem();
trustItem.CH_TrustID = t.CH_TrustID;
trustItem.JOT_ID = batchDetail.JOT_ID;
trustItem.BatchDetailId = batchDetail.BatchDetailId;
trustItem.States = "1"; // 生成委托单时状态为等检测
BLL.HJGL_TrustManageEditService.AddCH_TrustItem(trustItem);
}
else
{
Model.HJGL_CH_TrustItem trustItem = new Model.HJGL_CH_TrustItem();
trustItem.CH_TrustID = trustNdt.First().CH_TrustID;
trustItem.JOT_ID = batchDetail.JOT_ID;
trustItem.BatchDetailId = batchDetail.BatchDetailId;
trustItem.States = "1"; // 生成委托单时状态为等检测
BLL.HJGL_TrustManageEditService.AddCH_TrustItem(trustItem);
}
}
}
message = "成功生成委托单!";
}
else
{
message = "已生成委托单!";
}
}
catch (Exception e)
{
message = e.Message;
}
return message;
}
[WebMethod(Description = "检测批再委托")]
public string AgainGeneratingSubmit(string strJson)
{
string message = string.Empty;
try
{
JObject obj = JObject.Parse(strJson);
JArray arr = JArray.Parse(obj["strJson"].ToString());
string firstBatchDetailId = arr[0]["batchDetailId"].ToString();
var firstBatchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailById(firstBatchDetailId);
string batchId = firstBatchDetail.BatchId;
var batch = BLL.HJGL_BO_BatchService.GetBatchById(batchId);
var trust = from x in Funs.DB.HJGL_CH_Trust where x.BatchId == batchId select x;
if (trust.Count() > 0)
{
int? maxFlag = trust.Select(x => x.Flag).Max();
int flag = (maxFlag != null ? maxFlag.Value : 1) + 1;
foreach (var item in arr)
{
string batchDetailId = item["batchDetailId"].ToString();
string ndtItem = item["ndtItem"].ToString();
string currUser = item["currUser"].ToString();
var man = BLL.Sys_UserService.GetUsersByUserId(currUser);
var batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailById(batchDetailId);
string[] ndt = ndtItem.Split(','); // 可能有多种探伤类型
foreach (string n in ndt)
{
var trustNdt = from x in Funs.DB.HJGL_CH_Trust where x.BatchId == batchId && x.CH_NDTMethod == n && x.Flag == flag select x;
if (trustNdt.Count() == 0)
{
var joint = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(batchDetail.JOT_ID);
var iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(joint.ISO_ID);
var ndtInfo = BLL.HJGL_TestingService.GetTestingByTestingId(n);
//选择管道等级、执行标准时,自动添加对接焊缝检测比例、合格等级、支管连接接头检测比例、合格等级、角焊缝检测比例、合格等级
var weldControl = BLL.HJGL_WeldControlService.GEtWeldControlByISCIDAndExecStandardId(iso.ISC_ID, iso.ISO_Executive);
Model.HJGL_CH_Trust t = new Model.HJGL_CH_Trust();
t.BatchId = batchId;
t.CH_TrustID = SQLHelper.GetNewID(typeof(Model.HJGL_CH_Trust));
t.CH_TrustCode = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetTrustCodeByProjectId", "dbo.HJGL_CH_Trust", "CH_TrustCode", batch.ProjectId, ndtInfo.NDT_Code + "-");
t.CH_NDTMethod = n;
t.Flag = flag;
t.CH_TrustUnit = iso.BSU_ID;
t.CH_TrustType = "1";
t.CH_TrustDate = DateTime.Now;
t.ProjectId = batch.ProjectId;
t.InstallationId = batch.InstallationId;
t.CH_WeldMethod = joint.WME_ID;
t.CH_SlopeType = joint.JST_ID;
t.CH_NDTRate = batch.NDTR_ID;
t.CH_NDTCriteria = "NB/T47013-2015";
t.CH_TrustMan = currUser;
if (weldControl != null)
{
if (ndtInfo.NDT_Code == "RT")
{
t.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_Level).Value;
}
else
{
t.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_C_Level).Value;
}
}
BLL.HJGL_TrustManageEditService.AddCH_Trust(t);
// 增加明细
Model.HJGL_CH_TrustItem trustItem = new Model.HJGL_CH_TrustItem();
trustItem.CH_TrustID = t.CH_TrustID;
trustItem.JOT_ID = batchDetail.JOT_ID;
trustItem.BatchDetailId = batchDetail.BatchDetailId;
trustItem.States = "1"; // 生成委托单时状态为等检测
BLL.HJGL_TrustManageEditService.AddCH_TrustItem(trustItem);
}
else
{
Model.HJGL_CH_TrustItem trustItem = new Model.HJGL_CH_TrustItem();
trustItem.CH_TrustID = trustNdt.First().CH_TrustID;
trustItem.JOT_ID = batchDetail.JOT_ID;
trustItem.BatchDetailId = batchDetail.BatchDetailId;
trustItem.States = "1"; // 生成委托单时状态为等检测
BLL.HJGL_TrustManageEditService.AddCH_TrustItem(trustItem);
}
}
if (!string.IsNullOrEmpty(ndtItem))
{
batchDetail.NDT = ndtItem;
batchDetail.PointDate = DateTime.Now;
batchDetail.PointType = "1";
batchDetail.Checker = currUser;
BLL.HJGL_BO_BatchDetailService.UpdateBatchDetail(batchDetail);
}
}
message = "成功再委托!";
}
else
{
message = "还未生成委托单,请点击检验批委托菜单!";
}
}
catch (Exception e)
{
message = e.Message;
}
return message;
}
[WebMethod(Description = "取消检测批委托")]
public string CancelGeneratingSubmit(string strJson)
{
string message = string.Empty;
try
{
JObject obj = JObject.Parse(strJson);
JArray arr = JArray.Parse(obj["strJson"].ToString());
string jots = string.Empty;
foreach (var item in arr)
{
string batchDetailId = item["batchDetailId"].ToString();
string ndtItem = item["ndtItem"].ToString(); // 取消的委托类型(可能有两个及以上)
string[] ndts = ndtItem.Split(',');
string ndtId = string.Empty;
var batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailById(batchDetailId);
var jot = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(batchDetail.JOT_ID);
if (ndts.Count() > 0)
{
jots = jots + jot.JOT_JointNo + ",";
List<string> ndtList = batchDetail.NDT.Split(',').ToList();
foreach (string ndt in ndts)
{
var t = from x in Funs.DB.HJGL_CH_TrustItem
join y in Funs.DB.HJGL_CH_Trust on x.CH_TrustID equals y.CH_TrustID
where x.JOT_ID == batchDetail.JOT_ID && y.CH_NDTMethod == ndt
select x;
if (t.Count() > 0 && t.FirstOrDefault().States == "1") // 待检测状态
{
BLL.HJGL_CH_TrustItemService.DeleteTrustItemById(t.FirstOrDefault().CH_TrustItemID);
ndtList.Remove(ndt);
}
}
Model.HJGL_BO_BatchDetail newBatchDetail = Funs.DB.HJGL_BO_BatchDetail.FirstOrDefault(x => x.BatchDetailId == batchDetailId);
if (newBatchDetail != null)
{
if (ndtList.Count() > 0)
{
foreach (var q in ndtList)
{
ndtId = ndtId + q + ",";
}
newBatchDetail.NDT = ndtId.Substring(0, ndtId.Length - 1);
}
else
{
newBatchDetail.NDT = null;
newBatchDetail.PointDate = null;
newBatchDetail.PointType = null;
batchDetail.Checker = null;
}
Funs.DB.SubmitChanges();
}
}
}
if (jots.Length > 0)
{
jots = jots.Substring(0, jots.Length - 1);
}
message = "已取消焊口:" + jots + "的委托!";
}
catch (Exception e)
{
message = e.Message;
}
return message;
}
[WebMethod(Description = "返修记录委托提交")]
public string RepairRecordTrustSubmit(string strJson)
{
string message = string.Empty;
try
{
JObject obj = JObject.Parse(strJson);
JArray arr = JArray.Parse(obj["strJson"].ToString());
var totalRepairItemRecords = from x in Funs.DB.HJGL_View_CH_RepairItemRecord select x;
var totalRepairItems = from x in Funs.DB.HJGL_CH_RepairItem select x;
foreach (var item in arr)
{
string repairItemRecordId = item["repairItemRecordId"].ToString();
string strIsRepairTrust = item["isRepairTrust"].ToString();
string currUser = item["currUser"].ToString();
bool isRepairTrust = Convert.ToBoolean(strIsRepairTrust);
Model.HJGL_View_CH_RepairItemRecord record = totalRepairItemRecords.FirstOrDefault(x => x.RepairItemRecordId == repairItemRecordId);
if (isRepairTrust) //勾选委托
{
var oldRepairItem = totalRepairItems.FirstOrDefault(x => x.RepairItemRecordId == repairItemRecordId);
if (oldRepairItem == null) //尚未生成返修明细记录
{
var repair = from x in Funs.DB.HJGL_CH_Repair where x.BatchId == record.BatchId && x.ISO_ID == record.ISO_ID && x.NDT_ID == record.NDT_ID && x.TrustItemID == record.TrustItemID select x;
if (repair.Count() == 0)
{
Model.HJGL_PW_IsoInfo iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(record.ISO_ID);
Model.HJGL_PW_JointInfo joint = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(record.JOT_ID);
//选择管道等级、执行标准时,自动添加对接焊缝检测比例、合格等级、支管连接接头检测比例、合格等级、角焊缝检测比例、合格等级
var weldControl = BLL.HJGL_WeldControlService.GEtWeldControlByISCIDAndExecStandardId(iso.ISC_ID, iso.ISO_Executive);
var ndtInfo = BLL.HJGL_TestingService.GetTestingByTestingId(record.NDT_ID);
Model.HJGL_CH_Repair newRepair = new Model.HJGL_CH_Repair();
newRepair.CH_RepairID = SQLHelper.GetNewID(typeof(Model.HJGL_CH_Repair));
newRepair.ProjectId = record.ProjectId;
newRepair.TrustItemID = record.TrustItemID;
newRepair.ISO_ID = record.ISO_ID;
newRepair.JOT_ID = record.JOT_ID;
newRepair.NDT_ID = record.NDT_ID;
newRepair.CH_TrustUnit = iso.BSU_ID;
newRepair.InstallationId = joint.InstallationId;
if (string.IsNullOrEmpty(record.ExtendedNum))
{
newRepair.CH_TrustType = "1"; //委托
}
else
{
newRepair.CH_TrustType = "2"; //扩透
}
newRepair.CH_ItemName = iso.ISO_IsoNo;
newRepair.CH_Tabler = currUser;
newRepair.RepairTrustDate = DateTime.Now;
newRepair.BatchId = record.BatchId;
newRepair.CH_RepairNo = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetNewCodeByProjectId", "dbo.HJGL_CH_Repair", "CH_RepairNo", record.ProjectId, ndtInfo.NDT_Code + "-R-");
newRepair.CH_WeldMethod = joint.WME_ID;
newRepair.CH_SlopeType = joint.JST_ID;
newRepair.CH_NDTCriteria = "NB/T47013-2015";
if (weldControl != null)
{
if (ndtInfo.NDT_Code == "RT")
{
newRepair.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_Level).Value;
}
else
{
newRepair.CH_AcceptGrade = BLL.HJGL_TrustManageEditService.GetAcceptGradeList().FirstOrDefault(x => x.Text == weldControl.Joty_C_Level).Value;
}
}
BLL.HJGL_RepairService.AddCH_Repair(newRepair);
// 增加明细
Model.HJGL_CH_RepairItem newRepairItem = new Model.HJGL_CH_RepairItem();
newRepairItem.CH_RepairItemId = SQLHelper.GetNewID(typeof(Model.HJGL_CH_RepairItem));
newRepairItem.CH_RepairID = newRepair.CH_RepairID;
newRepairItem.JOT_ID = record.JOT_ID;
newRepairItem.DefectNature = record.DefectNature;
newRepairItem.FilmNum = record.FilmNum;
newRepairItem.States = "1"; // 生成返修委托单时状态为待检测
Model.HJGL_BO_BatchDetail batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailByJotId(record.JOT_ID);
if (batchDetail != null)
{
if (batchDetail.PointType != null && batchDetail.PointType.Contains("2")) //扩拍
{
newRepairItem.ExtendedNum = "K";
}
}
newRepairItem.CheckPerson = currUser;
newRepairItem.RepairItemRecordId = record.RepairItemRecordId;
BLL.HJGL_RepairItemService.AddCH_RepairItem(newRepairItem);
}
else
{
Model.HJGL_CH_RepairItem newRepairItem = new Model.HJGL_CH_RepairItem();
newRepairItem.CH_RepairItemId = SQLHelper.GetNewID(typeof(Model.HJGL_CH_RepairItem));
newRepairItem.CH_RepairID = repair.First().CH_RepairID;
newRepairItem.JOT_ID = record.JOT_ID;
newRepairItem.DefectNature = record.DefectNature;
newRepairItem.FilmNum = record.FilmNum;
newRepairItem.States = "3"; // 生成返修委托单时状态为待拍片
Model.HJGL_BO_BatchDetail batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailByJotId(record.JOT_ID);
if (batchDetail != null)
{
if (batchDetail.PointType != null && batchDetail.PointType.Contains("2")) //扩拍
{
newRepairItem.ExtendedNum = "K";
}
}
newRepairItem.CheckPerson = currUser;
//newRepairItem.Remark = values.Value<string>("Remark");
newRepairItem.RepairItemRecordId = record.RepairItemRecordId;
BLL.HJGL_RepairItemService.AddCH_RepairItem(newRepairItem);
}
}
}
}
message = "成功生成返修委托单!";
}
catch (Exception e)
{
message = e.Message;
}
return message;
}
}
}