using System; using System.Collections.Generic; using System.Data; using System.Web; using BP.DA; using BP.Sys; using BP.Port; namespace CCFlow.App { /// /// YuTong 的摘要说明 /// public class YuTong : IHttpHandler { #region 基本属性. public HttpContext context = null; public string DoType { get { return context.Request.QueryString["DoType"]; } } public string Key { get { return context.Request.QueryString["Key"]; } } public string FK_Flow { get { return context.Request.QueryString["FK_Flow"]; } } public string FK_Node { get { return context.Request.QueryString["FK_Node"]; } } public Int64 WorkID { get { return Int64.Parse(context.Request.QueryString["OID"]); } } #endregion 基本属性. public void ProcessRequest(HttpContext contextPara) { contextPara.Response.ContentType = "text/plain"; context = contextPara; string str = null; switch (this.DoType) { case "FlowOver029": //订单评审流程结束的时候写入数据. str = FlowOver029(); break; default: break; } if (str != null) { contextPara.Response.Write(str); return; } } /// /// 数据填充029 /// public string FlowOver029() { //获得主表的数据,并求出billNo. GEEntity en = new GEEntity("Frm_KeHuDingShan", this.WorkID); string billNo = en.GetValStringByKey("BillNo"); if (billNo == null) return "err@订单编号没有找到."; //创建数据源. SFDBSrc dbsrc = new SFDBSrc("Oracle21"); #region 删除对方的数据. string sql = ""; //首先查询订单单号是否存在, 在对方的系统里. //如果已经存在,就删除. sz028.oea_file 主表 sz028.OEB_FILE 从表 sql = "DELETE FROM sz028.oea_file WHERE OEA01='" + billNo + "'"; dbsrc.RunSQL(sql); sql = "DELETE FROM sz028.OEB_FILE WHERE OEB01='" + billNo + "'"; dbsrc.RunSQL(sql); #endregion 删除对方的数据. sql = "select concat( concat('2201-',to_char(sysdate,'yyMM')),LPAD(NVL(MAX(SUBSTR(oea01,10)),0)+1,5,'0')) as NewOrderId from sz028.oea_file WHERE oea01 like concat(concat('2201-',to_char(sysdate, 'yyMM')),'%')"; string newid = dbsrc.RunSQLReturnString(sql); sql = "update Frm_KeHuDingShan set ERPDingShanHao='" + newid+"' WHERE OID="+this.WorkID; DBAccess.RunSQL(sql); try { //执行主表的插入. sql = "INSERT INTO sz028.oea_file "; sql += "(OEA00,OEA01,OEA02,oea09,oea03,oea032,oea04,oea12,OEA61,OEA62,OEA63,oea10)"; sql += "VALUES ( "; sql += " '1' ,";//OEA00 // sql += " '" + en.GetValStringByKey("BillNo") + "',"; // OEA01=单据编号. sql += " '" + newid + "',"; // OEA01=单据编号. sql += " " + GenerToData(en.GetValStringByKey("DingShanRiQi")) + ",";//OEA02 sql += " '0' ,";//oea09 sql += " '" + en.GetValStringByKey("KeHuBianHao") + "',"; //oea03 sql += " '" + en.GetValStringByKey("KHMC") + "',";//oea032 sql += " '" + en.GetValStringByKey("KeHuBianHao") + "',";//oea04 sql += " '" + newid + "',"; // OEA12=单据编号. sql += " '0' ,"; //OEA61 sql += " '0' ,"; sql += " '0' ,"; sql += " '" + en.GetValStringByKey("KeHuDingShanHao") + "'"; sql += " ) "; dbsrc.RunSQL(sql); //获得从表的数据. GEDtls dtls = new GEDtls("Frm_KeHuDingShanDtl1"); dtls.Retrieve("RefPK", this.WorkID); //执行从表的插入. int i = 1; foreach (GEDtl dtl in dtls) { //执行从表的插入. sql = "INSERT INTO sz028.OEB_FILE "; sql += "(oeb01,oeb04,OEB03,OEB05_FAC,OEB12,OEB13,OEB14,OEB14T,OEB23,OEB24,OEB25,OEB26)"; sql += "VALUES ( "; sql += " '" + newid + "',"; sql += " '" + dtl.GetValByKey("liaoHao") + "',"; sql += " '" + i + "',"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' ,"; sql += " '0' "; //sql += " '" + en.GetValStringByKey("Rec") + "',"; //sql += " '" + en.GetValStringByKey("Re11c") + "'"; sql += " ) "; i++; dbsrc.RunSQL(sql); } //BP.WF.GenerWorkFlow gwf = new BP.WF.GenerWorkFlow(this.WorkID); //让发起人登录. //BP.WF.Dev2Interface.Port_Login(gwf.Starter, null, gwf.OrgNo); //BP.WF.Dev2Interface.Flow_DoFlowOver(this.WorkID, "写入成功"); return "info@数据写入成功."; } catch (Exception ex) { //删除已经插入的数据.. sql = "DELETE FROM sz028.oea_file WHERE OEA01='" + billNo + "'"; dbsrc.RunSQL(sql); //删除已经插入的数据, sql = "DELETE FROM sz028.OEB_FILE WHERE oeb01='" + billNo + "'"; dbsrc.RunSQL(sql); return "err@执行错误." + ex.Message; } } public string GenerToData(string val) { string str = " to_date('" + val + "', 'yyyy-mm-dd ')"; return str; } public bool IsReusable { get { return false; } } } }