1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360 |
- using Cksoft.Data;
- using Cksoft.Unity;
- using DllEapEntity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace DllEapDal
- {
- public class OrderMstDal
- {
- private IDatabase CurrDb = null;
- public OrderMstDal(IDatabase db)
- {
- CurrDb = db;
- }
- public OrderMst IUOrderMst(OrderMst mst,string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- int id = mst.ID;
- string sqlstr = "";
- if (mst.EntityStatusID==1)
- {
- mst.RecCode = usercode;
- mst.RecTime = DateTime.Now;
- mst.ModCode = usercode;
- mst.ModTime = DateTime.Now;
- //新增时,则需要自动产生编号,如果是新增版次则不需要
- if (mst.FCode == "")
- {
- sqlstr= "SELECT max(fcode)+1 FROM OrderMst";
- object obj = CurrDb.FindObject(sqlstr.ToString());
- mst.FCode = obj.ToString().PadLeft(6, '0');
- }
- else
- {
- //存在编号,说明是新增版次或者是将指令授予机台
- sqlstr = $"SELECT max(FVersion)+1 FROM OrderMst where fcode='{mst.FCode}'";
- object obj = CurrDb.FindObject(sqlstr.ToString());
- mst.FVersion = obj.ToString() == "" ? 0 : int.Parse(obj.ToString());
- }
- result = CurrDb.InsertFor(mst, usercode);
- if(result<0)
- {
- return null;
- }
- object objid = CurrDb.FindObject("select @@IDENTITY");
- if (objid.ToString() == "")
- {
- return null;
- }
- id = int.Parse(objid.ToString());
- }
- else
- {
- mst.ModCode = usercode;
- mst.ModTime = DateTime.Now;
- result = CurrDb.UpdateFor(mst, usercode);
- if (result < 0)
- {
- return null;
- }
- }
- mst = CurrDb.FindEntityFor<OrderMst>(id);
- return mst;
- }
- catch (Exception e)
- {
- errorinfo = e.Message;
- return null;
- }
- }
- //新增、修改、删除指令数据信息OrderData
- private int IUOrderData(List<OrderData> datas, string usercode, ref string errorinfo)
- {
- try
- {
- string sqlstr = "";
- int result = 0;
- //先删除
- List<OrderData> temprows = datas.Where(t => t.EntityStatusID == -1).ToList();
- foreach (var temprow in temprows)
- {
- sqlstr=$"delete from OrderData where id={temprow.ID}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- }
- //修改,可以批量
- temprows = datas.Where(t => t.EntityStatusID == 2).ToList();
- foreach(var temprow in temprows)
- {
- temprow.ModCode = usercode;
- temprow.ModTime = DateTime.Now;
- }
- result = CurrDb.UpdateFor<OrderData>(temprows, usercode);
- if (result < 0)
- {
- return -1;
- }
- temprows = datas.Where(t => t.EntityStatusID == 1).ToList();
- foreach (var temprow in temprows)
- {
- if (temprow.ID > 0)
- continue;
- result = IUOrderDataforpre(temprow, datas,usercode, ref errorinfo);
- if (result < 0)
- return -1;
- }
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- private OrderData FindPreRow(int id, List<OrderData> oabdt)
- {
- List<OrderData> rows = oabdt.Where(t => t.ID == id).ToList();// oabdt.Select("id=" + id.ToString());
- if (rows.Count <= 0)
- return null;
- return rows[0];
- }
- //新增上级行
- private int IUOrderDataforpre(OrderData row, List<OrderData> oabdt,string usercode, ref string errorinfo)
- {
- try
- {
- //读取行上级ID
- int parentid = row.ParentID;
- if (parentid < 0)//说明上级ID小于0,则先处理
- {
- int tempid = IUOrderDataforpre(FindPreRow(parentid, oabdt), oabdt,usercode, ref errorinfo);
- if (tempid < 0)
- return -1;
- //将上级ID全部更新
- List<OrderData> ttrows = oabdt.Where(t => t.ParentID == parentid).ToList();// oabdt.Select("上级ID=" + preid.ToString());
- foreach (var ttrow in ttrows)
- {
- ttrow.ParentID = tempid;
- }
- }
- row.RecCode = usercode;
- row.ModCode = usercode;
- row.RecTime = DateTime.Now;
- row.ModTime = DateTime.Now;
- int result = CurrDb.InsertFor<OrderData>(row, usercode);
- if (result < 0)
- {
- return -1;
- }
- object id = CurrDb.FindObject("select @@IDENTITY");
- if (id.ToString() == "")
- {
- return -1;
- }
- result = int.Parse(id.ToString());
- List<OrderData> rows = oabdt.Where(t => t.ParentID == row.ID).ToList();// oabdt.Select("上级ID=" + row["ID"].ToString());
- foreach (var temprow in rows)
- {
- temprow.ParentID = result;
- }
- row.ID = result;
- return result;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //新增、修改、删除指令信息OrderDetail
- private int IUOrderDetail(List<OrderDetail> details, List<OrderData> datas,List<OrderDetailSec> secs, int preid,string usercode, ref string errorinfo)
- {
- try
- {
- string sqlstr ="";
- int result = 0;
- //删除OrderData
- List<OrderData> temprows = datas.Where(t => t.EntityStatusID == -1).ToList();
- foreach (var temprow in temprows)
- {
- sqlstr=$"delete from OrderData where id={temprow.ID}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- }
- //删除OrderDetail
- List<OrderDetail> tempdetails = details.Where(t => t.EntityStatusID == -1).ToList();
- foreach (var temprow in tempdetails)
- {
- sqlstr=$"delete from OrderDetail where id={temprow.ID}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- }
- //修改,可以批量
- tempdetails = details.Where(t => t.EntityStatusID == 2).ToList();
- foreach(var temprow in tempdetails)
- {
- temprow.ModCode = usercode;
- temprow.ModTime = DateTime.Now;
- temprow.FCode = $"S{temprow.SVal}F{temprow.FVal}";
- }
- result = CurrDb.UpdateFor<OrderDetail>(tempdetails, usercode);
- if (result < 0)
- {
- return -1;
- }
- //修改,可以批量
- tempdetails = details.Where(t => t.EntityStatusID == 1).ToList();
- foreach (var temprow in tempdetails)
- {
- temprow.PreID = preid;
- temprow.RecCode = usercode;
- temprow.ModCode = usercode;
- temprow.RecTime = DateTime.Now;
- temprow.ModTime = DateTime.Now;
- temprow.FCode = $"S{temprow.SVal}F{temprow.FVal}";
- result = CurrDb.InsertFor<OrderDetail>(temprow, usercode);
- if (result < 0)
- {
- return -1;
- }
- object id = CurrDb.FindObject("select @@IDENTITY");
- if (id.ToString() == "")
- {
- return -1;
- }
- result = int.Parse(id.ToString());
- //更新oab表里的主档ID
- var ttrows = datas.Where(t => t.PreID == temprow.ID).ToList();
- foreach (var ttrow in ttrows)
- {
- ttrow.PreID = result;
- }
- var secsrows = secs.Where(t => t.PreID == temprow.ID).ToList();
- foreach (var secrow in secsrows)
- secrow.PreID = result;
- }
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
-
- public OrderMst IUOrderMst(OrderMst mst,List<OrderDetail> details,List<OrderData> datas,List<OrderDetailSec> secs,string usercode, ref string errorinfo)
- {
- try
- {
- mst = IUOrderMst(mst,usercode, ref errorinfo);
- if (mst==null)
- {
- return null;
- }
- //添加指令明细
- int result = IUOrderDetail(details, datas,secs, mst.ID,usercode, ref errorinfo);
- if (result < 0)
- {
- return null;
- }
- result = IUOrderData(datas,usercode, ref errorinfo);
- if (result < 0)
- {
- return null;
- }
- result = IUOrderDetailSec(secs, usercode, ref errorinfo);
- if (result < 0)
- {
- return null;
- }
- return mst;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return null;
- }
- }
- //新增、修改、删除指令数据信息OrderDetailSec
- private int IUOrderDetailSec(List<OrderDetailSec> secs, string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- //先删除
- List<OrderDetailSec> temprows = secs.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<OrderDetailSec>(temprows);
- if (result < 0)
- return -1;
- //修改,可以批量
- temprows = secs.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<OrderDetailSec>(temprows, usercode);
- if (result < 0)
- {
- return -1;
- }
- //新增
- temprows = secs.Where(t => t.EntityStatusID == 1).ToList();
- result = CurrDb.InsertFor<OrderDetailSec>(temprows, usercode);
- if (result < 0)
- {
- return -1;
- }
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- private static void ClearAnswer(OrderRelation row)
- {
- row.AnswerID = 0;
- row.AnswerSVal = 0;
- row.AnswerFVal = 0;
- row.EntityStatusID = 2;
- }
- private OrderRelation AddOac(List<OrderRelation> dt, int omaid,string usercode)
- {
- int? minid = dt.Where(t => t.ID < 0).Min(t => (int?)t.ID);
- int id =minid==null?-1:minid.Value-1;
- int? maxfnum = dt.Max(t => (int?)t.FNum);
- int fnum = maxfnum==null?10:maxfnum.Value+10;
- OrderRelation entity = new OrderRelation();
- dt.Add(entity);
- entity.ID = id;
- entity.PreID = omaid;
- entity.FNum = fnum;
- entity.SendID = 0;
- entity.AnswerID = 0;
- entity.RecCode = usercode;
- entity.ModCode = usercode;
- entity.RecTime = DateTime.Now;
- entity.ModTime = DateTime.Now;
- //addrow["sendsval"] = 0;
- //addrow["sendfval"] = 0;
- //addrow["answersval"] = 0;
- //addrow["answerfval"] = 0;
- //addrow["remark"] = "";
- return entity;
- }
- //自动匹配回复指令
- public int AutoProcessOac(int omaid,string usercode, ref string errorinfo)
- {
- try
- {
- string condition = $" and {EntityAttribute.GetPropertyCondition<OrderRelation>(nameof(OrderRelation.PreID))}={omaid}";
- List<OrderRelation> oacdt = CurrDb.FindListForCondition<OrderRelation>(condition, ref errorinfo).ToList();
- if (oacdt == null)
- return -1;
- condition = $" and {EntityAttribute.GetPropertyCondition<OrderDetail>(nameof(OrderDetail.PreID))}={omaid}";
- List<OrderDetail> oaadt = CurrDb.FindListForCondition<OrderDetail>(condition, ref errorinfo).ToList();
- if (oaadt == null)
- return -1;
- List<OrderDetail> rows = null;
- //遍历oac,删除多余关联
- foreach (OrderRelation temprow in oacdt)
- {
- //if (temprow["id"].ToString() == "7")
- //{
- // int aa = 100;
- //}
- rows = oaadt.Where(t => t.ID == temprow.SendID).ToList();// oaadt.Select("id=" + temprow["sendid"].ToString());
- if (rows.Count <= 0)
- {
- //说明在指令集合里没有找到发送指令,需要删除
- temprow.EntityStatusID = -1;
- continue;
- }
- //判断发送指令F值是否为奇数,如果不是奇数也要删除
- if (temprow.SendFVal % 2 == 0)
- {
- temprow.EntityStatusID = -1;
- continue;
- }
- //判断指令是否匹配
- if (temprow.SendSVal != temprow.AnswerSVal)
- {
- ClearAnswer(temprow);
- continue;
- }
- //判断指令是否匹配
- if (temprow.SendFVal+ 1 != temprow.AnswerFVal)
- {
- ClearAnswer(temprow);
- continue;
- }
- rows = oaadt.Where(t => t.ID == temprow.AnswerID).ToList();// oaadt.Select("id=" + temprow["answerid"].ToString());
- if (rows.Count <= 0)
- {
- //说明在指令集合里没有找到发送指令,需要将answerid=0
- ClearAnswer(temprow);
- continue;
- }
- //判断发送指令F值是否为奇数,如果不是奇数也要删除
- if (temprow.AnswerFVal % 2 != 0)
- {
- ClearAnswer(temprow);
- }
- }
- List<OrderRelation> rels = null;
- OrderRelation addrow = null;
- //遍历oaa,把奇数指令添加到oac中
- foreach (var temprow in oaadt)
- {
- rels = oacdt.Where(t => t.SendID == temprow.ID).ToList();// oacdt.Select("sendid=" + temprow["id"].ToString());
- if (rels.Count > 0)//说明已经存在,无需添加
- {
- continue;
- }
- //将奇数指令添加到oac中
- if (temprow.FVal % 2 == 0)
- continue;
- addrow = AddOac(oacdt, omaid,usercode);
- addrow.SendID = temprow.ID;
- //addrow["sendid"] = temprow["ID"];
- //addrow["sendsval"] = temprow["sval"];
- //addrow["sendfval"] = temprow["fval"];
- //
- }
- //遍历oaa,将没有关联回复指令的记录关联回复指令
- rels = oacdt.Where(t => t.AnswerID == 0&&t.EntityStatusID>=0).ToList();
- foreach (var temprow in rels)
- {
- rows = oaadt.Where(t => t.SVal == temprow.SendSVal && t.FVal == (temprow.SendFVal + 1)).ToList();
- if (rows.Count <= 0)//说明没有找到回复指令
- {
- continue;
- }
- temprow.AnswerID = rows[0].ID;
- //temprow["answerid"] = rows[0]["ID"];
- //temprow["sendsval"] = rows[0]["sval"];
- //temprow["sendfval"] = rows[0]["fval"];
- temprow.SendSVal = rows[0].SVal;
- temprow.SendFVal = rows[0].FVal;
- if (temprow.EntityStatusID != 1)
- temprow.EntityStatusID = 2;
- }
- //oacdt.Columns.Remove("sendsval");
- //oacdt.Columns.Remove("sendfval");
- //oacdt.Columns.Remove("answersval");
- //oacdt.Columns.Remove("answerfval");
- int result = 0;
- string sqlstr = "";
- //先删除
- rels = oacdt.Where(t => t.EntityStatusID == -1).ToList();// oacdt.Select("", "", DataViewRowState.Deleted);
- foreach (var temprow in rels)
- {
- sqlstr=$"delete from OrderRelation where id={temprow.ID}";
- result = CurrDb.ExecuteBySql(sqlstr);
- if (result < 0)
- return -1;
- }
- //修改,可以批量
- rels = oacdt.Where(t => t.EntityStatusID ==2).ToList();
- foreach(var item in rels)
- {
- item.ModTime = DateTime.Now;
- item.ModCode = usercode;
- }
- result = CurrDb.UpdateFor<OrderRelation>(rels, usercode);
- if (result < 0)
- {
- return -1;
- }
- rels = oacdt.Where(t => t.EntityStatusID == 1).ToList();
- result = CurrDb.InsertFor<OrderRelation>(rels, usercode);
- if (result < 0)
- {
- return -1;
- }
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //新增版次
- public int AddVersionOrder(OrderMst mst,string usercode, ref string errorinfo)
- {
- try
- {
- OrderMst result = CopyOrder(mst, 2,usercode, ref errorinfo);
- if (result ==null)
- {
- return -1;
- }
- return result.ID;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //复制指令版次
- public int CopyOrder(OrderMst mst, string usercode, ref string errorinfo)
- {
- try
- {
- OrderMst result = CopyOrder(mst, 1, usercode, ref errorinfo);
- if (result == null)
- {
- return -1;
- }
- return result.ID;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //复制指令版次到其他机型
- public int CopyOrderToModel(OrderMst mst,MacModel model, string usercode, ref string errorinfo)
- {
- try
- {
- OrderMst result = CopyOrder(mst, 1, usercode, ref errorinfo);
- if (result == null)
- {
- return -1;
- }
- //处理指令事件与参数
- int tempresult = HandleOrderSec(result, model, usercode, ref errorinfo);
- if (tempresult <= 0)
- return -1;
- return result.ID;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- /// <summary>
- /// 更换指令机型,更换指令对应的事件和参数
- /// </summary>
- /// <param name="mst"></param>
- /// <param name="model"></param>
- /// <returns></returns>
- private int HandleOrderSec(OrderMst mst,MacModel model,string usercode,ref string errorinfo)
- {
- try
- {
- mst.MModeID = model.ID;
- int result = CurrDb.UpdateFor<OrderMst>(mst, usercode);
- if (result < 0)
- return -1;
- //读取机型所有参数事件
- string condition = $" and {EntityAttribute.GetPropertyCondition<MMSecDetail>(nameof(MMSecDetail.PreID))}={model.ID}";
- List<MMSecDetail> mmsecdetails= CurrDb.FindListForCondition<MMSecDetail>(condition, ref errorinfo).ToList();
- if (mmsecdetails == null)
- return -1;
- //读取指令所有明细的参数
- condition = $" and c.PreID={mst.ID}";
- List<OrderDetailSec> orderdetailsec = CurrDb.FindListForCondition<OrderDetailSec>(condition, ref errorinfo).ToList();
- if (orderdetailsec == null)
- return -1;
- List<MMSecDetail> templist = null;
- foreach(var item in orderdetailsec)
- {
- templist = mmsecdetails.Where(t => t.SecID == item.SecID).ToList();
- if(templist.Count<=0)
- {
- //说明新机型中没有此参数,要删除此参数
- item.DeleteEntity(orderdetailsec);
- }
- else
- {
- item.MMSecDetailID = templist[0].ID;
- item.ModifyEntity();
- }
- }
- List<OrderDetailSec> secs = orderdetailsec.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<OrderDetailSec>(secs);
- if (result < 0)
- return -1;
- secs = orderdetailsec.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<OrderDetailSec>(secs,usercode);
- if (result < 0)
- return -1;
- //读取指令事件
- condition = $" and {EntityAttribute.GetPropertyCondition<OrderEvent>(nameof(OrderEvent.PreID))}={mst.ID}";
- List<OrderEvent> events = CurrDb.FindListForCondition<OrderEvent>(condition, ref errorinfo).ToList();
- foreach(var item in events)
- {
- templist = mmsecdetails.Where(t => t.SecID == item.SecID).ToList();
- if (templist.Count <= 0)
- {
- //说明新机型中没有此参数,要删除此参数
- condition = $" and a.PreID={item.ID}";
- result = CurrDb.DeleteForCondition<EventReportDetail>(condition);
- if (result < 0)
- return -1;
- item.DeleteEntity(events);
- }
- else
- {
- item.MMSecDetailID = templist[0].ID;
- item.ModifyEntity();
- //判断事件报工的参数在机型里是否存在,如果不存在则不添加事件
- condition = $" and {EntityAttribute.GetPropertyCondition<EventReportDetail>(nameof(EventReportDetail.PreID))}={item.ID}";
- List<EventReportDetail> eventreports = CurrDb.FindListForCondition<EventReportDetail>(condition, ref errorinfo).ToList();
- foreach(var reportmst in eventreports)
- {
- //读取报告明细,并判断每个明细参数是否在该机型中,如果不在,则删除事件报工
- condition = $" and {EntityAttribute.GetPropertyCondition<ReportDetail>(nameof(ReportDetail.PreID))}={reportmst.ID}";
- List<ReportDetail> reportdetails= CurrDb.FindListForCondition<ReportDetail>(condition, ref errorinfo).ToList();
- foreach(var reportdetail in reportdetails)
- {
- templist = mmsecdetails.Where(t => t.SecID == reportdetail.SecID).ToList();
- if(templist.Count<=0)
- {
- reportmst.DeleteEntity(eventreports);
- break;
- }
- }
- }
- //删除事件报告明细
- List<EventReportDetail> tempeventreportdetails = eventreports.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<EventReportDetail>(tempeventreportdetails);
- if (result < 0)
- return -1;
- //判断该事件里是否还包含报告,如果不包含,则事件也要删除
- tempeventreportdetails = eventreports.Where(t => t.EntityStatusID >=0).ToList();
- if (tempeventreportdetails.Count <= 0)
- item.DeleteEntity(events);
- }
- }
- List<OrderEvent> orderevents = events.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<OrderEvent>(orderevents);
- if (result < 0)
- return -1;
- orderevents = events.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<OrderEvent>(orderevents, usercode);
- if (result < 0)
- return -1;
- return 1;
- }
- catch(Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //复制oac,根据指令版次主档
- //public int CopyOac(int orgomaid, int desomaid, ref string errorinfo)
- //{
- // try
- // {
- // //删除目的指令版次对应的oac记录
- // string sqlstr=$"delete FROM OrderRelation where preid={desomaid}");
- // int result = CurrDb.ExecuteBySql(sqlstr.ToString());
- // if (result < 0)
- // return -1;
- // //读取目的指令的oac记录
- // sqlstr.Clear();
- // sqlstr.AppendFormat("select a.ID,a.omaid,a.fnum,a.sendid,a.answerid, a.remark from oac a ");
- // sqlstr.AppendFormat("where a.omaid ={0}", desomaid);
- // sqlstr = $" and {EntityAttribute.GetPropertyCondition<OrderRelation>(nameof(OrderRelation.PreID))}={}";
- // DataTable desoacdt = db.FindTableFor(sqlstr.ToString(), "oac");
- // if (desoacdt == null)
- // return -1;
- // //读取原来的oac记录
- // sqlstr.Clear();
- // sqlstr.AppendFormat("select a.ID,a.omaid,a.fnum,a.sendid,b.oa30 sendfnum,a.answerid,c.oa30 answerfnum, a.remark from oac a ");
- // sqlstr.AppendFormat(" left outer join oaa b on a.sendid=b.id");
- // sqlstr.AppendFormat(" left outer join oaa c on a.answerid=c.id");
- // sqlstr.AppendFormat(" where a.omaid ={0}", orgomaid);
- // DataTable oacdt = db.FindTableFor(sqlstr.ToString(), "oac");
- // if (oacdt == null)
- // return -1;
- // //读取目的指令版次的oaa
- // sqlstr.Clear();
- // sqlstr.AppendFormat("select a.ID,a.oa00 主档ID,a.oa30 序号 from oaa a ");
- // sqlstr.AppendFormat("where a.oa00 ={0}", desomaid);
- // DataTable oaadt = db.FindTableFor(sqlstr.ToString(), "oaa");
- // if (oaadt == null)
- // return -1;
- // DataRow[] rows = null;
- // int sendid = 0;
- // int answerid = 0;
- // DataRow addrow = null;
- // foreach (DataRow temprow in oacdt.Rows)
- // {
- // if (temprow["sendfnum"].ToString() == "")
- // temprow["sendfnum"] = 0;
- // rows = oaadt.Select("序号=" + temprow["sendfnum"].ToString());
- // if (rows.Length <= 0)
- // continue;
- // sendid = int.Parse(rows[0]["id"].ToString());
- // rows = oaadt.Select("序号=" + temprow["answerfnum"].ToString());
- // if (rows.Length <= 0)
- // continue;
- // //sqlstr.AppendFormat("select a.ID,a.omaid,a.fnum,a.sendid,a.answerid, a.remark from oac a ");
- // answerid = int.Parse(rows[0]["id"].ToString());
- // addrow = desoacdt.NewRow();
- // desoacdt.Rows.Add(addrow);
- // addrow["omaid"] = desomaid;
- // addrow["fnum"] = temprow["fnum"];
- // addrow["sendid"] = sendid;
- // addrow["answerid"] = answerid;
- // addrow["remark"] = temprow["remark"];
- // }
- // result = db.BatInsert(desoacdt, ref errorinfo);
- // if (result < 0)
- // return -1;
- // return 1;
- // }
- // catch (Exception ex)
- // {
- // errorinfo = ex.Message.ToString();
- // return -1;
- // }
- //}
- //复制整个指令文件
- public OrderMst CopyOrder(OrderMst mst, int mode,string usercode, ref string errorinfo)
- {
- string condition = $" and {EntityAttribute.GetPropertyCondition<OrderDetail>(nameof(OrderDetail.PreID))}={mst.ID}";
- List<OrderDetail> oaadt = CurrDb.FindListForCondition<OrderDetail>(condition, ref errorinfo).ToList();
-
- condition = $" and {EntityAttribute.GetPropertyCondition<OrderData>(nameof(OrderData.PreID))} in(select id from OrderDetail where preid={mst.ID})";
- List<OrderData> oabdt = CurrDb.FindListForCondition<OrderData>(condition, ref errorinfo).ToList();
- condition = $" and {EntityAttribute.GetPropertyCondition<OrderDetailSec>(nameof(OrderDetailSec.PreID))} in(select id from OrderDetail where preid={mst.ID})";
- List<OrderDetailSec> orgsecs = CurrDb.FindListForCondition<OrderDetailSec>(condition, ref errorinfo).ToList();
- OrderMst tempmst = new OrderMst();
- EntityHelper.CopyPropertyValue(mst, tempmst);
- tempmst.ID = -1;
- tempmst.EntityStatusID = 1;
- List<OrderDetail> desoaadt = new List<OrderDetail>();
- List<OrderData> desoabdt = new List<OrderData>();
- List<OrderDetailSec> dessec = new List<OrderDetailSec>();
- List<OrderData> orgoabdt =null;
- int result = 0;
- foreach (var temprow in oaadt)
- {
- orgoabdt = oabdt.Where(t => t.PreID == temprow.ID).ToList();
- result = EapUnity.AddOrderForEntity(temprow, orgoabdt, orgsecs, desoaadt, desoabdt,dessec, -1);
- if (result < 0)
- {
- return null;
- }
- }
- if (mode == 1)
- {
- //复制指令,需要将代码清空
- tempmst.FCode = "";
- tempmst.FVersion = 1;
- }
- tempmst = IUOrderMst(tempmst, desoaadt,desoabdt, dessec, usercode, ref errorinfo);
- if (tempmst == null)
- {
- return null;
- }
- //复制oac
- result = AutoProcessOac(tempmst.ID, usercode, ref errorinfo);
- if (result < 0)
- return null;
- //复制指令事件
- result = CopyOrderEvent(mst, tempmst,usercode);
- if (result < 0)
- return null;
- //复制指令参数明细
- result = CopyOrderSecDetail(mst, tempmst, usercode);
- if (result < 0)
- return null;
- //复制指令状态明细
- result = CopyOrderStatus(mst, tempmst, usercode);
- if (result < 0)
- return null;
- return tempmst;
- }
- /// <summary>
- /// 把一组指令复制到指定的指令版次中去
- /// </summary>
- /// <param name="details"></param>
- /// <param name="mst"></param>
- /// <param name="usercode"></param>
- /// <param name="errorinfo"></param>
- /// <returns></returns>
- public int CopyOrderDetail(List<OrderDetail> details,OrderMst desmst, string usercode, ref string errorinfo)
- {
- string sqlstr = $"select max({nameof(OrderDetail.FNum)}) from OrderDetail where preid={desmst.ID}";
- Object obj = CurrDb.FindObject(sqlstr);
- int maxfnum = obj.ToString() == "" ? 10 : int.Parse(obj.ToString());
- string condition = "";
- foreach (var item in details)
- {
- maxfnum += 10;
- OrderDetail addrow = new OrderDetail();
- EntityHelper.CopyPropertyValue(item, addrow);
- addrow.ID = 0;
- addrow.PreID = desmst.ID;
- addrow.FNum = maxfnum;
- addrow.EntityStatusID = 1;
- OrderDetailDal tempdal = new OrderDetailDal(CurrDb);
- addrow = tempdal.IUOrderDetail(addrow, usercode, ref errorinfo);
- if (addrow == null)
- return -1;
- //读取orderdata
- condition = $" and {EntityAttribute.GetPropertyCondition<OrderData>(nameof(OrderData.PreID))}={item.ID}";
- List<OrderData> oabdt = CurrDb.FindListForCondition<OrderData>(condition, ref errorinfo).ToList();
- List<OrderData> desorderdata = new List<OrderData>();
- GetOrderDatas(oabdt, addrow.ID, 0, 0, desorderdata);
- int result=IUOrderData(desorderdata, usercode, ref errorinfo);
- if (result <= 0)
- return -1;
- }
- return 1;
- }
- private void GetOrderDatas(List<OrderData> orgdatas,int preid,int parentid,int newparentid,List<OrderData> desdatas)
- {
- List<OrderData> templist = orgdatas.Where(t => t.ParentID == parentid).ToList();
- foreach(var item in templist)
- {
- int minid = -1;
- if(desdatas.Count>0)
- {
- minid = desdatas.Min(t => t.ID);
- minid--;
- }
- OrderData addrow = new OrderData();
- EntityHelper.CopyPropertyValue(item, addrow);
- addrow.PreID = preid;
- addrow.ID = minid;
- addrow.ParentID = newparentid;
- addrow.EntityStatusID = 1;
- desdatas.Add(addrow);
- GetOrderDatas(orgdatas, preid, item.ID, minid, desdatas);
- }
- }
- public int CopyOrderStatus(OrderMst orgmst, OrderMst desmst, string usercode)
- {
- string errorinfo = "";
- string condition = $" and {EntityAttribute.GetPropertyCondition<OrderStatus>(nameof(OrderStatus.PreID))}={orgmst.ID}";
- List<OrderStatus> orgevents = CurrDb.FindListForCondition<OrderStatus>(condition, ref errorinfo).ToList();
- List<OrderStatus> desevents = new List<OrderStatus>();
- OrderStatus addrow = null;
- int id = 0;
- foreach (var item in orgevents)
- {
- id--;
- addrow = new OrderStatus();
- EntityHelper.CopyPropertyValue(item, addrow);
- addrow.PreID = desmst.ID;
- addrow.ID = id;
- addrow.AddEntity(desevents);
- }
- int result = CurrDb.InsertFor<OrderStatus>(desevents, usercode);
- if (result <= 0)
- return -1;
- return 1;
- }
- public int CopyOrderSecDetail(OrderMst orgmst, OrderMst desmst, string usercode)
- {
- //string errorinfo = "";
- //string condition = $" and {EntityAttribute.GetPropertyCondition<OrderSecDetail>(nameof(OrderSecDetail.PreID))}={orgmst.ID}";
- //List<OrderSecDetail> orgevents = CurrDb.FindListForCondition<OrderSecDetail>(condition, ref errorinfo).ToList();
-
- //List<OrderSecDetail> desevents = new List<OrderSecDetail>();
- //OrderSecDetail addrow = null;
- //int id = 0;
- //foreach (var item in orgevents)
- //{
- // id--;
- // addrow = new OrderSecDetail();
- // EntityHelper.CopyPropertyValue(item, addrow);
- // addrow.PreID = desmst.ID;
- // addrow.ID = id;
- // addrow.AddEntity(desevents);
- //}
- //int result = CurrDb.InsertFor<OrderSecDetail>(desevents, usercode);
- //if (result <= 0)
- // return -1;
- return 1;
- }
- /// <summary>
- /// 复制指令事件
- /// </summary>
- /// <param name="orgmst"></param>
- /// <param name="desmst"></param>
- /// <returns></returns>
- public int CopyOrderEvent(OrderMst orgmst,OrderMst desmst,string usercode)
- {
- string errorinfo = "";
- string condition = $" and {EntityAttribute.GetPropertyCondition<OrderEvent>(nameof(OrderEvent.PreID))}={orgmst.ID}";
- List<OrderEvent> orgevents = CurrDb.FindListForCondition<OrderEvent>(condition, ref errorinfo).ToList();
- condition = $" and {EntityAttribute.GetPropertyCondition<EventReportDetail>(nameof(EventReportDetail.PreID))} in" +
- $"(select id from {nameof(OrderEvent)} where PreID={orgmst.ID})";
- List< EventReportDetail> orgdetails = CurrDb.FindListForCondition<EventReportDetail>(condition, ref errorinfo).ToList();
- List<OrderEvent> desevents = new List<OrderEvent>();
- List<EventReportDetail> desdetails = new List<EventReportDetail>();
- OrderEvent addrow = null;
- EventReportDetail detailaddrow = null;
- List<EventReportDetail> tempdetails = null;
- int id = 0;
- foreach (var item in orgevents)
- {
- id--;
- addrow = new OrderEvent();
- EntityHelper.CopyPropertyValue(item, addrow);
- addrow.PreID = desmst.ID;
- addrow.ID = id;
- addrow.AddEntity(desevents);
- tempdetails = orgdetails.Where(t => t.PreID == item.ID).ToList();
- foreach(var ttrow in tempdetails)
- {
- detailaddrow = new EventReportDetail();
- EntityHelper.CopyPropertyValue(ttrow, detailaddrow);
- detailaddrow.PreID = id;
- detailaddrow.ID = 0;
- detailaddrow.AddEntity(desdetails);
- }
- }
- int result = IUOrderEvent(desevents, desdetails, usercode, ref errorinfo);
- if (result <= 0)
- return -1;
- return 1;
- }
- public int DelOrderMst(List<OrderMst> msts,ref string errorinfo)
- {
- foreach(var item in msts)
- {
- int result = DelOrderMst(item.ID,ref errorinfo);
- if (result <= 0)
- return -1;
- }
- return 1;
- }
- private int DelOrderMst(int mstid,ref string errorinfo)
- {
- List<MacOrder> macorders = CurrDb.FindListForCondition<MacOrder>($" and a.preid={mstid}", ref errorinfo).ToList();
- if(macorders.Count>0)
- {
- errorinfo = "该指令已经关联机台,不能删除。";
- return -1;
- }
- string sqlstr = $"delete from OrderData where preid in(select id from orderdetail where preid={mstid})";
- int result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderDetailSec where preid in(select id from orderdetail where preid={mstid})";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from EventReportDetail where preid in(select id from OrderEvent where preid={mstid})";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderEvent where preid={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderSecDetail where preid={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderStatus where preid={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from orderdetail where preid={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderRelation where preid={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- sqlstr = $"delete from OrderMst where id={mstid}";
- result = CurrDb.ExecuteBySql(sqlstr.ToString());
- if (result < 0)
- return -1;
- return 1;
- }
- //检查该机台是否已经存在该指令类别的关联记录,如果存在则不能关联,返回值0未关联,>0已关联且值为关联ID,小于0发生错误
- public int JudgeRelation(Machine datarow, ref string errorinfo)
- {
- try
- {
- string colname = EntityAttribute.GetPropertyCondition<MacOrder>(nameof(MacOrder.MacID));
- string sqlstr=$" and {colname}={datarow.ID}";
- List<MacOrder> dt = CurrDb.FindListForCondition<MacOrder>(sqlstr, ref errorinfo).ToList();// db.FindTableFor(sqlstr.ToString(), "oma");
- if (dt == null)
- {
- errorinfo = "函数JudgeRelation发生未知错误";
- return -1;
- }
- if (dt.Count > 0)
- return dt[0].ID;
- return 0;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //指令管理到机台
- public int OrderRelationMca(OrderMst orderrow, List<Machine> datarows, string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- foreach (var temprow in datarows)
- {
- //检查该机台是否已经存在该指令类别的关联记录,如果存在则不能关联
- int judgeid = JudgeRelation(temprow, ref errorinfo);
- if (judgeid != 0)
- {
- return -1;
- }
- MacOrder tempentity = new MacOrder();
- tempentity.PreID = orderrow.ID;
- tempentity.MacID = temprow.ID;
- result = CurrDb.InsertFor<MacOrder>(tempentity, usercode);
- if (result < 0)
- return -1;
- //OrderMst tempmst = CopyOrder(orderrow,3,usercode, ref errorinfo);
- //if (tempmst==null)
- //{
- // return -1;
- //}
- ////修改机台ID和机台指令类别ID
- //tempmst.MacID = temprow.ID;
- //result = CurrDb.UpdateFor(tempmst, usercode);
- //if (result < 0)
- // return -1;
- }
- return result;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- public int DelMacOrder(List<MacOrder> msts)
- {
- int result = CurrDb.DeleteForEntity<MacOrder>(msts);
- if (result <= 0)
- return -1;
- return 1;
- }
- public int IUOrderEvent(List<OrderEvent> orderevents,List<EventReportDetail> details, string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- //删除
- List<OrderEvent> temprows = orderevents.Where(t => t.EntityStatusID == -1).ToList();
- foreach(OrderEvent item in temprows)
- {
- result = DelOrderEvent(item,ref errorinfo);
- if (result <= 0)
- return -1;
- }
- //新增
- temprows = orderevents.Where(t => t.EntityStatusID == 1).ToList();
- foreach (OrderEvent item in temprows)
- {
- result = AddOrderEvent(item,usercode, ref errorinfo);
- if (result <= 0)
- return -1;
- //更新明细主档ID
- List<EventReportDetail> ttrows = details.Where(t => t.PreID == item.ID).ToList();
- foreach (var ttrow in ttrows)
- ttrow.PreID = result;
- }
- //更新
- temprows = orderevents.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<OrderEvent>(temprows,usercode);
- if (result < 0)
- return -1;
- //处理明细
- result = IUEventReportDetail(details, usercode, ref errorinfo);
- if (result < 0)
- return -1;
- return 1;
- }
- catch (Exception e)
- {
- errorinfo = e.Message;
- return -1;
- }
- }
- private int AddOrderEvent(OrderEvent orderevent,string usercode, ref string errorinfo)
- {
- try
- {
- int result = CurrDb.InsertFor<OrderEvent>(orderevent, usercode);
- if (result < 0)
- return -1;
- object objid = CurrDb.FindObject("select @@IDENTITY");
- if (objid.ToString() == "")
- {
- return -1;
- }
- result = int.Parse(objid.ToString());
- return result;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- private int DelOrderEvent(OrderEvent orderevent, ref string errorinfo)
- {
- try
- {
- string sqlstr = $"delete from {nameof(EventReportDetail)} where preid={orderevent.ID}";
- int result = CurrDb.ExecuteBySql(sqlstr);
- if (result < 0)
- return -1;
- result = CurrDb.DeleteForEntity(orderevent);
- if (result < 0)
- return -1;
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //
- private int IUEventReportDetail(List<EventReportDetail> details, string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- //删除
- List<EventReportDetail> temprows = details.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<EventReportDetail>(temprows);
- if (result < 0)
- return -1;
- temprows = details.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<EventReportDetail>(temprows,usercode);
- if (result < 0)
- return -1;
- temprows = details.Where(t => t.EntityStatusID == 1).ToList();
- result = CurrDb.InsertFor<EventReportDetail>(temprows,usercode);
- if (result < 0)
- return -1;
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- public int IUOrderStatus(List<OrderStatus> orderevents, string usercode, ref string errorinfo)
- {
- try
- {
- int result = 0;
- //删除
- List<OrderStatus> temprows = orderevents.Where(t => t.EntityStatusID == -1).ToList();
- result = CurrDb.DeleteForEntity<OrderStatus>(temprows);
- if (result < 0)
- return -1;
- //新增
- temprows = orderevents.Where(t => t.EntityStatusID == 1).ToList();
- result = CurrDb.InsertFor<OrderStatus>(temprows,usercode);
- if (result < 0)
- return -1;
- //更新
- temprows = orderevents.Where(t => t.EntityStatusID == 2).ToList();
- result = CurrDb.UpdateFor<OrderStatus>(temprows,usercode);
- if (result < 0)
- return -1;
- return 1;
- }
- catch (Exception e)
- {
- errorinfo = e.Message;
- return -1;
- }
- }
- //private OrderSecDetail AddOrderSecDetail(List<OrderSecDetail> orglist,List<Sec> standardsec,int preid,int secid)
- //{
- // OrderSecDetail sec = new OrderSecDetail();
- // sec.PreID = preid;
- // sec.SecID = secid;
- // List<Sec> temprows = standardsec.Where(t => t.ID == secid).ToList();
- // sec.DCode = temprows[0].DCode;
- // int? minid = orglist.Where(t => t.ID < 0).Min(t => (int?)t.ID);
- // sec.ID = minid == null ? -1 : minid.Value - 1;
- // sec.AddEntity<OrderSecDetail>(orglist);
- // return sec;
- //}
- //计算指令版次参数
- public int AccountOrderSecDetail(OrderMst orderrow, string usercode, ref string errorinfo)
- {
- try
- {
- //string condition = $" and {EntityAttribute.GetPropertyCondition<OrderSecDetail>(nameof(OrderSecDetail.PreID))}={orderrow.ID}";
- //List<OrderSecDetail> secdetails = CurrDb.FindListForCondition<OrderSecDetail>(condition, ref errorinfo).ToList();
- //List<Sec> standardsec = CurrDb.FindListForCondition<Sec>("", ref errorinfo).ToList();
- ////读取事件明细
- //condition = $" and {EntityAttribute.GetPropertyCondition<OrderEvent>(nameof(OrderEvent.PreID))}={orderrow.ID}";
- //List<OrderEvent> events = CurrDb.FindListForCondition<OrderEvent>(condition, ref errorinfo).ToList();
- //List<OrderSecDetail> tempsecs = null;
- //OrderSecDetail addrow = null;
- //foreach (var item in events)
- //{
- // tempsecs = secdetails.Where(t => t.SecID == item.SecID).ToList();
- // if(tempsecs.Count>0)
- // {
- // //说明事件已经存在,无需新增,将状态修改为2
- // tempsecs[0].ModifyEntity();
- // continue;
- // }
- // addrow = AddOrderSecDetail(secdetails, standardsec, orderrow.ID, item.SecID);
- //}
- ////读取指令对应的报告参数
- //condition = $" and {EntityAttribute.GetPropertyCondition<ReportDetail>(nameof(ReportDetail.PreID))} in" +
- // $"(SELECT a.ReportMstID FROM EventReportDetail a where a.PreID in(select id from OrderEvent where preid = {orderrow.ID}))";
- //List<ReportDetail> reports = CurrDb.FindListForCondition<ReportDetail>(condition, ref errorinfo).ToList();
- //foreach (var item in reports)
- //{
- // tempsecs = secdetails.Where(t => t.SecID == item.SecID).ToList();
- // if (tempsecs.Count > 0)
- // {
- // //说明事件已经存在,无需新增,将状态修改为2
- // tempsecs[0].ModifyEntity();
- // continue;
- // }
- // addrow = AddOrderSecDetail(secdetails, standardsec, orderrow.ID, item.SecID);
- //}
- ////读取指令对应的参数
- //condition = $" and {EntityAttribute.GetPropertyCondition<OrderDetailSec>(nameof(OrderDetailSec.PreID))} in" +
- // $"(select id from OrderDetail where preid = {orderrow.ID})";
- //List<OrderDetailSec> detailsec = CurrDb.FindListForCondition<OrderDetailSec>(condition, ref errorinfo).ToList();
- //foreach (var item in detailsec)
- //{
- // tempsecs = secdetails.Where(t => t.SecID == item.SecID).ToList();
- // if (tempsecs.Count > 0)
- // {
- // //说明事件已经存在,无需新增,将状态修改为2
- // tempsecs[0].ModifyEntity();
- // continue;
- // }
- // addrow = AddOrderSecDetail(secdetails, standardsec, orderrow.ID, item.SecID);
- //}
- ////删除多余的参数事件
- //tempsecs = secdetails.Where(t => t.EntityStatusID==0).ToList();
- //int result = CurrDb.DeleteForEntity<OrderSecDetail>(tempsecs);
- //if (result < 0)
- // return -1;
- ////新增事件
- //tempsecs = secdetails.Where(t => t.EntityStatusID == 1).ToList();
- //result = CurrDb.InsertFor<OrderSecDetail>(tempsecs,usercode);
- //if (result < 0)
- // return -1;
- return 1;
- }
- catch (Exception ex)
- {
- errorinfo = ex.Message.ToString();
- return -1;
- }
- }
- //public int UOrderSecDetail(List<OrderSecDetail> orderevents, string usercode, ref string errorinfo)
- //{
- // try
- // {
- // int result = 0;
- // result = CurrDb.UpdateFor<OrderSecDetail>(orderevents,usercode);
- // if (result < 0)
- // return -1;
- // return 1;
- // }
- // catch (Exception e)
- // {
- // errorinfo = e.Message;
- // return -1;
- // }
- //}
- }
- }
|