|
|
@@ -0,0 +1,2360 @@
|
|
|
+<%@ WebHandler Language="C#" Class="glineplanmold" %>
|
|
|
+
|
|
|
+using System;
|
|
|
+using System.Web;
|
|
|
+using System.Web.SessionState;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Collections.Specialized;
|
|
|
+using System.Data;
|
|
|
+using Curtain.DataAccess;
|
|
|
+using DK.XuWei.WebMes;
|
|
|
+using Newtonsoft.Json;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+
|
|
|
+public class glineplanmold : IHttpHandler, IReadOnlySessionState
|
|
|
+{
|
|
|
+ string detailplanID = null;
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
+ if (mes.LoginCheck() && context.Request["m"] is object)
|
|
|
+ {
|
|
|
+ Button b = new Button();
|
|
|
+ if (mes.RightCheck(""))
|
|
|
+ {
|
|
|
+ b.MateriaPlanautoButtonIndex = true;
|
|
|
+ b.MateriaPlanautoButtonInsert = true;
|
|
|
+ b.MateriaPlanautoButtonInsertBatch = true;
|
|
|
+ b.MateriaPlanautoButtonCopy = true;
|
|
|
+ b.MateriaPlanautoButtonUpdate = true;
|
|
|
+ b.MateriaPlanautoButtonDelete = true;
|
|
|
+ b.MateriaPlanautoButtonCancel = true;
|
|
|
+ b.MateriaPlanautoButtonSearch = true;
|
|
|
+ b.MateriaPlanautoButtonDetail = true;
|
|
|
+ b.MateriaPlanautoButtonCheckbox = true;
|
|
|
+ b.MateriaPlanautoButtonExport = true;
|
|
|
+ b.MateriaPlanautoButtonReload = true;
|
|
|
+ };
|
|
|
+ switch (context.Request["m"].ToString().ToLower())
|
|
|
+ {
|
|
|
+ case "b":
|
|
|
+ {
|
|
|
+ //按钮
|
|
|
+ context.Response.Write(new JsonResult(b).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "z":
|
|
|
+ {
|
|
|
+ detailplanID = context.Request["PLANID"];
|
|
|
+ //搜索明细
|
|
|
+ if (b.MateriaPlanautoButtonIndex)
|
|
|
+ context.Response.Write(search(context.Request.Form));
|
|
|
+ else
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "ss":
|
|
|
+ {
|
|
|
+ //搜索主表
|
|
|
+ if (b.MateriaPlanautoButtonIndex)
|
|
|
+ {
|
|
|
+ context.Response.Write(searchs(context.Request.Form));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "dr":
|
|
|
+ {
|
|
|
+ //导入
|
|
|
+ context.Response.Write(import(context));
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ case "t":
|
|
|
+ {
|
|
|
+ //搜索主表编辑明细
|
|
|
+ context.Response.Write(searchdetail(context));
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ case "i":
|
|
|
+ {
|
|
|
+ //插入
|
|
|
+ if (b.MateriaPlanautoButtonInsert)
|
|
|
+ if (context.Request.Files.Count > 0 && !string.IsNullOrWhiteSpace(context.Request.Files[0].FileName.ToString()))
|
|
|
+ {
|
|
|
+ context.Response.Write(insertImport(context));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ context.Response.Write(insert(context.Request.Form));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "u":
|
|
|
+ {
|
|
|
+ //修改
|
|
|
+ if (b.MateriaPlanautoButtonUpdate)
|
|
|
+ context.Response.Write(update(context.Request.Form));
|
|
|
+ else
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "d":
|
|
|
+ {
|
|
|
+ //删除
|
|
|
+ if (b.MateriaPlanautoButtonDelete)
|
|
|
+ context.Response.Write(delete(context.Request["id"]));
|
|
|
+ else
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "pd":
|
|
|
+ {
|
|
|
+ //删除总单
|
|
|
+ if (b.MateriaPlanautoButtonDelete)
|
|
|
+ context.Response.Write(plandelete(context.Request["id"]));
|
|
|
+ else
|
|
|
+ context.Response.Write(new JsonResult(JsonStatus.rightError).ToJson());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "dd":
|
|
|
+ {
|
|
|
+ context.Response.Write(searchdetail());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "adddetail":
|
|
|
+ {
|
|
|
+ context.Response.Write(insertdetail(context.Request["data"], context.Request["PLANID"]));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "ig":
|
|
|
+ {
|
|
|
+ //生成注浆计划
|
|
|
+ context.Response.Write(insertgrout(context.Request["data"]));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "id":
|
|
|
+ {
|
|
|
+ //生成交坯计划
|
|
|
+ context.Response.Write(insertdeliver(context.Request["data"]));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "ia":
|
|
|
+ {
|
|
|
+ //同时生成注浆及交坯计划
|
|
|
+ context.Response.Write(insertall(context.Request["data"]));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "h":
|
|
|
+ {
|
|
|
+ //履历查询
|
|
|
+ detailplanID = context.Request["PLANID"];
|
|
|
+ context.Response.Write(searchHistory(context.Request.Form));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private string import(HttpContext context)
|
|
|
+ {
|
|
|
+ //上传文件
|
|
|
+ string filePath = "/upload/dailyplan/" + DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
|
|
|
+ string fileName = filePath + "/生产计划" + DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
|
|
|
+ string diskFileName = context.Server.MapPath(fileName);
|
|
|
+ if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
|
|
|
+ context.Request.Files[0].SaveAs(diskFileName);
|
|
|
+
|
|
|
+ //读excel
|
|
|
+ DataTable dt = Import.ExcelToDataTable(diskFileName);
|
|
|
+ if (dt.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "Excel中无数据" }.ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ int result = 0;
|
|
|
+ conn.BeginTransaction();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ int row = 1;
|
|
|
+ int planID = Convert.ToInt32(HttpContext.Current.Request["id"]);
|
|
|
+
|
|
|
+ foreach (DataRow item in dt.Rows)
|
|
|
+ {
|
|
|
+ // 物料编码
|
|
|
+ if (string.IsNullOrEmpty(item["物料编码"] + ""))
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "第" + row + "行,物料编码不能为空" }.ToJson();
|
|
|
+ }
|
|
|
+ string materialCode = item["物料编码"].ToString();
|
|
|
+
|
|
|
+ // 计划数量
|
|
|
+ if (string.IsNullOrEmpty(item["计划数量"] + ""))
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "第" + row + "行,计划数量不能为空" }.ToJson();
|
|
|
+ }
|
|
|
+ string plancount = item["计划数量"].ToString();
|
|
|
+
|
|
|
+ // 备注
|
|
|
+ string detailRemarks = item["备注"].ToString();
|
|
|
+ //物料描述
|
|
|
+ string meterialRemark = getMeterialRemark(materialCode);
|
|
|
+
|
|
|
+ string sqlStr = @" SELECT SP.DETAILID,SP.PLANCOUNT
|
|
|
+ FROM TP_SEMIFINISHED_PLANDETAIL SP
|
|
|
+ WHERE SP.PLANID = @PLANID@ AND SP.VALUEFLAG =1
|
|
|
+ AND SP.MATERIALCODE = @MATERIALCODE@";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("PLANID", planID));
|
|
|
+ sqlPara.Add(new CDAParameter("MATERIALCODE", materialCode));
|
|
|
+
|
|
|
+ DataTable plandt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+
|
|
|
+ if (plandt != null && plandt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ ////编辑
|
|
|
+ //result += conn.ExecuteNonQuery(@"UPDATE TP_SEMIFINISHED_PLANDETAIL SET
|
|
|
+ // PLANCOUNT = PLANCOUNT + @PLANCOUNT@, REMARKS = @REMARKS@ ,UPDATEUSERID = @UPDATEUSERID@ ,UPDATETIME= SYSDATE,GROUTINGFLAG = 0,DELIVERFLAG = 0
|
|
|
+ // WHERE DETAILID = @DETAILID@ AND MATERIALCODE = @MATERIALCODE@
|
|
|
+ // ",
|
|
|
+ // new CDAParameter("PLANCOUNT", Convert.ToInt32( plancount)),
|
|
|
+ // new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ // new CDAParameter("REMARKS", detailRemarks),
|
|
|
+ // new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ // new CDAParameter("DETAILID", Convert.ToInt32(plandt.Rows[0]["DETAILID"]))
|
|
|
+ //);
|
|
|
+ //新建
|
|
|
+ object detailID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLANDETAIL_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANDETAIL
|
|
|
+ (DETAILID
|
|
|
+ ,PLANID
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@DETAILID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", Convert.ToInt32( plancount)),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【物料增加计划】-")
|
|
|
+ );
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@DETAILID@
|
|
|
+ ,3
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", plancount),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【物料增加计划】-"+detailRemarks)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object detailID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLANDETAIL_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANDETAIL
|
|
|
+ (DETAILID
|
|
|
+ ,PLANID
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@DETAILID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", plancount),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailRemarks)
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@DETAILID@
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", plancount),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailRemarks)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ row++;
|
|
|
+ }
|
|
|
+ if (result > 0)
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.error).ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = ex.Message }.ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private string delete(string id)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ conn.BeginTransaction();
|
|
|
+ if (id is object)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //插入删除履历
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,VALUEFLAG
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ SELECT PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,3 as EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,@REMARKS@ as REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,0 AS VALUEFLAG
|
|
|
+ ,@CREATEUSERID@ as CREATEUSERID
|
|
|
+ FROM TP_SEMIFINISHED_PLANDETAIL WHERE instr(',' || @detailID@ || ',', ',' || DETAILID || ',') > 0
|
|
|
+ ",
|
|
|
+ new CDAParameter("detailID", id),
|
|
|
+ new CDAParameter("REMARKS", "被删除"),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ //删除总单
|
|
|
+ result += conn.ExecuteNonQuery(@"DELETE FROM TP_SEMIFINISHED_PLANDETAIL WHERE instr(',' || @detailID@ || ',', ',' || DETAILID || ',') > 0 ",
|
|
|
+ new CDAParameter("detailID", id)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (result > 0)
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError).ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除总单
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string plandelete(string id)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ conn.BeginTransaction();
|
|
|
+ if (id is object)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //删除总单
|
|
|
+ int result = conn.ExecuteNonQuery(@"update TP_SEMIFINISHED_PLAN set valueflag = 0 WHERE PLANID = @PLANID@",
|
|
|
+ new CDAParameter("PLANID", id)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (result > 0)
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError).ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 修改
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string update(NameValueCollection form)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ // 计划名称
|
|
|
+ string PLANNAME = form["PLANNAME"];
|
|
|
+ // 备注
|
|
|
+ string REMARKS = form["REMARKS"];
|
|
|
+
|
|
|
+ string sqlStr = @"UPDATE TP_SEMIFINISHED_PLAN SET ";
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(REMARKS + ""))
|
|
|
+ {
|
|
|
+ sqlStr += " REMARKS = '" + REMARKS + "',";
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(PLANNAME + ""))
|
|
|
+ {
|
|
|
+ sqlStr += " PLANNAME = '" + PLANNAME + "',";
|
|
|
+ }
|
|
|
+ sqlStr += @"updateuserid = @UpdateUserID@ ,updatetime = SYSDATE WHERE PLANID = @PLANID@";
|
|
|
+
|
|
|
+ int result = conn.ExecuteNonQuery(sqlStr,
|
|
|
+ new CDAParameter("UpdateUserID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("PLANID", HttpContext.Current.Request["id"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 修改
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insertdetail(string jsondata,string planid)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ { conn.BeginTransaction();
|
|
|
+ //明细
|
|
|
+ DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ string sqlStr = @" SELECT SP.DETAILID,SP.PLANCOUNT
|
|
|
+ FROM TP_SEMIFINISHED_PLANDETAIL SP
|
|
|
+ WHERE SP.PLANID = @PLANID@ AND SP.VALUEFLAG =1
|
|
|
+ AND SP.MATERIALCODE = @MATERIALCODE@";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("PLANID", Convert.ToInt32(planid)));
|
|
|
+ sqlPara.Add(new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]));
|
|
|
+
|
|
|
+ DataTable plandt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+ int result = 0;
|
|
|
+ //物料描述
|
|
|
+ string meterialRemark = getMeterialRemark(detailTable.Rows[i]["MATERIALCODE"].ToString());
|
|
|
+ if (plandt != null && plandt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ ////编辑
|
|
|
+ //result += conn.ExecuteNonQuery(@"UPDATE TP_SEMIFINISHED_PLANDETAIL SET
|
|
|
+ // PLANCOUNT = PLANCOUNT + @PLANCOUNT@, REMARKS = @REMARKS@ ,UPDATEUSERID = @UPDATEUSERID@ ,UPDATETIME= SYSDATE,GROUTINGFLAG = 0,DELIVERFLAG = 0
|
|
|
+ // WHERE DETAILID = @DETAILID@ AND MATERIALCODE = @MATERIALCODE@
|
|
|
+ // ",
|
|
|
+ // new CDAParameter("PLANCOUNT", Convert.ToInt32( detailTable.Rows[i]["PLANCOUNT"])),
|
|
|
+ // new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ // new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"]),
|
|
|
+ // new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ // new CDAParameter("DETAILID", Convert.ToInt32(plandt.Rows[0]["DETAILID"]))
|
|
|
+ //);
|
|
|
+ //新建
|
|
|
+ object detailID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLANDETAIL_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANDETAIL
|
|
|
+ (DETAILID
|
|
|
+ ,PLANID
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@DETAILID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", Convert.ToInt32( detailTable.Rows[i]["PLANCOUNT"])),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【物料增加计划】-"+ detailTable.Rows[i]["REMARKS"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@DETAILID@
|
|
|
+ ,3
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT",Convert.ToInt32( detailTable.Rows[i]["PLANCOUNT"])),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【物料增加计划】-"+ detailTable.Rows[i]["REMARKS"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object detailID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLANDETAIL_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANDETAIL
|
|
|
+ (DETAILID
|
|
|
+ ,PLANID
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@DETAILID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", Convert.ToInt32( detailTable.Rows[i]["PLANCOUNT"])),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"])
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@DETAILID@
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", Convert.ToInt32( detailTable.Rows[i]["PLANCOUNT"])),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailTable.Rows[i]["REMARKS"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 编辑查询
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string detail()
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"
|
|
|
+ SELECT gpm.mold_begindate
|
|
|
+ ,gpm.mold_enddate
|
|
|
+ ,gpm.groutinglineid as LINEID
|
|
|
+ ,gpm.groutinglinedetailid
|
|
|
+ ,gpm.groutinglinecode
|
|
|
+ ,gpm.groutingmouldcode
|
|
|
+ ,gpm.workshop
|
|
|
+ ,gpm.goodsid
|
|
|
+ ,gpm.sap_sku
|
|
|
+ ,gpm.std_count
|
|
|
+ ,day_grouting_num
|
|
|
+ ,gpm.remarks
|
|
|
+ ,gpm.MOLD_STATUS
|
|
|
+ FROM t_gline_plan_mold gpm
|
|
|
+ where gpm.moldid = @moldID@
|
|
|
+ ",
|
|
|
+ new CDAParameter("moldID", HttpContext.Current.Request["id"])
|
|
|
+ );
|
|
|
+ return new JsonResult(dt).ToJson();
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insert(NameValueCollection form)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ // 计划月份
|
|
|
+ DateTime planMonth = Convert.ToDateTime(form["PLANMONTH"]);
|
|
|
+ // 计划名称
|
|
|
+ string planName = form["PLANNAME"];
|
|
|
+
|
|
|
+ // 备注
|
|
|
+ string REMARKS = form["REMARKS"];
|
|
|
+
|
|
|
+ //查找该月是否有计划
|
|
|
+ DataTable plandts = conn.ExecuteDatatable(@"SELECT PLANNAME FROM TP_SEMIFINISHED_PLAN WHERE PLANMONTH = @PLANMONTH@ AND VALUEFLAG = 1 ",
|
|
|
+ new CDAParameter("PLANMONTH", planMonth, DataType.DateTime)
|
|
|
+ );
|
|
|
+ if (plandts != null && plandts.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "该月已存在计划单,请重新选择月份或者编辑当月计划单" }.ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //查找该月是否有计划
|
|
|
+ DataTable plandt = conn.ExecuteDatatable(@"SELECT PLANNAME FROM TP_SEMIFINISHED_PLAN WHERE PLANMONTH = @PLANMONTH@ AND VALUEFLAG = 1 ",
|
|
|
+ new CDAParameter("PLANMONTH", planMonth, DataType.DateTime)
|
|
|
+ );
|
|
|
+ if (plandt != null && plandt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "该月已存在计划单,请重新选择月份或者编辑当月计划单" }.ToJson();
|
|
|
+ }
|
|
|
+ object planID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLAN_ID");
|
|
|
+ //计划单号
|
|
|
+ string planCode = "P" + DateTime.Now.Date.ToString("yyyyMMdd") + planID.ToString();
|
|
|
+
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLAN
|
|
|
+ (PLANID
|
|
|
+ ,PLANCODE
|
|
|
+ ,PLANNAME
|
|
|
+ ,PLANMONTH
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@PLANCODE@
|
|
|
+ ,@PLANNAME@
|
|
|
+ ,TRUNC(@PLANMONTH@, 'MM')
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANMONTH", planMonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("PLANCODE", planCode),
|
|
|
+ new CDAParameter("PLANNAME", planName),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", REMARKS)
|
|
|
+ );
|
|
|
+
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加导入
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insertImport(HttpContext context)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ conn.BeginTransaction();
|
|
|
+
|
|
|
+ NameValueCollection form = context.Request.Form;
|
|
|
+ // 计划月份
|
|
|
+ DateTime planMonth = Convert.ToDateTime(form["PLANMONTH"]);
|
|
|
+ // 计划名称
|
|
|
+ string planName = form["PLANNAME"];
|
|
|
+
|
|
|
+ // 备注
|
|
|
+ string REMARKS = form["REMARKS"];
|
|
|
+
|
|
|
+ //查找该月是否有计划
|
|
|
+ DataTable plandts = conn.ExecuteDatatable(@"SELECT PLANNAME FROM TP_SEMIFINISHED_PLAN WHERE PLANMONTH = @PLANMONTH@ AND VALUEFLAG = 1 ",
|
|
|
+ new CDAParameter("PLANMONTH", planMonth, DataType.DateTime)
|
|
|
+ );
|
|
|
+ if (plandts != null && plandts.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "该月已存在计划单,请重新选择月份或者编辑当月计划单" }.ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ object planID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLAN_ID");
|
|
|
+ //计划单号
|
|
|
+ string planCode = "P" + DateTime.Now.Date.ToString("yyyyMMdd") + planID.ToString();
|
|
|
+
|
|
|
+ int result = conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLAN
|
|
|
+ (PLANID
|
|
|
+ ,PLANCODE
|
|
|
+ ,PLANNAME
|
|
|
+ ,PLANMONTH
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@PLANCODE@
|
|
|
+ ,@PLANNAME@
|
|
|
+ ,TRUNC(@PLANMONTH@, 'MM')
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANMONTH", planMonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("PLANCODE", planCode),
|
|
|
+ new CDAParameter("PLANNAME", planName),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", REMARKS)
|
|
|
+ );
|
|
|
+
|
|
|
+ //上传文件
|
|
|
+ string filePath = "/upload/plan/" + DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ System.IO.Directory.CreateDirectory(context.Server.MapPath(filePath));
|
|
|
+ string fileName = filePath + "/生产计划" + DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ fileName += System.IO.Path.GetExtension(context.Request.Files[0].FileName);
|
|
|
+ string diskFileName = context.Server.MapPath(fileName);
|
|
|
+ if (System.IO.File.Exists(diskFileName)) System.IO.File.Delete(diskFileName);
|
|
|
+ context.Request.Files[0].SaveAs(diskFileName);
|
|
|
+
|
|
|
+ //读excel
|
|
|
+ DataTable dt = Import.ExcelToDataTable(diskFileName);
|
|
|
+ if (dt.Rows.Count == 0)
|
|
|
+ {
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "Excel中无数据" }.ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ int row = 1;
|
|
|
+
|
|
|
+ foreach (DataRow item in dt.Rows)
|
|
|
+ {
|
|
|
+ // 物料编码
|
|
|
+ if (string.IsNullOrEmpty(item["物料编码"] + ""))
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "第" + row + "行,物料编码不能为空" }.ToJson();
|
|
|
+ }
|
|
|
+ string materialCode = item["物料编码"].ToString();
|
|
|
+
|
|
|
+ // 计划数量
|
|
|
+ if (string.IsNullOrEmpty(item["计划数量"] + ""))
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "第" + row + "行,计划数量不能为空" }.ToJson();
|
|
|
+ }
|
|
|
+ string plancount = item["计划数量"].ToString();
|
|
|
+
|
|
|
+ // 备注
|
|
|
+ string detailRemarks = item["备注"].ToString();
|
|
|
+ string meterialRemark = getMeterialRemark(materialCode);
|
|
|
+
|
|
|
+ object detailID = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PLANDETAIL_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANDETAIL
|
|
|
+ (DETAILID
|
|
|
+ ,PLANID
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@DETAILID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", plancount),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailRemarks)
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID
|
|
|
+ ,DETAILID
|
|
|
+ ,EDITFLAG
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,REMARKS
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@
|
|
|
+ ,@DETAILID@
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@REMARKS@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planID)),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailID)),
|
|
|
+ new CDAParameter("MATERIALCODE", materialCode),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", plancount),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", detailRemarks)
|
|
|
+ );
|
|
|
+
|
|
|
+ row++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (result > 0)
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.error).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = ex.Message }.ToJson();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 查询物料描述
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string getMeterialRemark(string materialCode)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string sqlStr = @" SELECT s.MAKTX
|
|
|
+ FROM TP_PC_SAPBOMDETAIL s
|
|
|
+ WHERE s.MATNR = @materialCode@ ";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("materialCode", materialCode));
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
|
|
|
+ string meterialRemark = "";
|
|
|
+ if (dt != null && dt.Rows.Count >0)
|
|
|
+ {
|
|
|
+ meterialRemark = dt.Rows[0]["MAKTX"].ToString();
|
|
|
+ }
|
|
|
+ return meterialRemark;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private class Button
|
|
|
+ {
|
|
|
+ public bool MateriaPlanautoButtonIndex = false;
|
|
|
+ public bool MateriaPlanautoButtonInsert = false;
|
|
|
+ public bool MateriaPlanautoButtonInsertBatch = false;
|
|
|
+ public bool MateriaPlanautoButtonCopy = false;
|
|
|
+ public bool MateriaPlanautoButtonUpdate = false;
|
|
|
+ public bool MateriaPlanautoButtonDelete = false;
|
|
|
+ public bool MateriaPlanautoButtonCancel = false;
|
|
|
+ public bool MateriaPlanautoButtonSearch = false;
|
|
|
+ public bool MateriaPlanautoButtonDetail = false;
|
|
|
+ public bool MateriaPlanautoButtonCheckbox = false;
|
|
|
+ public bool MateriaPlanautoButtonExport = false;
|
|
|
+ public bool MateriaPlanautoButtonReload = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索主表
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string searchs(NameValueCollection form)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
|
|
|
+ int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
|
|
|
+ string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
|
|
|
+ string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
|
|
|
+
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ p.PLANID SID,
|
|
|
+ p.PLANID,
|
|
|
+ p.PLANCODE,
|
|
|
+ p.PLANNAME,
|
|
|
+ p.REMARKS,
|
|
|
+ TO_CHAR(p.PLANMONTH, 'YYYY-MM') PLANMONTH
|
|
|
+ FROM
|
|
|
+ TP_SEMIFINISHED_PLAN p
|
|
|
+ WHERE
|
|
|
+ p.valueflag = 1
|
|
|
+ ";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+
|
|
|
+ if(!string.IsNullOrEmpty(form["PLANNAME"]))
|
|
|
+ {
|
|
|
+ sqlStr += " AND INSTR( P.PLANNAME, @PLANNAME@ ) > 0 ";
|
|
|
+ sqlPara.Add(new CDAParameter("PLANNAME", form["PLANNAME"]));
|
|
|
+ }
|
|
|
+ if(!string.IsNullOrEmpty(form["PLANMONTH"]))
|
|
|
+ {
|
|
|
+ sqlStr += " AND P.PLANMONTH = @PLANMONTH@";
|
|
|
+ sqlPara.Add(new CDAParameter("PLANMONTH", form["PLANMONTH"], DataType.DateTime));
|
|
|
+ }
|
|
|
+ if (Convert.ToInt32(HttpContext.Current.Request["id"]) > 0)
|
|
|
+ {
|
|
|
+ sqlStr += " AND P.PLANID = @PLANID@";
|
|
|
+ sqlPara.Add(new CDAParameter("PLANID",Convert.ToInt32(HttpContext.Current.Request["id"]), DataType.DateTime));
|
|
|
+
|
|
|
+ }
|
|
|
+ if(sort != "")
|
|
|
+ {
|
|
|
+ sqlStr += " ORDER BY " + sort + " " + order;
|
|
|
+ }
|
|
|
+ int total = 0;
|
|
|
+ DataTable dt = conn.SelectPages(page, rows,out total, sqlStr, sqlPara.ToArray());
|
|
|
+ return new JsonResult(dt) { total = total}.ToJson();
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索编辑信息
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string searchdetail(HttpContext contest)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string sqlStr = @"
|
|
|
+ SELECT
|
|
|
+ p.PLANID SID,
|
|
|
+ p.PLANID,
|
|
|
+ p.PLANCODE,
|
|
|
+ p.PLANNAME,
|
|
|
+ p.REMARKS,
|
|
|
+ TO_CHAR(p.PLANMONTH, 'YYYY-MM') PLANMONTH
|
|
|
+ FROM
|
|
|
+ TP_SEMIFINISHED_PLAN p
|
|
|
+ WHERE
|
|
|
+ 1 = 1
|
|
|
+ ";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+
|
|
|
+ if (Convert.ToInt32(contest.Request["id"]) > 0)
|
|
|
+ {
|
|
|
+ sqlStr += " AND P.PLANID = @PLANID@";
|
|
|
+ sqlPara.Add(new CDAParameter("PLANID",Convert.ToInt32(contest.Request["id"])));
|
|
|
+
|
|
|
+ }
|
|
|
+ int total = 0;
|
|
|
+ DataTable dt = conn.ExecuteDatatable( sqlStr, sqlPara.ToArray());
|
|
|
+ return new JsonResult(dt) { total = total}.ToJson();
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索明细
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string search(NameValueCollection form)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ int page = HttpContext.Current.Request["page"] is object ? Convert.ToInt32(HttpContext.Current.Request["page"]) : 1;
|
|
|
+ int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 10;
|
|
|
+ string sort = HttpContext.Current.Request["sort"] is object ? HttpContext.Current.Request["sort"] : "";
|
|
|
+ string order = HttpContext.Current.Request["order"] is object ? HttpContext.Current.Request["order"] : "";
|
|
|
+
|
|
|
+ //物料编码
|
|
|
+ string materialCode = form["MATERIALCODE"];
|
|
|
+
|
|
|
+ string sqlStr = @"SELECT SP.PLANID,
|
|
|
+ SP.DETAILID,
|
|
|
+ SP.DETAILID SID,
|
|
|
+ SP.MATERIALCODE,
|
|
|
+ SP.MATERIALREMARK,
|
|
|
+ SP.PLANCOUNT,
|
|
|
+ CASE WHEN SP.GROUTINGFLAG = 1 THEN SP.GROUTINGQUALITY WHEN SP.GROUTINGFLAG = 0 THEN NVL(SQ.FIXEDGROUTINGQUALITY,SQ.GROUTINGQUALITY) END AS GROUTINGQUALITY,
|
|
|
+ CASE WHEN SP.GROUTINGFLAG = 1 THEN SP.GROUTINGPLANCOUNT WHEN SP.GROUTINGFLAG = 0 THEN ROUND(SP.PLANCOUNT / NULLIF(NVL(SQ.FIXEDGROUTINGQUALITY, SQ.GROUTINGQUALITY), 0)) END AS GROUTINGPLANCOUNT,
|
|
|
+ CASE WHEN SP.GROUTINGFLAG = 1 THEN '已生成' WHEN SP.GROUTINGFLAG = 0 THEN '未生成' END AS GROUTINGFLAG,
|
|
|
+ CASE WHEN SP.DELIVERFLAG = 1 THEN SP.DELIVERQUALITY WHEN SP.DELIVERFLAG = 0 THEN NVL(SQ.FIXEDDELIVERQUALITY,SQ.DELIVERQUALITY) END AS DELIVERQUALITY,
|
|
|
+ CASE WHEN SP.DELIVERFLAG = 1 THEN SP.DELIVERPLANCOUNT WHEN SP.DELIVERFLAG = 0 THEN ROUND(SP.PLANCOUNT / NULLIF(NVL(SQ.FIXEDDELIVERQUALITY, SQ.DELIVERQUALITY), 0)) END AS DELIVERPLANCOUNT,
|
|
|
+ CASE WHEN SP.DELIVERFLAG = 1 THEN '已生成' WHEN SP.DELIVERFLAG = 0 THEN '未生成' END AS DELIVERFLAG,
|
|
|
+ SP.CREATETIME,
|
|
|
+ U.USERNAME AS CREATEUSERCODE,
|
|
|
+ SP.UPDATETIME,
|
|
|
+ U1.USERNAME AS UPDATEUSERCODE,
|
|
|
+ SP.REMARKS,
|
|
|
+ P.PLANMONTH
|
|
|
+ FROM TP_SEMIFINISHED_PLANDETAIL SP
|
|
|
+ LEFT JOIN TP_SEMIFINISHED_PLAN P ON P.PLANID = SP.PLANID
|
|
|
+ LEFT JOIN TP_MST_USER U ON U.USERID = SP.CREATEUSERID
|
|
|
+ LEFT JOIN TP_MST_USER U1 ON U1.USERID = SP.UPDATEUSERID
|
|
|
+ LEFT JOIN TP_SEMIFINISHED_QUALITYPOINT SQ ON SQ.MATERIALCODE = SP.MATERIALCODE
|
|
|
+ WHERE SP.VALUEFLAG = 1
|
|
|
+ AND SP.ACCOUNTID = @accountid@";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("accountid", HttpContext.Current.Session["accountId"]));
|
|
|
+ //主表计划ID
|
|
|
+ if (!string.IsNullOrEmpty(detailplanID))
|
|
|
+ {
|
|
|
+ sqlStr += " AND SP.PLANID = " + detailplanID ;
|
|
|
+
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(materialCode))
|
|
|
+ {
|
|
|
+ sqlStr += " and SP.MATERIALCODE like '%" + materialCode + "%' ";
|
|
|
+ }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
|
|
|
+ return data.ToJson();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索明细
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string searchdetail()
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string sqlStr = @"SELECT SP.PLANID,
|
|
|
+ SP.MATERIALCODE,
|
|
|
+ SP.MATERIALREMARK,
|
|
|
+ SP.PLANCOUNT,
|
|
|
+ SP.REMARKS
|
|
|
+ FROM TP_SEMIFINISHED_PLANDETAIL SP
|
|
|
+ WHERE 1=0 ";
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("accountid", HttpContext.Current.Session["accountId"]));
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ JsonResult data = Easyui.ExecuteJsonResult(conn, sqlStr, sqlPara);
|
|
|
+ return data.ToJson();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 生成注浆计划
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insertgrout(string jsondata)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ { conn.BeginTransaction();
|
|
|
+ //明细
|
|
|
+ DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
|
|
|
+ int result = 0;
|
|
|
+ string materialcodes = "";
|
|
|
+ int planid = 0;
|
|
|
+ string planmonth = "";
|
|
|
+ if (detailTable != null && detailTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ planid = Convert.ToInt32(detailTable.Rows[0]["PLANID"].ToString());
|
|
|
+ planmonth = detailTable.Rows[0]["PLANMONTH"].ToString();
|
|
|
+ //保存调整后的总计划,更新标识为已生成
|
|
|
+ //保存总计划履历表,编辑类型
|
|
|
+ DataColumn dataColumn = new DataColumn("MAT20", typeof(string));
|
|
|
+ detailTable.Columns.Add(dataColumn);
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ //根据物料查找物料关系对照表,找到对应湿坯半成品
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT MAT20 FROM TP_SEMIFINISHED_MATERIALLINK WHERE MATERIALCODE = @MATERIALCODE@ ",
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dt.Rows[0]["MAT20"].ToString()))
|
|
|
+ {
|
|
|
+ //找到对应湿坯半成品
|
|
|
+ detailTable.Rows[i]["MAT20"] = dt.Rows[0]["MAT20"].ToString();
|
|
|
+
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"UPDATE TP_SEMIFINISHED_PLANDETAIL SET
|
|
|
+ PLANCOUNT = @PLANCOUNT@ ,GROUTINGQUALITY = @GROUTINGQUALITY@, GROUTINGPLANCOUNT = @GROUTINGPLANCOUNT@, UPDATEUSERID = @UPDATEUSERID@ ,UPDATETIME= SYSDATE,GROUTINGFLAG = 1
|
|
|
+ WHERE DETAILID = @DETAILID@ AND MATERIALCODE = @MATERIALCODE@
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANCOUNT", detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("GROUTINGQUALITY", detailTable.Rows[i]["GROUTINGQUALITY"]),
|
|
|
+ new CDAParameter("GROUTINGPLANCOUNT", detailTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"]))
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID ,DETAILID ,EDITFLAG ,MATERIALCODE ,MATERIALREMARK ,PLANCOUNT ,GROUTINGQUALITY ,GROUTINGPLANCOUNT ,GROUTINGFLAG ,REMARKS ,ACCOUNTID ,CREATEUSERID )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@,@DETAILID@,3,@MATERIALCODE@,@MATERIALREMARK@ ,@PLANCOUNT@,@GROUTINGQUALITY@,@GROUTINGPLANCOUNT@,1,@REMARKS@,@ACCOUNTID@,@CREATEUSERID@ )",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(detailTable.Rows[i]["PLANID"])),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", detailTable.Rows[i]["MATERIALREMARK"]),
|
|
|
+ new CDAParameter("PLANCOUNT",detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("GROUTINGQUALITY",detailTable.Rows[i]["GROUTINGQUALITY"]),
|
|
|
+ new CDAParameter("GROUTINGPLANCOUNT",detailTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【生成注浆计划】")
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //未找到对应湿坯半成品,无法生成注浆计划
|
|
|
+ materialcodes += detailTable.Rows[i]["MATERIALCODE"] + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //过滤掉没有找到湿坯半成品的物料 过滤 null 和空字符串
|
|
|
+ DataTable syncTable = detailTable.Copy();
|
|
|
+ syncTable.DefaultView.RowFilter = "MAT20 IS NOT NULL AND MAT20 <> ''";
|
|
|
+ syncTable = syncTable.DefaultView.ToTable();
|
|
|
+
|
|
|
+ //根据湿坯半成品进行汇总计划量
|
|
|
+ DataTable summaryTable = new DataTable();
|
|
|
+ summaryTable.Columns.Add("MAT20", typeof(string));
|
|
|
+ summaryTable.Columns.Add("GROUTINGPLANCOUNT", typeof(decimal));
|
|
|
+
|
|
|
+ Dictionary<string, List<DataRow>> groups = new Dictionary<string, List<DataRow>>();
|
|
|
+
|
|
|
+ foreach (DataRow row in syncTable.Rows)
|
|
|
+ {
|
|
|
+ string mat20 = row["MAT20"].ToString();
|
|
|
+ if (!groups.ContainsKey(mat20))
|
|
|
+ {
|
|
|
+ groups[mat20] = new List<DataRow>();
|
|
|
+ }
|
|
|
+ groups[mat20].Add(row);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算汇总
|
|
|
+ foreach (var group in groups)
|
|
|
+ {
|
|
|
+ decimal totalAmount = 0;
|
|
|
+ foreach (DataRow row in group.Value)
|
|
|
+ {
|
|
|
+ if (row["GROUTINGPLANCOUNT"] != DBNull.Value)
|
|
|
+ totalAmount += Convert.ToDecimal(row["GROUTINGPLANCOUNT"]);
|
|
|
+ }
|
|
|
+
|
|
|
+ DataRow newRow = summaryTable.NewRow();
|
|
|
+ newRow["MAT20"] = group.Key;
|
|
|
+ newRow["GROUTINGPLANCOUNT"] = totalAmount;
|
|
|
+ summaryTable.Rows.Add(newRow);
|
|
|
+ }
|
|
|
+
|
|
|
+ //插入注浆计划表(新建?编辑?)
|
|
|
+ //插入注浆计划履历表
|
|
|
+ if (summaryTable != null && summaryTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < summaryTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ string meterialRemark = getMeterialRemark(summaryTable.Rows[i]["MAT20"].ToString());
|
|
|
+ //根据物料查找当月是否已经有计划
|
|
|
+ DataTable proplan = conn.ExecuteDatatable(@"SELECT PRODPLANID FROM TP_SEMIFINISHED_PRODPLAN WHERE MATERIALCODE = @MATERIALCODE@ AND PLANMONTH = @PLANMONTH@ AND PLANID = @PLANID@ AND VALUEFLAG = 1 AND PLANTYPE = 1",
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANMONTH", planmonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", planid)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (proplan != null && proplan.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ UPDATE TP_SEMIFINISHED_PRODPLAN SET PLANCOUNT = PLANCOUNT + @PLANCOUNT@ ,UPDATEUSERID = @UPDATEUSERID@ WHERE PRODPLANID = @PRODPLANID@ AND MATERIALCODE = @MATERIALCODE@",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CHANGEREMARKS
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CHANGEREMARKS@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("CHANGEREMARKS", "增加或减少数量-生成注浆计划"),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object proplanid = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PRODPLAN_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLAN
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "--无勾选数据" }.ToJson();
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(materialcodes))
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success){ message = "--以下物料未生成注浆计划,未找到对应湿坯半成品【" +materialcodes+"】"}.ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 生成交坯计划
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insertdeliver(string jsondata)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ { conn.BeginTransaction();
|
|
|
+ //明细
|
|
|
+ DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
|
|
|
+ int result = 0;
|
|
|
+ string materialcodes = "";
|
|
|
+ int planid = 0;
|
|
|
+ string planmonth = "";
|
|
|
+ if (detailTable != null && detailTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ planid = Convert.ToInt32(detailTable.Rows[0]["PLANID"].ToString());
|
|
|
+ planmonth = detailTable.Rows[0]["PLANMONTH"].ToString();
|
|
|
+ //保存调整后的总计划,更新标识为已生成
|
|
|
+ //保存总计划履历表,编辑类型
|
|
|
+ DataColumn dataColumn = new DataColumn("MAT20", typeof(string));
|
|
|
+ detailTable.Columns.Add(dataColumn);
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ //根据物料查找物料关系对照表,找到对应湿坯半成品
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT MAT20 FROM TP_SEMIFINISHED_MATERIALLINK WHERE MATERIALCODE = @MATERIALCODE@ ",
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"])
|
|
|
+ );
|
|
|
+
|
|
|
+ if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dt.Rows[0]["MAT20"].ToString()))
|
|
|
+ {
|
|
|
+ //找到对应湿坯半成品
|
|
|
+ detailTable.Rows[i]["MAT20"] = dt.Rows[0]["MAT20"].ToString();
|
|
|
+
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"UPDATE TP_SEMIFINISHED_PLANDETAIL SET
|
|
|
+ PLANCOUNT = @PLANCOUNT@ ,DELIVERQUALITY = @DELIVERQUALITY@, DELIVERPLANCOUNT = @DELIVERPLANCOUNT@, UPDATEUSERID = @UPDATEUSERID@ ,UPDATETIME= SYSDATE,DELIVERFLAG = 1
|
|
|
+ WHERE DETAILID = @DETAILID@ AND MATERIALCODE = @MATERIALCODE@
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANCOUNT", detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("DELIVERQUALITY", detailTable.Rows[i]["DELIVERQUALITY"]),
|
|
|
+ new CDAParameter("DELIVERPLANCOUNT", detailTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"]))
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID ,DETAILID ,EDITFLAG ,MATERIALCODE ,MATERIALREMARK ,PLANCOUNT ,DELIVERQUALITY ,DELIVERPLANCOUNT ,DELIVERFLAG ,REMARKS ,ACCOUNTID ,CREATEUSERID )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@,@DETAILID@,3,@MATERIALCODE@,@MATERIALREMARK@ ,@PLANCOUNT@,@DELIVERQUALITY@,@DELIVERPLANCOUNT@,1,@REMARKS@,@ACCOUNTID@,@CREATEUSERID@ )",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(detailTable.Rows[i]["PLANID"])),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", detailTable.Rows[i]["MATERIALREMARK"]),
|
|
|
+ new CDAParameter("PLANCOUNT",detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("DELIVERQUALITY",detailTable.Rows[i]["DELIVERQUALITY"]),
|
|
|
+ new CDAParameter("DELIVERPLANCOUNT",detailTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【生成交坯计划】")
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //未找到对应湿坯半成品,无法生成注浆计划
|
|
|
+ materialcodes += detailTable.Rows[i]["MATERIALCODE"] + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //过滤掉没有找到湿坯半成品的物料 过滤 null 和空字符串
|
|
|
+ DataTable syncTable = detailTable.Copy();
|
|
|
+ syncTable.DefaultView.RowFilter = "MAT20 IS NOT NULL AND MAT20 <> ''";
|
|
|
+ syncTable = syncTable.DefaultView.ToTable();
|
|
|
+
|
|
|
+ //根据湿坯半成品进行汇总计划量
|
|
|
+ DataTable summaryTable = new DataTable();
|
|
|
+ summaryTable.Columns.Add("MAT20", typeof(string));
|
|
|
+ summaryTable.Columns.Add("DELIVERPLANCOUNT", typeof(decimal));
|
|
|
+
|
|
|
+ Dictionary<string, List<DataRow>> groups = new Dictionary<string, List<DataRow>>();
|
|
|
+
|
|
|
+ foreach (DataRow row in syncTable.Rows)
|
|
|
+ {
|
|
|
+ string mat20 = row["MAT20"].ToString();
|
|
|
+ if (!groups.ContainsKey(mat20))
|
|
|
+ {
|
|
|
+ groups[mat20] = new List<DataRow>();
|
|
|
+ }
|
|
|
+ groups[mat20].Add(row);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算汇总
|
|
|
+ foreach (var group in groups)
|
|
|
+ {
|
|
|
+ decimal totalAmount = 0;
|
|
|
+ foreach (DataRow row in group.Value)
|
|
|
+ {
|
|
|
+ if (row["DELIVERPLANCOUNT"] != DBNull.Value)
|
|
|
+ totalAmount += Convert.ToDecimal(row["DELIVERPLANCOUNT"]);
|
|
|
+ }
|
|
|
+
|
|
|
+ DataRow newRow = summaryTable.NewRow();
|
|
|
+ newRow["MAT20"] = group.Key;
|
|
|
+ newRow["DELIVERPLANCOUNT"] = totalAmount;
|
|
|
+ summaryTable.Rows.Add(newRow);
|
|
|
+ }
|
|
|
+
|
|
|
+ //插入注浆计划表(新建?编辑?)
|
|
|
+ //插入注浆计划履历表
|
|
|
+ if (summaryTable != null && summaryTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < summaryTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ string meterialRemark = getMeterialRemark(summaryTable.Rows[i]["MAT20"].ToString());
|
|
|
+ //根据物料查找当月是否已经有计划
|
|
|
+ DataTable proplan = conn.ExecuteDatatable(@"SELECT PRODPLANID FROM TP_SEMIFINISHED_PRODPLAN WHERE MATERIALCODE = @MATERIALCODE@ AND PLANMONTH = @PLANMONTH@ AND PLANID = @PLANID@ AND VALUEFLAG = 1 AND PLANTYPE = 2",
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANMONTH", planmonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", planid)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (proplan != null && proplan.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ UPDATE TP_SEMIFINISHED_PRODPLAN SET PLANCOUNT = PLANCOUNT + @PLANCOUNT@ ,UPDATEUSERID = @UPDATEUSERID@ WHERE PRODPLANID = @PRODPLANID@ AND MATERIALCODE = @MATERIALCODE@",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CHANGEREMARKS
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CHANGEREMARKS@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("CHANGEREMARKS", "增加或减少数量-生成交坯计划"),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object proplanid = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PRODPLAN_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLAN
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "--无勾选数据" }.ToJson();
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(materialcodes))
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success){ message = "--以下物料未生成交坯计划,未找到对应湿坯半成品【" +materialcodes+"】"}.ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 生成注浆及交坯计划
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string insertall(string jsondata)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ { conn.BeginTransaction();
|
|
|
+ //明细
|
|
|
+ DataTable detailTable = JsonConvert.DeserializeObject<DataTable>(jsondata);
|
|
|
+ int result = 0;
|
|
|
+ string materialcodes = "";
|
|
|
+ int planid = 0;
|
|
|
+ string planmonth = "";
|
|
|
+ if (detailTable != null && detailTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ planid = Convert.ToInt32(detailTable.Rows[0]["PLANID"].ToString());
|
|
|
+ planmonth = detailTable.Rows[0]["PLANMONTH"].ToString();
|
|
|
+ //保存调整后的总计划,更新标识为已生成
|
|
|
+ //保存总计划履历表,编辑类型
|
|
|
+ DataColumn dataColumn = new DataColumn("MAT20", typeof(string));
|
|
|
+ detailTable.Columns.Add(dataColumn);
|
|
|
+ for (int i = 0; i < detailTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ //根据物料查找物料关系对照表,找到对应湿坯半成品
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT MAT20 FROM TP_SEMIFINISHED_MATERIALLINK WHERE MATERIALCODE = @MATERIALCODE@ ",
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dt.Rows[0]["MAT20"].ToString()))
|
|
|
+ {
|
|
|
+ //找到对应湿坯半成品
|
|
|
+ detailTable.Rows[i]["MAT20"] = dt.Rows[0]["MAT20"].ToString();
|
|
|
+
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"UPDATE TP_SEMIFINISHED_PLANDETAIL SET
|
|
|
+ PLANCOUNT = @PLANCOUNT@ ,GROUTINGQUALITY = @GROUTINGQUALITY@, GROUTINGPLANCOUNT = @GROUTINGPLANCOUNT@,DELIVERQUALITY = @DELIVERQUALITY@, DELIVERPLANCOUNT = @DELIVERPLANCOUNT@, UPDATEUSERID = @UPDATEUSERID@ ,UPDATETIME= SYSDATE,GROUTINGFLAG = 1,DELIVERFLAG = 1
|
|
|
+ WHERE DETAILID = @DETAILID@ AND MATERIALCODE = @MATERIALCODE@
|
|
|
+ ",
|
|
|
+ new CDAParameter("PLANCOUNT", detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("GROUTINGQUALITY", detailTable.Rows[i]["GROUTINGQUALITY"]),
|
|
|
+ new CDAParameter("GROUTINGPLANCOUNT", detailTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("DELIVERQUALITY", detailTable.Rows[i]["DELIVERQUALITY"]),
|
|
|
+ new CDAParameter("DELIVERPLANCOUNT", detailTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"]))
|
|
|
+ );
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PLANHISTORY
|
|
|
+ (PLANID ,DETAILID ,EDITFLAG ,MATERIALCODE ,MATERIALREMARK ,PLANCOUNT ,GROUTINGQUALITY ,GROUTINGPLANCOUNT ,DELIVERQUALITY ,DELIVERPLANCOUNT,GROUTINGFLAG ,DELIVERFLAG,REMARKS ,ACCOUNTID ,CREATEUSERID )
|
|
|
+ VALUES
|
|
|
+ (@PLANID@,@DETAILID@,3,@MATERIALCODE@,@MATERIALREMARK@ ,@PLANCOUNT@,@GROUTINGQUALITY@,@GROUTINGPLANCOUNT@,@DELIVERQUALITY@,@DELIVERPLANCOUNT@,1,1,@REMARKS@,@ACCOUNTID@,@CREATEUSERID@ )",
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(detailTable.Rows[i]["PLANID"])),
|
|
|
+ new CDAParameter("DETAILID", Convert.ToInt32(detailTable.Rows[i]["DETAILID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", detailTable.Rows[i]["MATERIALCODE"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", detailTable.Rows[i]["MATERIALREMARK"]),
|
|
|
+ new CDAParameter("PLANCOUNT",detailTable.Rows[i]["PLANCOUNT"]),
|
|
|
+ new CDAParameter("GROUTINGQUALITY",detailTable.Rows[i]["GROUTINGQUALITY"]),
|
|
|
+ new CDAParameter("GROUTINGPLANCOUNT",detailTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("DELIVERQUALITY", detailTable.Rows[i]["DELIVERQUALITY"]),
|
|
|
+ new CDAParameter("DELIVERPLANCOUNT", detailTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("REMARKS", "【生成注浆及交坯计划】")
|
|
|
+ );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //未找到对应湿坯半成品,无法生成注浆计划
|
|
|
+ materialcodes += detailTable.Rows[i]["MATERIALCODE"] + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //过滤掉没有找到湿坯半成品的物料 过滤 null 和空字符串
|
|
|
+ DataTable syncTable = detailTable.Copy();
|
|
|
+ syncTable.DefaultView.RowFilter = "MAT20 IS NOT NULL AND MAT20 <> ''";
|
|
|
+ syncTable = syncTable.DefaultView.ToTable();
|
|
|
+
|
|
|
+ //根据湿坯半成品进行汇总计划量
|
|
|
+ DataTable summaryTable = new DataTable();
|
|
|
+ summaryTable.Columns.Add("MAT20", typeof(string));
|
|
|
+ summaryTable.Columns.Add("GROUTINGPLANCOUNT", typeof(decimal));
|
|
|
+ summaryTable.Columns.Add("DELIVERPLANCOUNT", typeof(decimal));
|
|
|
+
|
|
|
+ Dictionary<string, List<DataRow>> groups = new Dictionary<string, List<DataRow>>();
|
|
|
+
|
|
|
+ foreach (DataRow row in syncTable.Rows)
|
|
|
+ {
|
|
|
+ string mat20 = row["MAT20"].ToString();
|
|
|
+ if (!groups.ContainsKey(mat20))
|
|
|
+ {
|
|
|
+ groups[mat20] = new List<DataRow>();
|
|
|
+ }
|
|
|
+ groups[mat20].Add(row);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算汇总
|
|
|
+ foreach (var group in groups)
|
|
|
+ {
|
|
|
+ decimal totalAmount = 0;
|
|
|
+ decimal deliverAmount = 0;
|
|
|
+ foreach (DataRow row in group.Value)
|
|
|
+ {
|
|
|
+ if (row["GROUTINGPLANCOUNT"] != DBNull.Value)
|
|
|
+ totalAmount += Convert.ToDecimal(row["GROUTINGPLANCOUNT"]);
|
|
|
+ if (row["DELIVERPLANCOUNT"] != DBNull.Value)
|
|
|
+ deliverAmount += Convert.ToDecimal(row["DELIVERPLANCOUNT"]);
|
|
|
+ }
|
|
|
+
|
|
|
+ DataRow newRow = summaryTable.NewRow();
|
|
|
+ newRow["MAT20"] = group.Key;
|
|
|
+ newRow["GROUTINGPLANCOUNT"] = totalAmount;
|
|
|
+ newRow["DELIVERPLANCOUNT"] = deliverAmount;
|
|
|
+ summaryTable.Rows.Add(newRow);
|
|
|
+ }
|
|
|
+
|
|
|
+ //插入注浆计划表(新建?编辑?)
|
|
|
+ //插入注浆计划履历表
|
|
|
+ if (summaryTable != null && summaryTable.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < summaryTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ string meterialRemark = getMeterialRemark(summaryTable.Rows[i]["MAT20"].ToString());
|
|
|
+ //根据物料查找当月是否已经有注浆计划
|
|
|
+ DataTable proplan = conn.ExecuteDatatable(@"SELECT PRODPLANID FROM TP_SEMIFINISHED_PRODPLAN WHERE MATERIALCODE = @MATERIALCODE@ AND PLANMONTH = @PLANMONTH@ AND PLANID = @PLANID@ AND VALUEFLAG = 1 AND PLANTYPE = 1 ",
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANMONTH", planmonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", planid)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (proplan != null && proplan.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ UPDATE TP_SEMIFINISHED_PRODPLAN SET PLANCOUNT = PLANCOUNT + @PLANCOUNT@ ,UPDATEUSERID = @UPDATEUSERID@ WHERE PRODPLANID = @PRODPLANID@ AND MATERIALCODE = @MATERIALCODE@",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CHANGEREMARKS
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CHANGEREMARKS@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("CHANGEREMARKS", "增加或减少数量-生成注浆计划"),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object proplanid = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PRODPLAN_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLAN
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,1
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["GROUTINGPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (int i = 0; i < summaryTable.Rows.Count; i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ string meterialRemark = getMeterialRemark(summaryTable.Rows[i]["MAT20"].ToString());
|
|
|
+ //根据物料查找当月是否已经有交坯计划
|
|
|
+ DataTable proplan = conn.ExecuteDatatable(@"SELECT PRODPLANID FROM TP_SEMIFINISHED_PRODPLAN WHERE MATERIALCODE = @MATERIALCODE@ AND PLANMONTH = @PLANMONTH@ AND PLANID = @PLANID@ AND VALUEFLAG = 1 AND PLANTYPE = 2",
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANMONTH", planmonth, DataType.DateTime),
|
|
|
+ new CDAParameter("PLANID", planid)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (proplan != null && proplan.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ //编辑
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ UPDATE TP_SEMIFINISHED_PRODPLAN SET PLANCOUNT = PLANCOUNT + @PLANCOUNT@ ,UPDATEUSERID = @UPDATEUSERID@ WHERE PRODPLANID = @PRODPLANID@ AND MATERIALCODE = @MATERIALCODE@",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CHANGEREMARKS
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CHANGEREMARKS@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplan.Rows[0]["PRODPLANID"])),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("CHANGEREMARKS", "增加或减少数量-生成交坯计划"),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //新建
|
|
|
+ object proplanid = conn.GetSequenceNextval("SEQ_SEMIFINISHED_PRODPLAN_ID");
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLAN
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ ,UPDATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@
|
|
|
+ ,@UPDATEUSERID@)
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"]),
|
|
|
+ new CDAParameter("UPDATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ result += conn.ExecuteNonQuery(@"
|
|
|
+ INSERT INTO TP_SEMIFINISHED_PRODPLANHIS
|
|
|
+ (PRODPLANID
|
|
|
+ ,PLANID
|
|
|
+ ,PLANMONTH
|
|
|
+ ,EDITFLAG
|
|
|
+ ,PLANTYPE
|
|
|
+ ,MATERIALCODE
|
|
|
+ ,MATERIALREMARK
|
|
|
+ ,PLANCOUNT
|
|
|
+ ,ACCOUNTID
|
|
|
+ ,CREATEUSERID
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (@PRODPLANID@
|
|
|
+ ,@PLANID@
|
|
|
+ ,@PLANMONTH@
|
|
|
+ ,1
|
|
|
+ ,2
|
|
|
+ ,@MATERIALCODE@
|
|
|
+ ,@MATERIALREMARK@
|
|
|
+ ,@PLANCOUNT@
|
|
|
+ ,@ACCOUNTID@
|
|
|
+ ,@CREATEUSERID@ )
|
|
|
+ ",
|
|
|
+ new CDAParameter("PRODPLANID", Convert.ToInt32(proplanid)),
|
|
|
+ new CDAParameter("PLANID", Convert.ToInt32(planid)),
|
|
|
+ new CDAParameter("PLANMONTH", Convert.ToDateTime(planmonth)),
|
|
|
+ new CDAParameter("MATERIALCODE", summaryTable.Rows[i]["MAT20"]),
|
|
|
+ new CDAParameter("MATERIALREMARK", meterialRemark),
|
|
|
+ new CDAParameter("PLANCOUNT", summaryTable.Rows[i]["DELIVERPLANCOUNT"]),
|
|
|
+ new CDAParameter("ACCOUNTID", Convert.ToInt32(HttpContext.Current.Session["accountId"])),
|
|
|
+ new CDAParameter("CREATEUSERID", HttpContext.Current.Session["userId"])
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ return new JsonResult(JsonStatus.otherError) { message = "--无勾选数据" }.ToJson();
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(materialcodes))
|
|
|
+ {
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success){ message = "--以下物料未生成注浆及交坯计划,未找到对应湿坯半成品【" +materialcodes+"】"}.ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ conn.Rollback();
|
|
|
+ throw ex;
|
|
|
+ }
|
|
|
+ conn.Commit();
|
|
|
+ return new JsonResult(JsonStatus.success).ToJson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索明细履历
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ private string searchHistory(NameValueCollection form)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ //物料编码
|
|
|
+ string materialCode = form["MATERIALCODE"];
|
|
|
+
|
|
|
+ string sqlStr = @"SELECT SP.PLANID,
|
|
|
+ SP.DETAILID,
|
|
|
+ SP.HISTORYID SID,
|
|
|
+ CASE WHEN SP.EDITFLAG = 1 THEN '新建(导入)' WHEN SP.EDITFLAG = 2 THEN '新建(手动)' WHEN SP.EDITFLAG = 3 THEN '编辑' END AS EDITFLAG,
|
|
|
+ SP.MATERIALCODE,
|
|
|
+ SP.MATERIALREMARK,
|
|
|
+ SP.PLANCOUNT,
|
|
|
+ SP.GROUTINGQUALITY,
|
|
|
+ SP.GROUTINGPLANCOUNT,
|
|
|
+ CASE WHEN SP.GROUTINGFLAG = 1 THEN '已生成' WHEN SP.GROUTINGFLAG = 0 THEN '未生成' END AS GROUTINGFLAG,
|
|
|
+ SP.DELIVERQUALITY,
|
|
|
+ SP.DELIVERPLANCOUNT,
|
|
|
+ CASE WHEN SP.DELIVERFLAG = 1 THEN '已生成' WHEN SP.DELIVERFLAG = 0 THEN '未生成' END AS DELIVERFLAG,
|
|
|
+ SP.CREATETIME,
|
|
|
+ U.USERNAME AS CREATEUSERCODE,
|
|
|
+ SP.REMARKS
|
|
|
+ FROM TP_SEMIFINISHED_PLANHISTORY SP
|
|
|
+ LEFT JOIN TP_MST_USER U ON U.USERID = SP.CREATEUSERID
|
|
|
+ WHERE SP.ACCOUNTID = @accountid@";
|
|
|
+
|
|
|
+ List<CDAParameter> sqlPara = new List<CDAParameter>();
|
|
|
+ sqlPara.Add(new CDAParameter("accountid", HttpContext.Current.Session["accountId"]));
|
|
|
+ //主表计划ID
|
|
|
+ if (!string.IsNullOrEmpty(detailplanID))
|
|
|
+ {
|
|
|
+ sqlStr += " AND SP.PLANID = " + detailplanID ;
|
|
|
+
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(materialCode))
|
|
|
+ {
|
|
|
+ sqlStr += " and SP.MATERIALCODE like '%" + materialCode + "%' ";
|
|
|
+ }
|
|
|
+ sqlStr += " ORDER BY SP.CREATETIME ";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ int total = 0;
|
|
|
+ DataTable data = conn.ExecuteDatatable( sqlStr, sqlPara.ToArray());
|
|
|
+ return new JsonResult(data) { total = total}.ToJson();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ throw ex ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|