using BLL; using Model; using System; using System.Linq; using System.Web.Http; namespace WebAPI.Controllers { /** * 物资出库 */ public class MaterialsOutController : ApiController { #region 添加物资出库主表 [HttpPost] public Model.ResponeData AddMaterialOutM(Model.Cl_W_MaterialOutM MaterialOutM) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var userTime = DateTime.Now; int count = db.Cl_W_MaterialOutM.Where(x => x.UserTime.Value.Year == userTime.Year&&x.UserTime.Value.Month==userTime.Month&&x.UserTime.Value.Day==userTime.Day).ToList().Count(); Model.Cl_W_MaterialOutM outm = new Model.Cl_W_MaterialOutM(); outm.OutSheetMID = MaterialOutM.OutSheetMID; outm.ProjectId = MaterialOutM.ProjectId; outm.OutSheetCode = string.Format("CKD--{0}{1}", DateTime.Now.ToString("yyyyMMdd"),count.ToString("000")); outm.UserTime = DateTime.Now; outm.UnitId = MaterialOutM.UnitId; outm.UAid = MaterialOutM.UAid; outm.InstallationId = MaterialOutM.InstallationId; outm.PlanSheetMID = MaterialOutM.PlanSheetMID; // 工区ID outm.YYPID = MaterialOutM.YYPID; outm.RecordMan = MaterialOutM.RecordMan; db.Cl_W_MaterialOutM.InsertOnSubmit(outm); db.SubmitChanges(); responeData.data = MaterialOutM.OutSheetMID; } } catch (System.Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 添加物资子表 [HttpPost] public Model.ResponeData AddMaterialOutS(Model.Cl_W_MaterialOutS MaterialOutS) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { int count = db.Cl_W_MaterialOutM.Where(x => x.UserTime == DateTime.Now).ToList().Count(); Model.Cl_W_MaterialOutS outs = new Model.Cl_W_MaterialOutS(); outs.ProjectId = MaterialOutS.ProjectId; outs.OutSheetMID = MaterialOutS.OutSheetMID; outs.OutSheetSID = Guid.NewGuid().ToString(); outs.MaterialID = MaterialOutS.MaterialID; //outs.Soft = MaterialOutS.Soft ?? DBNull.Value; outs.PlannedQuantity = MaterialOutS.PlannedQuantity; outs.StoreQuantity = MaterialOutS.StoreQuantity; outs.OutQuantity = MaterialOutS.OutQuantity; outs.OutQuantityY = MaterialOutS.OutQuantityY; outs.StorePQuantity = MaterialOutS.StorePQuantity; outs.CertificatesFactoryNo = MaterialOutS.CertificatesFactoryNo; outs.FurnaceBatchNo = MaterialOutS.FurnaceBatchNo; outs.CertificateSelfNo = MaterialOutS.CertificateSelfNo; outs.Weight = MaterialOutS.Weight; outs.Price = MaterialOutS.Price; outs.OutQuantityP = MaterialOutS.OutQuantityP; outs.OutQuantityO = MaterialOutS.OutQuantityO; outs.StorehouseName = MaterialOutS.StorehouseName; outs.StorageSheetSID = MaterialOutS.StorageSheetSID; outs.FirstpartyCode = MaterialOutS.FirstpartyCode; outs.ISupload = MaterialOutS.ISupload; outs.InstallationId = MaterialOutS.InstallationId; outs.Shue = MaterialOutS.Shue; outs.Bhsje = MaterialOutS.Bhsje; db.Cl_W_MaterialOutS.InsertOnSubmit(outs); var sourceData = db.Cl_W_MaterialOutS .Where(s => s.OutSheetMID == MaterialOutS.OutSheetMID) .Select(s => new // 先投影到匿名对象 { ProjectId = s.ProjectId, InstallationId = db.Cl_W_MaterialOutM .Where(m => m.OutSheetMID == s.OutSheetMID) .Select(m => m.InstallationId) .FirstOrDefault(), Ghfs = db.Cl_W_MaterialOutM .Where(m => m.OutSheetMID == s.OutSheetMID) .Select(m => m.YYPID) .FirstOrDefault(), FirstpartyCode = s.FirstpartyCode, MaterialID = s.MaterialID, OutSheetMID = s.OutSheetMID, OutSheetSID = s.OutSheetSID, OutQuantity = s.OutQuantity }) .AsEnumerable() // 切换到客户端评估 .Select(x => new Model.Cl_w_comp // 现在可以构造实体对象了 { CompID = Guid.NewGuid().ToString(), ProjectId = x.ProjectId, InstallationId = x.InstallationId, Ghfs = x.Ghfs, TAreaMaterialMID = x.FirstpartyCode, TAreaMaterialSID = "", MaterialID = x.MaterialID, Aquantity = 0, PlanSheetMID = "", PlanSheetSID = "", Pquantity = 0, StorageSheetMID = "", StorageSheetSID = "", SQuantity = 0, StorageHJSID = "", StorageHJMID = "", HQuantity = 0, OutSheetMID = x.OutSheetMID, OutSheetSID = x.OutSheetSID, OQuantity = x.OutQuantity, ReturnSheetMid = "", ReturnSheetSID = "", RQuantity = 0 }); db.Cl_w_comp.InsertAllOnSubmit(sourceData); Model.Cl_W_MaterialOutM clw = db.Cl_W_MaterialOutM.FirstOrDefault(x => x.OutSheetMID == MaterialOutS.OutSheetMID); if(clw.IsOk != "1") { clw.IsOk = "1"; } db.SubmitChanges(); responeData.data = MaterialOutS.OutSheetSID; } } catch (System.Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }