|  |  | 
 |  |  | using System.Web.Http; | 
 |  |  | using WebAPI.Models; | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  |  | 
 |  |  | namespace WebAPI.Controllers.SCGL.æ¥è®¡å管ç | 
 |  |  | { | 
 |  |  | 
 |  |  |         public WebServer webserver = new WebServer(); | 
 |  |  |         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  |         Sc_WorkBillSortBillMain omdelMian = new Sc_WorkBillSortBillMain(); | 
 |  |  |         public static string BillType = "4610"; | 
 |  |  |  | 
 |  |  |         #region ç产æ¥è®¡å平尠æ¥è¯¢ | 
 |  |  |         [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillList")] | 
 |  |  | 
 |  |  |                 omdelMian = JsonConvert.DeserializeObject<Sc_WorkBillSortBillMain>(sWhere); | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn($"exec h_p_JIT_Sc_WorkBillSortBill_Query '{omdelMian.HPlanBeginDate}',{(omdelMian.HProdORGID==null?0: omdelMian.HProdORGID)},'{omdelMian.HSeOrderBillNo}'" + | 
 |  |  |                     $",'{omdelMian.HPlanEndDate}',{omdelMian.HMaterID},'{omdelMian.HICMOBillNo}',{omdelMian.HWorkShopID}", "h_p_JIT_Sc_WorkBillSortBill_Query"); | 
 |  |  |                     $",'{omdelMian.HPlanEndDate.AddDays(1).AddSeconds(-1)}',{omdelMian.HMaterID},'{omdelMian.HICMOBillNo}',{omdelMian.HWorkShopID}", "h_p_JIT_Sc_WorkBillSortBill_Query"); | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region ç产æ¥è®¡å平尠ä¿å | 
 |  |  |         [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBill_btnSave")] | 
 |  |  |         [HttpPost] | 
 |  |  |         public object JIT_DayPlanPlatFormBill_btnSave([FromBody] JObject sMainSub) | 
 |  |  |         { | 
 |  |  |             var _value = sMainSub["sMainSub"].ToString(); | 
 |  |  |             string msg1 = _value.ToString(); | 
 |  |  |             oCN.BeginTran(); | 
 |  |  |             //ä¿å主表 | 
 |  |  |             objJsonResult = AddBillMain(msg1); | 
 |  |  |             if (objJsonResult.code == "0") | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = objJsonResult.Message; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             oCN.Commit(); | 
 |  |  |             objJsonResult.code = "1"; | 
 |  |  |             objJsonResult.count = 1; | 
 |  |  |             objJsonResult.Message = "åæ®ä¿åæåï¼"; | 
 |  |  |             objJsonResult.data = null; | 
 |  |  |             return objJsonResult; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public json AddBillMain(string msg1) | 
 |  |  |         { | 
 |  |  |             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
 |  |  |             string msg2 = sArray[0].ToString(); | 
 |  |  |             string user = sArray[1].ToString(); | 
 |  |  |  | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Sc_WorkBillSortBill_Edit", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "æ ä¿åæéï¼"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 //JSONåºåå转æ¢åå
¸éå | 
 |  |  |                 List<Dictionary<string, string>> list = new List<Dictionary<string, string>>(); | 
 |  |  |                 List<object> jb = JsonConvert.DeserializeObject<List<object>>(msg2); | 
 |  |  |                 foreach (JObject item in jb) | 
 |  |  |                 { | 
 |  |  |                     Dictionary<string, string> dic = new Dictionary<string, string>(); | 
 |  |  |                     foreach (var itm in item.Properties()) | 
 |  |  |                     { | 
 |  |  |                         dic.Add(itm.Name, itm.Value.ToString()); | 
 |  |  |                     } | 
 |  |  |                     list.Add(dic); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 int TrueCount = 0, SumCount = 0; | 
 |  |  |  | 
 |  |  |                 for (int i = 0; i < list.Count; i++) | 
 |  |  |                 { | 
 |  |  |                     TrueCount = 0; | 
 |  |  |                     SumCount = 0; | 
 |  |  |                     long HInterID = 0; | 
 |  |  |                     var HBillNo = ""; | 
 |  |  |                     if (list[i]["åæ®å·"].ToString() == "" && list[i]["hmainid"].ToString() == "") | 
 |  |  |                     { | 
 |  |  |                         var HICMOBillNo = list[i]["ç产订åå·"].ToString(); | 
 |  |  |                         var HOrderType = list[i]["订åç±»å"].ToString(); | 
 |  |  |                         var HICMOEntrySEQ = list[i]["ç产订åæç»è¡å·"].ToString(); | 
 |  |  |                         var HWorkShopID = list[i]["HWorkShopID"].ToString(); | 
 |  |  |                         var HSourceID = list[i]["HSourceID"].ToString(); | 
 |  |  |                         var HYX = list[i]["ä¼å
级"].ToString(); | 
 |  |  |                         var HProdORGID = list[i]["HProdORGID"].ToString(); | 
 |  |  |                         var HMaterID = list[i]["HMaterID"].ToString(); | 
 |  |  |                         var HMaterName = list[i]["ç©æåç§°"].ToString(); | 
 |  |  |                         var HMaterModel = list[i]["è§æ ¼åå·"].ToString(); | 
 |  |  |                         var HUnitID = list[i]["HUnitID"].ToString(); | 
 |  |  |                         var HSeOrderBillQty = list[i]["éå®è®¢åæ°é"].ToString(); | 
 |  |  |                         var HOrderNeedQty = list[i]["订åéæ±æ°é"].ToString(); | 
 |  |  |                         var HSplitQty = list[i]["æåæ°é"].ToString(); | 
 |  |  |                         var HDayPlanSumQty = list[i]["æ¥è®¡åæ°éæ»é"].ToString(); | 
 |  |  |                         var HPlanBeginDate = list[i]["计åå¼å§æ¥æ"].ToString(); | 
 |  |  |                         var HSeOrderBillNo = list[i]["éå®è®¢åå·"].ToString(); | 
 |  |  |                         var HICMOBillType = list[i]["ç产订ååæ®ç±»å"].ToString(); | 
 |  |  |                         var HSourceStockInQty = list[i]["产线å
¥åºæ°é"].ToString(); | 
 |  |  |                         var HLeftPlanQty = list[i]["æªææ°é"].ToString(); | 
 |  |  |                         var HOrderLev = list[i]["订åç级"].ToString(); | 
 |  |  |                         var HMainSourceInterID = list[i]["æºå主å
ç "].ToString(); | 
 |  |  |                         var HMainSourceEntryID = list[i]["æºååå
ç "].ToString(); | 
 |  |  |  | 
 |  |  |                         if (HSourceID=="") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = $"第{i+1}è¡çäº§èµæºä¸è½ä¸ºç©º!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         ds = oCN.RunProcReturn($"select * from  Sc_WorkBillSortBillMain where HMainSourceEntryID={HMainSourceEntryID}" + | 
 |  |  |                             $" and HMainSourceEntryID={HMainSourceEntryID} and HICMOBillNo='{HICMOBillNo}' and HICMOEntrySEQ={HICMOEntrySEQ} and HSourceID={HSourceID}", "Sc_WorkBillSortBillMain"); | 
 |  |  |                         if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = $"第{i + 1}è¡çäº§èµæºæéå¤,请修æ¹!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         //æ°å¢åæ®å· id | 
 |  |  |                         HBillNo = DBUtility.ClsPub.CreateBillCode_Prod(BillType, ref DBUtility.ClsPub.sExeReturnInfo, true);//è·å¾ä¸ä¸ªæ°çåæ®å· | 
 |  |  |                         HInterID = DBUtility.ClsPub.CreateBillID_Prod(BillType, ref DBUtility.ClsPub.sExeReturnInfo);//è·å¾ä¸ä¸ªæ°çid | 
 |  |  |  | 
 |  |  |                         //主表 | 
 |  |  |                         oCN.RunProc("insert into Sc_WorkBillSortBillMain(HInterID,HBillNo,HYear,HPeriod,HBillType," + | 
 |  |  |                             "HBillSubType,HDate,HBillStatus,HMaker,HMakeDate,HICMOBillNo,HOrderType," + | 
 |  |  |                             "HICMOEntrySEQ,HWorkShopID,HSourceID, HYX, HProdORGID," + | 
 |  |  |                             " HMaterID, HMaterName, HMaterModel, HUnitID, HSeOrderBillQty," + | 
 |  |  |                             " HOrderNeedQty, HSplitQty, HDayPlanSumQty,HPlanBeginDate," + | 
 |  |  |                             "HSeOrderBillNo,HICMOBillType,HSourceStockInQty,HLeftPlanQty,HOrderLev,HPreparatDate)values" + | 
 |  |  |                             $"({HInterID},'{HBillNo}',{DateTime.Now.Year},{DateTime.Now.Month},'{BillType}'," + | 
 |  |  |                             $"'{BillType}',GETDATE(),1,'{user}',getdate(),'{HICMOBillNo}','{HOrderType}'," + | 
 |  |  |                             $"{(HICMOEntrySEQ == "" ? 0.ToString() : HICMOEntrySEQ)},{(HWorkShopID == "" ? 0.ToString() : HWorkShopID)},{(HSourceID == "" ? 0.ToString() : HSourceID)}, {(HYX == "" ? 0.ToString() : HYX)}, {(HProdORGID == "" ? 0.ToString() : HProdORGID)}," + | 
 |  |  |                             $" {(HMaterID == "" ? 0.ToString() : HMaterID)}, '{HMaterName}', '{HMaterModel}', {(HUnitID == "" ? 0.ToString() : HUnitID)}, {(HSeOrderBillQty == "" ? 0.ToString() : HSeOrderBillQty)}," + | 
 |  |  |                             $" {(HOrderNeedQty == "" ? 0.ToString() : HOrderNeedQty)}, {(HSplitQty == "" ? 0.ToString() : HSplitQty)}, {(HDayPlanSumQty == "" ? 0.ToString() : HDayPlanSumQty)},'{HPlanBeginDate}'," + | 
 |  |  |                             $"'{HSeOrderBillNo}','{HICMOBillType}',{(HSourceStockInQty == "" ? 0.ToString() : HSourceStockInQty)},{(HLeftPlanQty == "" ? 0.ToString() : HLeftPlanQty)},'{HOrderLev}',getdate())"); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     oCN.RunProc($"update Sc_WorkBillSortBillMain set HDayPlanSumQty={list[i]["æ¥è®¡åæ°éæ»é"].ToString()} where HInterID={list[i]["hmainid"].ToString()} and HBillNo='{list[i]["åæ®å·"].ToString()}'"); | 
 |  |  |  | 
 |  |  |                     int SumDay = 31; //卿䏤æä¹å·® DateTime.Now.AddMonths(1).AddDays(-1).Subtract(DateTime.Now).Days; | 
 |  |  |  | 
 |  |  |                     for (int j = 0; j < SumDay; j++) | 
 |  |  |                     { | 
 |  |  |                         //主表åè¡¨é½ææ°æ® | 
 |  |  |                         if (list[i][DateTime.Now.AddDays(j).ToString("yyyy-MM-dd")].ToString() != "") | 
 |  |  |                         { | 
 |  |  |                             SumCount += 1; | 
 |  |  |                             ////ä¿åå表 | 
 |  |  |                             objJsonResult = AddBillSub(HInterID == 0 ? list[i]["hmainid"].ToString() : HInterID.ToString() | 
 |  |  |                                 , HBillNo == "" ? list[i]["åæ®å·"].ToString() : HBillNo | 
 |  |  |                                  , DateTime.Parse(DateTime.Now.AddDays(j).ToString("yyyy-MM-dd").ToString()) | 
 |  |  |                                  , int.Parse(list[i][DateTime.Now.AddDays(j).ToString("yyyy-MM-dd")].ToString())); | 
 |  |  |  | 
 |  |  |                             if (objJsonResult.count == 1) | 
 |  |  |                             { | 
 |  |  |                                 TrueCount += 1; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         //ä¸»è¡¨ææ°æ® åè¡¨æ æ°æ® | 
 |  |  |                         if (j == 30 && SumCount == 0 && HInterID != 0 && HBillNo != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult = AddBillSub(HInterID.ToString(), HBillNo, DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd").ToString()), 0); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (TrueCount != SumCount) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = objJsonResult.Message; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = null; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "Exceptionï¼" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public json AddBillSub(string HInterID, string HBillNo, DateTime date, int HQTY) | 
 |  |  |         { | 
 |  |  |             //è·åè¡¨æ ¼æ°æ® | 
 |  |  |             ds = oCN.RunProcReturn($"select * from  h_v_JIT_Sc_WorkBillSortBillList where åæ®å·='{HBillNo}'", "h_v_JIT_Sc_WorkBillSortBillList"); | 
 |  |  |  | 
 |  |  |             int count = 0; | 
 |  |  |             if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |             { | 
 |  |  |                 //夿å表æ¯å¦æå½æ¥çæ¥æä»¥åæ¥ææå¯¹åºçæ°é | 
 |  |  |                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) | 
 |  |  |                 { | 
 |  |  |                     if (DateTime.Parse(ds.Tables[0].Rows[i]["æ¥è®¡åçäº§æ¥æ"].ToString()) == date) | 
 |  |  |                     { | 
 |  |  |                         oCN.RunProc($"update Sc_WorkBillSortBillSub set HMasterDate='{date}',HQty={HQTY}" + | 
 |  |  |                             $"  where HInterID={HInterID} and HEntryID={ds.Tables[0].Rows[i]["hsubid"].ToString()}"); | 
 |  |  |                         count += 1; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (count != 1) | 
 |  |  |             { | 
 |  |  |                 //æå
¥å表 | 
 |  |  |                 oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HEntryID," + | 
 |  |  |                     "HMasterDate,HQty)" + | 
 |  |  |                             $"values({HInterID}, {(ds.Tables[0].Rows.Count + 1)}," + | 
 |  |  |                             $" '{date}', {HQTY})"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             objJsonResult.code = "1"; | 
 |  |  |             objJsonResult.count = 1; | 
 |  |  |             objJsonResult.Message = null; | 
 |  |  |             objJsonResult.data = null; | 
 |  |  |             return objJsonResult; | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |     } | 
 |  |  | } |