| | |
| | | using WebAPI.Models; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Diagnostics; |
| | | |
| | | namespace WebAPI.Controllers.SCGL.æ¥è®¡å管ç |
| | | { |
| | | public class JIT_DayPlanPlatFormBillController : ApiController |
| | | { |
| | | List<PRD_Inventory> ListInventory;//åºåæç» |
| | | private json objJsonResult = new json(); |
| | | public DataSet ds = new DataSet(); |
| | | public WebServer webserver = new WebServer(); |
| | | SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); |
| | | Sc_WorkBillSortBillMain omdelMian = new Sc_WorkBillSortBillMain(); |
| | | public static string BillType = "4610"; |
| | | Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° æ¥è¯¢ |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillList")] |
| | | [HttpGet] |
| | | public object JIT_DayPlanPlatFormBillList(string sWhere,string user) |
| | | public object JIT_DayPlanPlatFormBillList(string sWhere, string user) |
| | | { |
| | | try |
| | | { |
| | |
| | | |
| | | 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.AddDays(1).AddSeconds(-1)}',{omdelMian.HMaterID},'{omdelMian.HICMOBillNo}',{omdelMian.HWorkShopID}", "h_p_JIT_Sc_WorkBillSortBill_Query"); |
| | | ds = oCN.RunProcReturn($"exec h_p_JIT_Sc_WorkBillSortBill_Query '{omdelMian.HPlanBeginDate}',{(omdelMian.HProdORGID == null ? 0 : omdelMian.HProdORGID)},'{omdelMian.HSeOrderBillNo}'" + |
| | | $",'{omdelMian.HPlanEndDate.AddDays(1)}',{omdelMian.HMaterID},'{omdelMian.HICMOBillNo}',{omdelMian.HWorkShopID}", "h_p_JIT_Sc_WorkBillSortBill_Query"); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucessï¼"; |
| | | objJsonResult.data = ds.Tables[0]; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®IDæ¥è¯¢ é½å¥ç¶æ å éå®ç¶æ |
| | | /// </summary> |
| | | /// <param name="sWhere"></param> |
| | | /// <param name="user"></param> |
| | | /// <returns></returns> |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList")] |
| | | [HttpGet] |
| | | public object JIT_DayPlanPlatFormBillHinterIDList(string sWhere,int num) |
| | | { |
| | | try |
| | | { |
| | | if (num == 1) |
| | | { |
| | | ds = oCN.RunProcReturn($"select isnull(DATEDIFF(DAY,GETDATE(),CONVERT(varchar(10),max(HMasterDate),20))+1,0) DayNum from Sc_WorkBillSortBillSub where HInterID in ({sWhere}) and HMasterDate>=CONVERT(varchar(10),GETDATE(),20) and HLockedSub=1", "Sc_WorkBillSortBillSub"); |
| | | } |
| | | else if (num == 2) |
| | | { |
| | | ds = oCN.RunProcReturn($"select CONVERT(varchar(10),HMasterDate,20) HMasterDate,HComplete,HInterID from Sc_WorkBillSortBillSub where HInterID in ({sWhere}) and HMasterDate>=CONVERT(varchar(10),GETDATE(),20) and (HComplete='é½å¥' or HComplete='æªé½å¥') ", "Sc_WorkBillSortBillSub"); |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | |
| | | var HBillNo = ""; |
| | | if (list[i]["åæ®å·"].ToString() == "" && list[i]["hmainid"].ToString() == "") |
| | | { |
| | | HBillNo = DBUtility.ClsPub.CreateBillCode_Prod(BillType, ref DBUtility.ClsPub.sExeReturnInfo, true);//è·å¾ä¸ä¸ªæ°çåæ®å· |
| | | HInterID = DBUtility.ClsPub.CreateBillID_Prod(BillType, ref DBUtility.ClsPub.sExeReturnInfo);//è·å¾ä¸ä¸ªæ°çid |
| | | |
| | | 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]["ç产ç»ç»"].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 HOrderNeedQty = list[i]["订åéæ±æ°é"].ToString(); |
| | | var HSplitQty = list[i]["æåæ°é"].ToString(); |
| | | var HDayPlanSumQty = list[i]["æ¥è®¡åæ°éæ»é"].ToString(); |
| | | var HPlanBeginDate = 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(); |
| | | var HPlanQty = list[i]["è®¡åæ°é"].ToString(); |
| | | |
| | | //主表 |
| | | oCN.RunProc("insert into Sc_WorkBillSortBillMain(HInterID,HBillNo,HYear,HPeriod,HBillType," + |
| | | if (HSourceID == ""|| HSourceID == "0") |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"第{i + 1}è¡çäº§èµæºä¸è½ä¸ºç©º!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn($"select * from Sc_WorkBillSortBillMain where HMainSourceInterID={HMainSourceInterID}" + |
| | | $" 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 |
| | | |
| | | string sql = $"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" + |
| | | "HSeOrderBillNo,HICMOBillType,HSourceStockInQty,HLeftPlanQty,HOrderLev,HPreparatDate," + |
| | | "HMainSourceInterID,HMainSourceEntryID,HICMOInterID_Sec,HICMOEntryID_Sec,HPlanQty)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())"); |
| | | $" 0, {(HSplitQty == "" ? 0.ToString() : HSplitQty)}, {(HDayPlanSumQty == "" ? 0.ToString() : HDayPlanSumQty)},'{HPlanBeginDate}'," + |
| | | $"'{HSeOrderBillNo}','{HICMOBillType}',{(HSourceStockInQty == "" ? 0.ToString() : HSourceStockInQty)},{(HLeftPlanQty == "" ? 0.ToString() : HLeftPlanQty)},'{HOrderLev}',getdate()," + |
| | | $"{HMainSourceInterID},{HMainSourceEntryID},{HMainSourceInterID},{HMainSourceEntryID},{HPlanQty})"; |
| | | |
| | | //LogService.Write("sql:" + sql); |
| | | //主表 |
| | | oCN.RunProc(sql); |
| | | } |
| | | else |
| | | { |
| | | var HMainSourceInterID = list[i]["æºå主å
ç "].ToString(); |
| | | var HMainSourceEntryID = list[i]["æºååå
ç "].ToString(); |
| | | var HICMOBillNo = list[i]["ç产订åå·"].ToString(); |
| | | var HICMOEntrySEQ = list[i]["ç产订åæç»è¡å·"].ToString(); |
| | | var HSourceID = list[i]["HSourceID"].ToString(); |
| | | var HYX = list[i]["ä¼å
级"].ToString(); |
| | | |
| | | if (HSourceID == "" || HSourceID == "0") |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"第{i + 1}è¡çäº§èµæºä¸è½ä¸ºç©º!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | var str = 0; |
| | | if (!int.TryParse(HYX, out str)) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"第{i + 1}è¡ä¼å
级:{HYX},请è¾å
¥æ°å!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn($"select * from Sc_WorkBillSortBillMain where HMainSourceInterID={HMainSourceInterID}" + |
| | | $" and HMainSourceEntryID={HMainSourceEntryID} and HICMOBillNo='{HICMOBillNo}' and HICMOEntrySEQ={HICMOEntrySEQ} and HSourceID={HSourceID}", "Sc_WorkBillSortBillMain"); |
| | | |
| | | if (ds.Tables[0].Rows.Count > 1) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"第{i + 1}è¡çäº§èµæºæéå¤,请修æ¹!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | oCN.RunProc($"update Sc_WorkBillSortBillMain set HSourceID={(HSourceID == "" ? 0.ToString() : HSourceID)},HYX={HYX} where HInterID={list[i]["hmainid"].ToString()} and HBillNo='{list[i]["åæ®å·"].ToString()}'"); |
| | | } |
| | | |
| | | oCN.RunProc($"update Sc_WorkBillSortBillMain set HDayPlanSumQty={list[i]["æ¥è®¡åæ°éæ»é"].ToString()} where HInterID={(HInterID==0?int.Parse(list[i]["hmainid"].ToString()):HInterID)} and HBillNo='{(HBillNo==""?list[i]["åæ®å·"].ToString(): HBillNo)}'"); |
| | | |
| | | int SumDay = 31; //卿䏤æä¹å·® DateTime.Now.AddMonths(1).AddDays(-1).Subtract(DateTime.Now).Days; |
| | | |
| | |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | //忥æ¥è®¡åå·¥å |
| | | oCN.RunProc("exec REALESE_SC_ICMOBILLSTATUS_TMP"); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | |
| | | if (count != 1) |
| | | { |
| | | //æå
¥å表 |
| | | oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HEntryID," + |
| | | oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HSEQ," + |
| | | "HMasterDate,HQty)" + |
| | | $"values({HInterID}, {(ds.Tables[0].Rows.Count + 1)}," + |
| | | $" '{date}', {HQTY})"); |
| | |
| | | return objJsonResult; |
| | | } |
| | | #endregion |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° é½å¥åæ |
| | | |
| | | #region æ¸
åé
ææ¹å¼ |
| | | public class PRD_PPBOM |
| | | { |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥åå· |
| | | /// </summary> |
| | | public string HMainICMOBillNo { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥åFID |
| | | /// </summary> |
| | | public long HInterID { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæç»FEntryID |
| | | /// </summary> |
| | | public long HEntryID { get; set; } |
| | | /// <summary> |
| | | /// çäº§ç¨ææ¸
ååå· |
| | | /// </summary> |
| | | public string HBillNo { get; set; } |
| | | /// <summary> |
| | | /// ç产订ååå· |
| | | /// </summary> |
| | | public string HICMOBillNo { get; set; } |
| | | /// <summary> |
| | | /// ç产订åå
ç |
| | | /// </summary> |
| | | public string HICMOInterID { get; set; } |
| | | /// <summary> |
| | | /// ç¶çº§ç©æID |
| | | /// </summary> |
| | | public string FMaterialID { get; set; } |
| | | /// <summary> |
| | | /// ç¶çº§ç©ææ°é |
| | | /// </summary> |
| | | public decimal FQty { get; set; } |
| | | /// <summary> |
| | | /// åé¡¹ç©æID |
| | | /// </summary> |
| | | public string FMATERIALID2 { get; set; } |
| | | /// <summary> |
| | | /// åé¡¹ç©æåç§° |
| | | /// </summary> |
| | | public string FNumber { get; set; } |
| | | /// <summary> |
| | | /// éæ±æ°é |
| | | /// </summary> |
| | | public decimal FNeedQty { get; set; } |
| | | /// <summary> |
| | | /// 峿¶åºå |
| | | /// </summary> |
| | | public decimal FBASEQTY { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产订å主ç |
| | | /// </summary> |
| | | public string HICMOInterID_Sec { get; set; } |
| | | /// <summary> |
| | | /// ç产订ååç |
| | | /// </summary> |
| | | public string HICMOEntryID_Sec { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥è®¡åæ°é |
| | | /// </summary> |
| | | public string HQty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥è®¡åæ¥æ |
| | | /// </summary> |
| | | public DateTime HMasterDate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 订åç级 |
| | | /// </summary> |
| | | public string HOrderLev { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç»ç» |
| | | /// </summary> |
| | | public string FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// ç»ç»åç§° |
| | | /// </summary> |
| | | public string OrgFnumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ç¨é |
| | | /// </summary> |
| | | public decimal dwyl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢è®¡æ¶èç¨é |
| | | /// </summary> |
| | | public decimal PlanCount { get; set; } |
| | | /// <summary> |
| | | /// ç©æå±æ§ |
| | | /// </summary> |
| | | public int FErpClsID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½¦é´ |
| | | /// </summary> |
| | | public string HWorkShopID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 车é´ç¼ç |
| | | /// </summary> |
| | | public string FHWorkShopNumber { get; set; } |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region 峿¶åºå |
| | | public class PRD_Inventory |
| | | { |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string FMATERIALID { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string FNumber { get; set; } |
| | | /// <summary> |
| | | /// 峿¶åºå |
| | | /// </summary> |
| | | public decimal FBASEQTY { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç»ç» |
| | | /// </summary> |
| | | public string FStockOrgId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºå货主类å |
| | | /// </summary> |
| | | public string FOwnerTypeId { get; set; } |
| | | /// <summary> |
| | | /// åºå货主 |
| | | /// </summary> |
| | | public string FOwnerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 货主ç¼ç |
| | | /// </summary> |
| | | public string FOwnerNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åº |
| | | /// </summary> |
| | | public string FSTOCKID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼ç |
| | | /// </summary> |
| | | public string FStockNumber { get; set; } |
| | | /// <summary> |
| | | /// æ¹å· |
| | | /// </summary> |
| | | public string HLOT { get; set; } |
| | | /// <summary> |
| | | /// id |
| | | /// </summary> |
| | | public string HInventoryFID { get; set; } |
| | | } |
| | | #endregion |
| | | |
| | | #region 车é´ä»åºå¯¹ç
§å表 |
| | | public class PRD_WorkHouseCompar |
| | | { |
| | | /// <summary> |
| | | /// ç»ç» |
| | | /// </summary> |
| | | public string FORGID { get; set; } |
| | | /// <summary> |
| | | /// è½¦é´ |
| | | /// </summary> |
| | | public string FWORKSHOPID { get; set; } |
| | | /// <summary> |
| | | /// ä»åº |
| | | /// </summary> |
| | | public string FSTOCKID { get; set; } |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¥è®¡å+ç产订å |
| | | public class DayPlanPickedModel |
| | | { |
| | | /// <summary> |
| | | /// 订åå
¥åºæ°é æç
§ç产订åæç»è¡ |
| | | /// </summary> |
| | | public decimal FCXStockInQty { get; set; } |
| | | /// <summary> |
| | | /// 主ç产订ååå
ç |
| | | /// </summary> |
| | | public string FPRDMOENTYID { get; set; } |
| | | /// <summary> |
| | | /// ç©æåä½ç¨é |
| | | /// </summary> |
| | | public decimal dwyl { get; set; } |
| | | /// <summary> |
| | | /// 已颿°é |
| | | /// </summary> |
| | | public decimal FPickedQty { get; set; } |
| | | /// <summary> |
| | | /// å©ä½å¯ç¨æ°é |
| | | /// </summary> |
| | | public decimal FRemainPickedQty { get; set; } |
| | | /// <summary> |
| | | /// ç©æ |
| | | /// </summary> |
| | | public string FMATERIALID { get; set; } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region åå¨ä¸´æ¶éè¦æå
¥æ°æ® |
| | | public class CompleteAnalysisTempModel |
| | | { |
| | | /// <summary> |
| | | /// 主ç产订å主å
ç ï¼FHMainICMOInterIDr |
| | | /// </summary> |
| | | public string FHMainICMOInterIDr { get; set; } |
| | | /// <summary> |
| | | /// 主ç产订ååå
ç ï¼FHMainICMOEntryID |
| | | /// </summary> |
| | | public string FHMainICMOEntryID { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡å订ååå·ï¼HMainICMOBillNo |
| | | /// </summary> |
| | | public string HMainICMOBillNo { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡å订å主å
ç ï¼FHICMOInterID |
| | | /// </summary> |
| | | public string FHICMOInterID { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡å订ååå
ç ï¼FHICMOEntryID |
| | | /// </summary> |
| | | public string FHICMOEntryID { get; set; } |
| | | /// <summary> |
| | | /// åä»¶ç©æï¼FHMaterID |
| | | /// </summary> |
| | | public string FHMaterID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç»ç»ï¼FHStockOrgID |
| | | /// </summary> |
| | | public string FHStockOrgID { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç产ç»ç»ï¼FHPRDORGID |
| | | /// </summary> |
| | | public string FHPRDORGID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产订åå·ï¼FPRDBillNo |
| | | /// </summary> |
| | | public string FPRDBillNo { get; set; } |
| | | /// <summary> |
| | | /// æ è¯ |
| | | /// </summary> |
| | | public string FIdentificat { get; set; } |
| | | /// <summary> |
| | | /// 货主åç§°ï¼FOwnerName |
| | | /// </summary> |
| | | public string FOwnerName { get; set; } |
| | | /// <summary> |
| | | /// 货主ç¼ç ï¼FOwnerId |
| | | /// </summary> |
| | | public string FOwnerId { get; set; } |
| | | /// <summary> |
| | | /// 货主类åï¼FOwnerTypeId |
| | | /// </summary> |
| | | public string FOwnerTypeId { get; set; } |
| | | /// <summary> |
| | | /// é½å¥ç¶æ |
| | | /// </summary> |
| | | public string FComPlete { get; set; } |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public string FHUseQty { get; set; } |
| | | /// <summary> |
| | | /// åæ¶åºåæ°éï¼FHStockQty |
| | | /// </summary> |
| | | public decimal FHStockQty { get; set; } |
| | | /// <summary> |
| | | ///å¯ç¨æ°éï¼FHLeftQty |
| | | /// </summary> |
| | | public decimal FHLeftQty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¼ºææ°é |
| | | /// </summary> |
| | | public decimal FLackCount { get; set; } |
| | | /// <summary> |
| | | /// å ç¨æ°é |
| | | /// </summary> |
| | | public decimal FOccupyCount { get; set; } |
| | | /// <summary> |
| | | /// å ç¨é¢ææ°é |
| | | /// </summary> |
| | | public decimal FOccupyPickedCount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ç¨éï¼FUnitDosage |
| | | /// </summary> |
| | | public decimal FUnitDosage { get; set; } |
| | | /// <summary> |
| | | /// è®¡åæ»æ°éï¼FSumPlanCount |
| | | /// </summary> |
| | | public decimal FSumPlanCount { get; set; } |
| | | /// <summary> |
| | | /// é½å¥æ°éï¼FCompleteCount q |
| | | /// </summary> |
| | | public decimal FCompleteCount { get; set; } |
| | | public decimal FCompleteCount1 { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæ¥æ |
| | | /// </summary> |
| | | public DateTime FPlanDate { get; set; } |
| | | //ç©æç±»å |
| | | public int FErpClsID { get; set; } |
| | | //ä»åº |
| | | public string FStock { get; set; } |
| | | //è½¦é´ |
| | | public string FWorkShop { get; set; } |
| | | //æ¹å· |
| | | public string HLOT { get; set; } |
| | | public string HInventoryFID { get; set; } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_CompleteSetAnalysis")] |
| | | [HttpGet] |
| | | public object JIT_CompleteSetAnalysis(string sWhere, string user) |
| | | { |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | omdelMian = JsonConvert.DeserializeObject<Sc_WorkBillSortBillMain>(sWhere); |
| | | string sql = $"exec JIT_qtfx {omdelMian.HProdORGID},{omdelMian.HWorkShopID},'{user}' "; |
| | | ds = oCN.RunProcReturn(sql, "JIT_qtfx"); |
| | | LogService.Write("é½å¥åæsql:" + sql); |
| | | List<PRD_PPBOM> BomList = new List<PRD_PPBOM>(); |
| | | DataTable resulTable = ds.Tables[0]; |
| | | if (resulTable.Rows[0][0].ToString().Contains("失败")) |
| | | { |
| | | //éæ¾é½å¥æä½ é¿å
å¤äººåæ¶è¿è¡é½å¥åæ |
| | | oCN.RunProc($"update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={omdelMian.HProdORGID} and FSTATUS = 1 "); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = resulTable.Rows[0][0].ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | BomList = ds.ToModelList<PRD_PPBOM>(); |
| | | } |
| | | |
| | | string fDayPlanFids = string.Empty; |
| | | string fDayPlanFEntryids = string.Empty; |
| | | if (BomList.Count == 0) |
| | | { |
| | | //éæ¾é½å¥æä½ é¿å
å¤äººåæ¶è¿è¡é½å¥åæ |
| | | oCN.RunProc($"update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={omdelMian.HProdORGID} and FSTATUS = 1 "); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "没æéè¦è¿è¡é½å¥åæçæ°æ®"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | List<string> fidList = BomList.Select(x => x.HInterID.ToString()).Distinct().ToList(); |
| | | List<string> fentryidList = BomList.Select(x => x.HEntryID.ToString()).Distinct().ToList(); |
| | | fDayPlanFids = string.Join(",", fidList); |
| | | fDayPlanFEntryids = string.Join(",", fentryidList); |
| | | } |
| | | LogService.Write("æ¥è®¡åå·¥åids" + fDayPlanFids); |
| | | |
| | | sw.Start();//å¼å§è®¡æ¶ |
| | | |
| | | //è·åå½å峿¶åºå åºåæ°é+åºåç»ç»+ç©æ+货主+ä»åº |
| | | ds = oCN.RunProcReturn(@" |
| | | select * from h_v_jit_InventoryList |
| | | ", "h_v_jit_InventoryList"); |
| | | ListInventory = ds.ToModelList<PRD_Inventory>(); |
| | | //è½¦é´ ä»åºå¯¹ç
§å表 |
| | | ds = oCN.RunProcReturn(@" |
| | | SELECT DISTINCT T1.HOrgId FORGID,HWorkShopID FWORKSHOPID,HWHID FSTOCKID FROM Gy_WorkWarehouseBillMain T1 |
| | | JOIN Gy_WorkWarehouseBillMainSub T2 ON T1.HInterID=T2.HInterID |
| | | ", "Gy_WorkWarehouseBillMain"); |
| | | List<PRD_WorkHouseCompar> pRD_WorkHouseCompar = ds.ToModelList<PRD_WorkHouseCompar>(); |
| | | int i = 1;//ç¨äºè¿åº¦æ¡çå è½½ |
| | | //æ¥è®¡å+ç产订åå表ç¼ç ID |
| | | var DatePlanList = BomList.GroupBy(p => new { p.HMasterDate, p.HICMOEntryID_Sec }).Select(x => new PRD_PPBOM { HMasterDate = x.Key.HMasterDate, HICMOEntryID_Sec = x.Key.HICMOEntryID_Sec }).ToList(); |
| | | //ååºåæ°é FMustQty ä¸è¦åå¼éæ±æ°éFNeedQty é¢ææ°æ® |
| | | string LLsql = string.Format(@"exec h_p_jit_PPBOMList '{0}'", fDayPlanFids); |
| | | List<DayPlanPickedModel> DayPlanPickedModel = new List<DayPlanPickedModel>(); |
| | | LogService.Write("LLsql:" + LLsql); |
| | | ds = oCN.RunProcReturn(LLsql, "SC_WORKBILLSORTBILLMAIN"); |
| | | LogService.Write(JsonConvert.SerializeObject(ds)); |
| | | DayPlanPickedModel = ds.ToModelList<DayPlanPickedModel>(); |
| | | LogService.Write(JsonConvert.SerializeObject(DayPlanPickedModel)); |
| | | //CompleteAnalysisTempModel ç¨äºåå¨ä¸´æ¶éè¦æå
¥æ°æ® |
| | | List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>(); |
| | | //å建åå
¸ ç¨äºå¨åç©æ + å ç¨æ°é |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | LogService.Write($"é½å¥åæï¼æ°æ®åå¤é¶æ®µï¼ç¨æ¶" + sw.Elapsed + "æ»è¡æ°ï¼" + BomList.Count); |
| | | LogService.Write($"é½å¥åæï¼æ°æ®åå¤é¶æ®µï¼ç¨æ¶" + sw.Elapsed + "æ»éè¦å¾ªç¯çbomæ°éï¼" + DatePlanList.Count); |
| | | |
| | | //第ä¸ä¸ªå¾ªç¯ æ¥è®¡åå·¥åæç» ä¸å¤©+ä¸ä¸ªå·¥å ä¸ä¸ªå¾ªç¯ |
| | | int o = 0; |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | o++; |
| | | LogService.Write("循ç¯:" + o); |
| | | //æ¥è®¡åç¨ææ¸
åæç» æ¯ä¸å¤©çå®é
ç¨ææ
åµ |
| | | var _BomList = BomList.Where(x => x.HMasterDate == item.HMasterDate && x.HICMOEntryID_Sec == item.HICMOEntryID_Sec).ToList(); |
| | | //æ¯ä¸ä¸ªç©æè¿è¡åºåè®¡ç® |
| | | foreach (var _item in _BomList) |
| | | { |
| | | //车é´ä»åº 对ç
§è¡¨ æ¯ä¸ªæ¥è®¡ååå±ä¸ä¸ªè½¦é´ A,B |
| | | var _pRD_WorkHouseCompar = pRD_WorkHouseCompar.Where(c => c.FWORKSHOPID == _item.HWorkShopID).ToList(); |
| | | decimal jskcQty = 0;//ç¨äºè®¡ç® |
| | | decimal jskcQty2 = 0;//ç¨äºè®¡ç®å½æ¶é£ä¸ªè®¡ç®èç¹ç峿¶åºå |
| | | //计ç®å½åè¿å 个ä»åºæ»çåºåé |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | | foreach (var _WorkHouse in _pRD_WorkHouseCompar) |
| | | { |
| | | //åºåæ°æ®å¹é
|
| | | List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FNumber == _item.FNumber && c.FBASEQTY > 0 && c.FSTOCKID == _WorkHouse.FSTOCKID).ToList(); |
| | | if (_ListInventory.Count > 0) |
| | | { |
| | | foreach (var Inventory in _ListInventory) |
| | | { |
| | | jskcQty += Inventory.FBASEQTY; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //æ¾åºç©æè¢«å
¶å®è®¢åå ç¨æ°é |
| | | decimal occupyMaterial = 0; |
| | | if (occupyDic.ContainsKey(_item.HWorkShopID + _item.FMATERIALID2)) |
| | | { |
| | | occupyMaterial = occupyDic[_item.HWorkShopID + _item.FMATERIALID2]; |
| | | } |
| | | //èææ¥è®¡åç¨ææ¸
å éæ±æ°é |
| | | decimal planNeed = _item.PlanCount; //ä¸åä¸è®¡ç® ç¨äºè®°å½ |
| | | decimal need = _item.PlanCount;//åä¸è®¡ç® |
| | | decimal FOccupyPickedCount = 0;//å ç¨é¢æåæ°é |
| | | //æ¾å°é¢ç¨æ°é |
| | | var _DayPlanPickedModel = DayPlanPickedModel.Where(c => c.FPRDMOENTYID == _item.HICMOEntryID_Sec && c.FMATERIALID == _item.FMATERIALID2).FirstOrDefault(); |
| | | |
| | | if (_DayPlanPickedModel.FRemainPickedQty >= need) |
| | | { |
| | | //颿æ°é满足äºå½åè¿ä¸ªéæ±é ç´æ¥é½å¥ ä¸éè¦å»å ç¨ä»åº |
| | | completeAnalysisTempModel.Add(new CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.HICMOInterID_Sec, |
| | | FHMainICMOEntryID = _item.HICMOEntryID_Sec, |
| | | FHICMOInterID = _item.HInterID.ToString(), |
| | | FHICMOEntryID = _item.HEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FErpClsID = _item.FErpClsID, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FPRDBillNo = _item.HICMOBillNo, |
| | | HMainICMOBillNo = _item.HMainICMOBillNo, |
| | | FOwnerTypeId = "", |
| | | FUnitDosage = _item.dwyl,//åä½ç¨é |
| | | FSumPlanCount = planNeed,//è®¡åæ»æ°é |
| | | FCompleteCount1 = planNeed, //é½å¥æ°é |
| | | FLackCount = 0,//ç¼ºææ°é |
| | | FHStockQty = jskcQty2,//峿¶åºå |
| | | FHLeftQty = jskcQty,//å¯ç¨æ°é |
| | | FOccupyCount = occupyMaterial,//å ç¨æ°é |
| | | FOccupyPickedCount = planNeed,//å ç¨é¢ææ°é |
| | | FComPlete = "é½å¥", |
| | | FPlanDate = item.HMasterDate, // æ¥è®¡åæ¥æ |
| | | FWorkShop = _item.HWorkShopID //è½¦é´ |
| | | }); |
| | | //æ£é¤å©ä½å¯ç¨é¢ææ°é |
| | | _DayPlanPickedModel.FRemainPickedQty -= need; |
| | | LogService.Write($"h" + need); |
| | | //循ç¯ä¸ä¸ä¸ªç©æ |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | LogService.Write($"kxs" + need); |
| | | need -= _DayPlanPickedModel.FRemainPickedQty; //å©ä½éæ±æ°é |
| | | LogService.Write($"i1" + need); |
| | | FOccupyPickedCount = _DayPlanPickedModel.FRemainPickedQty; |
| | | _DayPlanPickedModel.FRemainPickedQty = 0; |
| | | LogService.Write($"i" + need); |
| | | } |
| | | if (_pRD_WorkHouseCompar.Count > 0) |
| | | { |
| | | //ç¼ºææ°é éæ±æ°é - å®é
åºå >0 ? ä¸ä¸ªç©æä¸ç®¡å ç¨å¤å°æ¡ åºå+货主 æ°æ® ç¼ºææ°éæ¯åä¸ä¸ªæ°é |
| | | decimal _fLackCount = need > jskcQty ? (need - jskcQty) : 0; |
| | | LogService.Write($"j" + _fLackCount); |
| | | //LogHelper.Info("ç»ç»ï¼" + _item.FStockOrgId + " ,åæ¶åºå" + jskcQty); |
| | | //æ»åºå为0äº ç´æ¥ç»åº ç¼ºææ°é |
| | | if (jskcQty == 0) |
| | | { |
| | | completeAnalysisTempModel.Add(new CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.HICMOInterID_Sec, |
| | | FHMainICMOEntryID = _item.HICMOEntryID_Sec, |
| | | FHICMOInterID = _item.HInterID.ToString(), |
| | | FHICMOEntryID = _item.HEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FErpClsID = _item.FErpClsID, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FPRDBillNo = _item.HICMOBillNo, |
| | | HMainICMOBillNo = _item.HMainICMOBillNo, |
| | | FOwnerTypeId = "", |
| | | FUnitDosage = _item.dwyl,//åä½ç¨é |
| | | FSumPlanCount = planNeed,//è®¡åæ»æ°é |
| | | FCompleteCount1 = FOccupyPickedCount, //é½å¥æ°é |
| | | FLackCount = need,//ç¼ºææ°é |
| | | FHStockQty = jskcQty2,//峿¶åºå |
| | | FHLeftQty = jskcQty,//å¯ç¨æ°é |
| | | FOccupyCount = occupyMaterial,//å ç¨æ°é |
| | | FOccupyPickedCount = FOccupyPickedCount,//å ç¨é¢ææ°é |
| | | FComPlete = "æªé½å¥", |
| | | FPlanDate = item.HMasterDate, // æ¥è®¡åæ¥æ |
| | | FWorkShop = _item.HWorkShopID //è½¦é´ |
| | | }); |
| | | //ç»æ¢è¯¥ç©æè®¡ç® è¿å
¥ä¸ä¸ä¸ª |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write($"k" + 2); |
| | | foreach (var WorkHouse in _pRD_WorkHouseCompar) |
| | | { |
| | | //åºåæ°æ®å¹é
|
| | | List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FNumber == _item.FNumber && c.FBASEQTY > 0 && c.FSTOCKID == WorkHouse.FSTOCKID).ToList(); |
| | | //éæ±æ°é å ç¨å®åå¯ä»¥è·³åºè½¦é´ä»åºå¾ªç¯ |
| | | if (need == 0) |
| | | break; |
| | | if (_ListInventory.Count > 0) |
| | | { |
| | | foreach (var Inventory in _ListInventory) |
| | | { |
| | | if (need == 0) |
| | | break; |
| | | //é½å¥æ°é |
| | | decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need; |
| | | if (!occupyDic.ContainsKey(_item.HWorkShopID + _item.FMATERIALID2)) |
| | | { |
| | | occupyDic.Add(_item.HWorkShopID + _item.FMATERIALID2, fCompleteCount); |
| | | } |
| | | else |
| | | { |
| | | occupyMaterial = occupyDic[_item.HWorkShopID + _item.FMATERIALID2]; |
| | | occupyDic[_item.HWorkShopID + _item.FMATERIALID2] = occupyMaterial + fCompleteCount; |
| | | } |
| | | completeAnalysisTempModel.Add(new CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.HICMOInterID_Sec, |
| | | FHMainICMOEntryID = _item.HICMOEntryID_Sec, |
| | | FHICMOInterID = _item.HInterID.ToString(), |
| | | FHICMOEntryID = _item.HEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FErpClsID = _item.FErpClsID, |
| | | FPRDBillNo = _item.HICMOBillNo, |
| | | HMainICMOBillNo = _item.HMainICMOBillNo, |
| | | FOwnerTypeId = Inventory.FOwnerTypeId, |
| | | FOwnerId = Inventory.FOwnerId, |
| | | FUnitDosage = _item.dwyl,//åä½ç¨é |
| | | FSumPlanCount = planNeed,//è®¡åæ»æ°é |
| | | FCompleteCount1 = fCompleteCount + FOccupyPickedCount, //é½å¥æ°é |
| | | FLackCount = _fLackCount,//ç¼ºææ°é |
| | | FHStockQty = jskcQty2,//峿¶åºå |
| | | FHLeftQty = jskcQty,//å¯ç¨æ°é |
| | | FOccupyCount = occupyMaterial,//å ç¨æ°é |
| | | FOccupyPickedCount = FOccupyPickedCount,//颿å ç¨æ°é |
| | | FComPlete = jskcQty >= need ? "é½å¥" : "æªé½å¥", |
| | | FPlanDate = item.HMasterDate, // æ¥è®¡åæ¥æ |
| | | FStock = Inventory.FSTOCKID,//ä»åº |
| | | FWorkShop = _item.HWorkShopID, //è½¦é´ |
| | | HLOT = Inventory.HLOT, //æ¹å· |
| | | HInventoryFID = Inventory.HInventoryFID //id |
| | | }); |
| | | //æ£åæ»åºåæ°é |
| | | jskcQty = jskcQty >= fCompleteCount ? jskcQty - fCompleteCount : 0; |
| | | //å©ä½æ¥è®¡åéæ±æ°é |
| | | need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0; |
| | | //æ£åæ¶èåºå |
| | | Inventory.FBASEQTY = Inventory.FBASEQTY - fCompleteCount; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //没æè½¦é´ä»åºæ°æ® æ¢æ²¡æå¯ç¨åºå 为æªé½å¥ |
| | | else |
| | | { |
| | | if (occupyDic.ContainsKey(_item.HWorkShopID + _item.FMATERIALID2)) |
| | | { |
| | | occupyMaterial = occupyDic[_item.HWorkShopID + _item.FMATERIALID2]; |
| | | } |
| | | completeAnalysisTempModel.Add(new CompleteAnalysisTempModel |
| | | { |
| | | FHMainICMOInterIDr = _item.HICMOInterID_Sec, |
| | | FHMainICMOEntryID = _item.HICMOEntryID_Sec, |
| | | FHICMOInterID = _item.HInterID.ToString(), |
| | | FHICMOEntryID = _item.HEntryID.ToString(), |
| | | FHMaterID = _item.FMATERIALID2, |
| | | FErpClsID = _item.FErpClsID, |
| | | FHStockOrgID = _item.FStockOrgId, |
| | | FHPRDORGID = _item.FStockOrgId, |
| | | FPRDBillNo = _item.HICMOBillNo, |
| | | HMainICMOBillNo = _item.HMainICMOBillNo, |
| | | FOwnerTypeId = "", |
| | | FUnitDosage = _item.dwyl,//åä½ç¨é |
| | | FSumPlanCount = planNeed,//è®¡åæ»æ°é |
| | | FCompleteCount1 = planNeed - need, //é½å¥æ°é |
| | | FLackCount = need,//ç¼ºææ°é |
| | | FHStockQty = jskcQty2,//峿¶åºå |
| | | FHLeftQty = jskcQty,//å¯ç¨æ°é |
| | | FOccupyCount = occupyMaterial,//å ç¨æ°é |
| | | FOccupyPickedCount = FOccupyPickedCount,//å ç¨é¢ææ°é |
| | | FComPlete = "æªé½å¥", |
| | | FPlanDate = item.HMasterDate, // æ¥è®¡åæ¥æ |
| | | FWorkShop = _item.HWorkShopID //è½¦é´ |
| | | }); |
| | | } |
| | | } |
| | | //Thread.Sleep(6000); |
| | | i++; |
| | | } |
| | | LogService.Write($"é½å¥åæï¼æ°æ®åå¤å®æï¼ä¿åå°Modelå®ä½ï¼æ»è¡æ°ï¼{completeAnalysisTempModel.Count}ï¼èæ¶ï¼" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | DataTable insertDT = new DataTable(); |
| | | insertDT.TableName = "JIT_MOMaterReadysBill"; |
| | | insertDT.Columns.Add("FID", typeof(long)); |
| | | insertDT.Columns.Add("FDOCUMENTSTATUS", typeof(string)); |
| | | insertDT.Columns.Add("FHMAINICMOINTERIDR", typeof(long)); |
| | | insertDT.Columns.Add("FHMAINICMOENTRYID", typeof(long)); |
| | | insertDT.Columns.Add("FHICMOINTERID", typeof(long)); |
| | | insertDT.Columns.Add("FHICMOENTRYID", typeof(long)); |
| | | insertDT.Columns.Add("FHMATERID", typeof(long)); |
| | | insertDT.Columns.Add("FHSTOCKORGID", typeof(long)); |
| | | insertDT.Columns.Add("FHSTOCKQTY", typeof(decimal)); |
| | | insertDT.Columns.Add("FHLEFTQTY", typeof(decimal)); |
| | | insertDT.Columns.Add("FHPRDORGID", typeof(long)); |
| | | insertDT.Columns.Add("FUNITDOSAGE", typeof(decimal)); |
| | | insertDT.Columns.Add("FSUMPLANCOUNT", typeof(decimal)); |
| | | insertDT.Columns.Add("FPRDBILLNO", typeof(string)); |
| | | insertDT.Columns.Add("HMainICMOBillNo", typeof(string)); |
| | | insertDT.Columns.Add("FOWNERID", typeof(long)); |
| | | insertDT.Columns.Add("FOWNERTYPEID", typeof(string)); |
| | | insertDT.Columns.Add("FPLANDATE", typeof(DateTime)); |
| | | insertDT.Columns.Add("FCOMPLETE", typeof(string)); |
| | | insertDT.Columns.Add("FLACKCOUNT", typeof(decimal)); |
| | | insertDT.Columns.Add("FOCCUPYCOUNT", typeof(decimal)); |
| | | insertDT.Columns.Add("FCOMPLETECOUNT1", typeof(decimal)); |
| | | insertDT.Columns.Add("FERPCLSID", typeof(string)); |
| | | insertDT.Columns.Add("FWORKSHOPID", typeof(long)); |
| | | insertDT.Columns.Add("FSTOCKID", typeof(long)); |
| | | insertDT.Columns.Add("FOCCUPYPICKEDCOUNT", typeof(decimal)); |
| | | insertDT.Columns.Add("HLOT", typeof(long)); |
| | | insertDT.Columns.Add("HInventoryFID", typeof(string)); |
| | | int jdtmmm = 1; |
| | | ds = oCN.RunProcReturn("select max(HInterID)FID FROM JIT_MOMaterReadysBill", "JIT_MOMaterReadysBill"); |
| | | int maxFid = int.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()); |
| | | foreach (var item in completeAnalysisTempModel) |
| | | { |
| | | DataRow dr = insertDT.NewRow(); |
| | | dr["FID"] = maxFid + jdtmmm; |
| | | dr["FDOCUMENTSTATUS"] = "A"; |
| | | dr["FHMAINICMOINTERIDR"] = item.FHMainICMOInterIDr; |
| | | dr["FHMAINICMOENTRYID"] = item.FHMainICMOEntryID; |
| | | dr["FHICMOINTERID"] = item.FHICMOInterID; |
| | | dr["FHICMOENTRYID"] = item.FHICMOEntryID; |
| | | dr["FHMATERID"] = item.FHMaterID; |
| | | dr["FHSTOCKORGID"] = item.FHStockOrgID; |
| | | dr["FHSTOCKQTY"] = item.FHStockQty; |
| | | dr["FHLEFTQTY"] = item.FHLeftQty; |
| | | dr["FHPRDORGID"] = item.FHPRDORGID; |
| | | dr["FUNITDOSAGE"] = item.FUnitDosage; |
| | | dr["FSUMPLANCOUNT"] = item.FSumPlanCount; |
| | | dr["FPRDBILLNO"] = item.FPRDBillNo; |
| | | dr["HMainICMOBillNo"] = item.HMainICMOBillNo; |
| | | dr["FOWNERID"] = item.FOwnerId == null ? "0" : item.FOwnerId; |
| | | dr["FOWNERTYPEID"] = item.FOwnerTypeId; |
| | | dr["FPLANDATE"] = item.FPlanDate.ToString("yyyy-MM-dd"); |
| | | dr["FCOMPLETE"] = item.FComPlete; |
| | | dr["FLACKCOUNT"] = item.FLackCount; |
| | | dr["FOCCUPYCOUNT"] = item.FOccupyCount; |
| | | dr["FCOMPLETECOUNT1"] = item.FCompleteCount1; |
| | | dr["FERPCLSID"] = item.FErpClsID; |
| | | dr["FWORKSHOPID"] = item.FWorkShop == null ? "0" : item.FWorkShop; |
| | | dr["FSTOCKID"] = item.FStock == null ? "0" : item.FStock; |
| | | dr["FOCCUPYPICKEDCOUNT"] = item.FOccupyPickedCount; |
| | | dr["HLOT"] = item.HLOT == null? "0" : item.HLOT; |
| | | dr["HInventoryFID"] = item.HInventoryFID == null ? "0" : item.HInventoryFID; |
| | | insertDT.Rows.Add(dr); |
| | | jdtmmm++; |
| | | } |
| | | |
| | | insertDT.EndLoadData(); // çå
¥æ°æ®ç»æ |
| | | //æå
¥ä¹åæ§è¡ä¸æ¸
空è¯å¥(æµè¯æ¯å¦è½å¤é²æ¢éå¤çæ) |
| | | string deletesql = $"delete from JIT_MOMaterReadysBill where HICMOInterID in ({fDayPlanFids}) "; |
| | | oCN.RunProc(deletesql); |
| | | // æ¹éæå
¥å°æ°æ®åº |
| | | foreach (DataRow item in insertDT.Rows) |
| | | { |
| | | oCN.RunProc("insert into JIT_MOMaterReadysBill(HInterID,HDocumentStatus,HMainICMOInterID,HMainICMOEntryID,HICMOInterID" + |
| | | ", HICMOEntryID, HMaterID, HStockORGID, HStockQty, HLeftQty" + |
| | | ", HProdORGID, HUnitDosage, HSumPlanQty, HICMOBillNo, HOwnerID" + |
| | | ", HOwnerTypeID, HPlanDate, HComplete, HLackQty, HOccupyQty" + |
| | | ", HCompleteQty1, HErpClsID, HWorkShopID, HWHID, HOccupyPickedQTY,HMainICMOBillNo" + |
| | | ",HLOT,HInventoryFID)values" + |
| | | $"({item["FID"].ToString()}, 1, {item["FHMAINICMOINTERIDR"].ToString()}, {item["FHMAINICMOENTRYID"].ToString()}, {item["FHICMOINTERID"].ToString()}" + |
| | | $", {item["FHICMOENTRYID"].ToString()}, {item["FHMATERID"].ToString()}, {item["FHSTOCKORGID"].ToString()}, {item["FHSTOCKQTY"].ToString()}, {item["FHLEFTQTY"].ToString()}" + |
| | | $" , {item["FHPRDORGID"].ToString()}, {item["FUNITDOSAGE"].ToString()}, {item["FSUMPLANCOUNT"].ToString()}, '{item["FPRDBILLNO"].ToString()}', {item["FOWNERID"].ToString()}" + |
| | | $", '{item["FOWNERTYPEID"].ToString()}', '{item["FPLANDATE"].ToString()}','{item["FCOMPLETE"].ToString()}', {item["FLACKCOUNT"].ToString()}, {item["FOCCUPYCOUNT"].ToString()}" + |
| | | $", {item["FCOMPLETECOUNT1"].ToString()}, {item["FERPCLSID"].ToString()}, {item["FWORKSHOPID"].ToString()}, {item["FSTOCKID"].ToString()}, {item["FOCCUPYPICKEDCOUNT"].ToString()}, '{item["HMainICMOBillNo"].ToString()}'" + |
| | | $",{item["HLOT"].ToString()},'{item["HInventoryFID"].ToString()}')"); |
| | | } |
| | | LogService.Write("æ¹éæå
¥å°æ°æ®åºç¨æ¶ï¼" + sw.Elapsed); |
| | | //æ§è¡å®æå æ´æ°æ¥è®¡åå·¥åç¶æ |
| | | string updatesql = string.Format(@" |
| | | update Sc_WorkBillSortBillSub set HComplete = 'æªé½å¥' where HEntryID IN |
| | | (select distinct HICMOEntryID from JIT_MOMaterReadysBill |
| | | where isnull(HComplete,'æªé½å¥') ='æªé½å¥' |
| | | and HICMOEntryID in ({0}) |
| | | )", fDayPlanFEntryids); |
| | | //LogService.Write(Context, updatesql); |
| | | oCN.RunProc(updatesql); |
| | | updatesql = string.Format(@" |
| | | update Sc_WorkBillSortBillSub set HComplete = 'é½å¥' |
| | | where HEntryID IN ({0}) and HComplete <>'æªé½å¥' |
| | | ", fDayPlanFEntryids); |
| | | //LogService.Write(updatesql); |
| | | oCN.RunProc(updatesql); |
| | | //éæ¾é½å¥æä½ é¿å
å¤äººåæ¶è¿è¡é½å¥åæ |
| | | oCN.RunProc($"update T_PRD_QTFX set FSTATUS = 0 where FPRDORGID ={omdelMian.HProdORGID} and FSTATUS = 1 "); |
| | | sw.Stop();//ç»æè®¡æ¶ |
| | | LogService.Write("é½å¥åæè¿è¡æ»æ¶é¿ï¼" + sw.Elapsed); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "æä½æå"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogService.Write("æä½å¤±è´¥ï¼" + e.Message.ToString()); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.Message.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° ææè¿ç® |
| | | |
| | | #region æ¥è®¡åå±å¼æ°æ®æç» |
| | | public class DayPlanPpbom |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥å主ID |
| | | /// </summary> |
| | | public long FID { get; set; } |
| | | /// <summary> |
| | | /// ç产订åå· |
| | | /// </summary> |
| | | public string FBILLNO { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæç»æ¥æ |
| | | /// </summary> |
| | | public DateTime FHMASTERDATE { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæç»æ°é |
| | | /// </summary> |
| | | public decimal FHQTY { get; set; } |
| | | /// <summary> |
| | | /// é½å¥æ° |
| | | /// </summary> |
| | | public decimal FCOMPLETECOUNT { get; set; } |
| | | /// <summary> |
| | | /// ç产订åå·¥åID |
| | | /// </summary> |
| | | public long FPRDMOMAINID { get; set; } |
| | | /// <summary> |
| | | /// å表ID |
| | | /// </summary> |
| | | public int FENTRYID { get; set; } |
| | | /// <summary> |
| | | /// åä½ç¨æ |
| | | /// </summary> |
| | | public decimal FNeedQty { get; set; } |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string FMATERIALID { get; set; } |
| | | /// <summary> |
| | | /// æåå¤©æ° |
| | | /// </summary> |
| | | public int FFIXLEADTIME { get; set; } |
| | | /// <summary> |
| | | ///æå¤§å
è£
|
| | | /// </summary> |
| | | public decimal FMAXPOQTY { get; set; } |
| | | /// <summary> |
| | | /// æå°å
è£
é |
| | | /// </summary> |
| | | public decimal FMINPOQTY { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string FNumber { get; set; } |
| | | /// <summary> |
| | | /// å®é
éæ± |
| | | /// </summary> |
| | | public decimal NeedQty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç»ç» |
| | | /// </summary> |
| | | public long FStockOrgId { get; set; } |
| | | //åºåç»ç»åç§° |
| | | public string FStockOrgName { get; set; } |
| | | /// <summary> |
| | | /// jitç©æåç±» |
| | | /// </summary> |
| | | public string FJITmaterialGroup { get; set; } |
| | | /// <summary> |
| | | /// JITç©æéæ±ä¾è´§å¨æ |
| | | /// </summary> |
| | | public string FJITMaterielDemand { get; set; } |
| | | /// <summary> |
| | | /// JITå®å
¨åºå |
| | | /// </summary> |
| | | public string FJITSafeStock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå±æ§ |
| | | /// </summary> |
| | | public string FErpClsID { get; set; } |
| | | /// <summary> |
| | | /// éæ±åå·ï¼éå®è®¢åå·ï¼ |
| | | /// </summary> |
| | | public string FXQD { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥ååå· |
| | | /// </summary> |
| | | public string FDAYPLANBILLNO { get; set; } |
| | | /// <summary> |
| | | /// ç产车é´ç¼ç |
| | | /// </summary> |
| | | public string FWORKSHOPNUMBER { get; set; } |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region éè´è®¢åç©æåºå |
| | | public class PurchaseInventory |
| | | { |
| | | /// <summary> |
| | | /// éè´FID |
| | | /// </summary> |
| | | public long FID { get; set; } |
| | | //éè´è®¢ååå· |
| | | public string FBillNo { get; set; } |
| | | /// <summary> |
| | | /// éè´å表æ è¯ |
| | | /// </summary> |
| | | public long FENTRYID { get; set; } |
| | | /// <summary> |
| | | /// ä¾åºåid |
| | | /// </summary> |
| | | public long FSUPPLIERID { get; set; } |
| | | /// <summary> |
| | | /// ä¾åºååç§° |
| | | /// </summary> |
| | | public string FNUMBER { get; set; } |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string FMATERIALID { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string FMATERIALNUMBER { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´æ°é |
| | | /// </summary> |
| | | public decimal FQTY { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç»ç» |
| | | /// </summary> |
| | | public long FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// éè´ç»ç»åç§° |
| | | /// </summary> |
| | | public string FStockOrgName { get; set; } |
| | | /// <summary> |
| | | /// ç»ç»ç¼ç |
| | | /// </summary> |
| | | public string FORGNumber { get; set; } |
| | | /// <summary> |
| | | /// æåæ |
| | | /// </summary> |
| | | public int FFIXLEADTIME { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éæ±åå· |
| | | /// </summary> |
| | | public string FXQD { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çå建人 |
| | | /// </summary> |
| | | public string FCREATORID { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çå建人åç§° |
| | | /// </summary> |
| | | public string FName { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çéè´æ¥æ |
| | | /// </summary> |
| | | public DateTime FDate { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çäº¤è´§æ¥æ |
| | | /// </summary> |
| | | public DateTime FDeliveryDate { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢å表头æè¦ |
| | | /// </summary> |
| | | public string F_QIMB_NOTE { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢å表ä½å¤æ³¨ |
| | | /// </summary> |
| | | public string FNOTE { get; set; } |
| | | //éè´é¨é¨ |
| | | public string FPURCHASEDEPTNUMBER { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¶æä½æ¯æ²¡å
¥åºé¨å éè¦ä¼å
廿£é¤ |
| | | /// </summary> |
| | | public decimal FReceiveNotInQty { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åæ°é |
| | | /// </summary> |
| | | public decimal FPURCHASEQTY { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åå
³èæ°é |
| | | /// </summary> |
| | | public decimal FJOINQTY { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¶æåæ°é |
| | | /// </summary> |
| | | public decimal FReceiveQty { get; set; } |
| | | } |
| | | #endregion |
| | | |
| | | #region ææè®¡å临æ¶å¨å |
| | | public class PODemandPlanTemp |
| | | { |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥å主ID |
| | | /// </summary> |
| | | public long FID { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥åç¼å· |
| | | /// </summary> |
| | | public string FBILLNO { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæç»æ¥æ |
| | | /// </summary> |
| | | public DateTime FHMASTERDATE { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åæç»æ°é |
| | | /// </summary> |
| | | public decimal FHQTY { get; set; } |
| | | /// <summary> |
| | | /// ç产订åå·¥åID |
| | | /// </summary> |
| | | public long FPRDMOMAINID { get; set; } |
| | | /// <summary> |
| | | /// å表ID |
| | | /// </summary> |
| | | public int FENTRYID { get; set; } |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal FQty { get; set; } |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public string FMATERIALID { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼ç |
| | | /// </summary> |
| | | public string FNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´FID |
| | | /// </summary> |
| | | public long PurchseFID { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢ååå· |
| | | /// </summary> |
| | | public string PurchseFBillNo { get; set; } |
| | | /// <summary> |
| | | /// éè´å表æ è¯ |
| | | /// </summary> |
| | | public long PurchseFentryID { get; set; } |
| | | /// <summary> |
| | | /// ä¾åºåid |
| | | /// </summary> |
| | | public long FSUPPLIERID { get; set; } |
| | | /// <summary> |
| | | /// ä¾åºååç§° |
| | | /// </summary> |
| | | public string PurchseFNUMBER { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥è®¡åæ¥æ |
| | | /// </summary> |
| | | public DateTime OLDDATE { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´è®¢åæ°é |
| | | /// </summary> |
| | | public decimal PurchseFqty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåæ |
| | | /// </summary> |
| | | public double FFIXLEADTIME { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç»ç» |
| | | /// </summary> |
| | | public long FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// éè´ç»ç»åç§° |
| | | /// </summary> |
| | | public string FStockOrgName { get; set; } |
| | | /// <summary> |
| | | /// ç»ç»ç¼ç |
| | | /// </summary> |
| | | public string FORGNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå±æ§ |
| | | /// </summary> |
| | | public string FErpClsID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éæ±åå· |
| | | /// </summary> |
| | | public string FXQD { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çå建人 |
| | | /// </summary> |
| | | public string FCREATORID { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çå建人åç§° |
| | | /// </summary> |
| | | public string FName { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çéè´æ¥æ |
| | | /// </summary> |
| | | public DateTime FDate { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åä¸çäº¤è´§æ¥æ |
| | | /// </summary> |
| | | public DateTime FDeliveryDate { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢å表头æè¦ |
| | | /// </summary> |
| | | public string F_QIMB_NOTE { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢å表ä½å¤æ³¨ |
| | | /// </summary> |
| | | public string FNOTE { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´é¨é¨ |
| | | /// </summary> |
| | | public string FPURCHASEDEPTNUMBER { get; set; } |
| | | /// <summary> |
| | | /// æ¥è®¡åå·¥ååå· |
| | | /// </summary> |
| | | public string FDAYPLANBILLNO { get; set; } |
| | | /// <summary> |
| | | /// ç产车é´ç¼ç |
| | | /// </summary> |
| | | public string FWORKSHOPNUMBER { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åæ°é |
| | | /// </summary> |
| | | public decimal FPURCHASEQTY { get; set; } |
| | | /// <summary> |
| | | /// éè´è®¢åå
³èæ°é |
| | | /// </summary> |
| | | public decimal FJOINQTY { get; set; } |
| | | } |
| | | #endregion |
| | | |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_TLYS")] |
| | | [HttpGet] |
| | | public object JIT_TLYS(string sWhere, string user,string HTLType) |
| | | { |
| | | try |
| | | { |
| | | omdelMian = JsonConvert.DeserializeObject<Sc_WorkBillSortBillMain>(sWhere); |
| | | |
| | | string fProWorkShopId = omdelMian.HWorkShopID.ToString(); |
| | | var fPrdOrgId = omdelMian.HProdORGID; |
| | | string sqlName = "";//AIS20210811135644 |
| | | //客æ·å¶å® |
| | | string sErr = ""; |
| | | if (oSystemParameter.ShowBill(ref sErr)) |
| | | { |
| | | if (oSystemParameter.omodel.WMS_CampanyName == "å¸
å¨") |
| | | { |
| | | sqlName = "AIS20230129011339"; |
| | | } |
| | | else |
| | | { |
| | | sqlName = "AIS20210811135644"; |
| | | } |
| | | } |
| | | |
| | | if (HTLType == "缺æ") |
| | | { |
| | | objJsonResult = (json)JIT_QL(fProWorkShopId, fPrdOrgId, user, sqlName); |
| | | } |
| | | else if (HTLType == "çäº§ç¨ææ¸
å") |
| | | { |
| | | objJsonResult=(json)JIT_PPBOM(fProWorkShopId, fPrdOrgId, user, sqlName); |
| | | } |
| | | |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogService.Write("æä½å¤±è´¥ï¼" + e.Message.ToString()); |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.Message.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿ç¼ºææ
åµç®ææ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public object JIT_QL(string HWorkShopID,int? HProdORGID,string user,string sqlName) { |
| | | try |
| | | { |
| | | |
| | | oCN.BeginTran(); |
| | | |
| | | DataSet DaSet = oCN.RunProcReturn($"exec h_p_JIT_MOMaterReady {HWorkShopID},{HProdORGID},1", "JIT_MOMaterReadysBill"); |
| | | |
| | | if (DaSet.Tables[0].Rows[0][0].ToString() != "1") |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "æ²¡ææ°æ®,请å
é½å¥åæ!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//å¼å§è®¡æ¶ |
| | | //ææè®¡åé¢å¤ç æ¸
çææè®¡ååæ°æ® æ´æ°éè´è®¢åææè®¡åæ°é |
| | | // string sql = string.Format(@" |
| | | // /*dialect*/ |
| | | //exec [ææè®¡åé¢å¤ç] |
| | | //"); |
| | | // DBServiceHelper.Execute(Context, sql); |
| | | ////LogHelper.Info("[ææè®¡ååå¤é¶æ®µ]ææè®¡åé¢å¤çsqlï¼" + sql); |
| | | //éè´è®¢åæ°æ® |
| | | string sql = $@"exec h_p_JIT_MOMaterReady {HWorkShopID},{HProdORGID},2"; |
| | | DataSet ds = oCN.RunProcReturn(sql, "t_PUR_POOrderEntry"); |
| | | List<PurchaseInventory> PurchaseInventory = ds.ToModelList<PurchaseInventory>(); |
| | | ////LogHelper.Info("[ææè®¡ååå¤é¶æ®µ]å¯ç¨éè´è®¢åæ°æ®sqlï¼" + sql); |
| | | sql = string.Format($@"exec h_p_JIT_MOMaterReady {HWorkShopID},{HProdORGID},3"); |
| | | ////LogHelper.Info("[ææè®¡ååå¤é¶æ®µ]éè¦æææ°æ®sqlï¼" + sql); |
| | | ds = oCN.RunProcReturn( sql, "JIT_MOMaterReadysBill"); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | //ç©æ+åºåç»ç»åç±» |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FNumber,p.FStockOrgName, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FNumber=x.Key.FNumber, FStockOrgId = x.Key.FStockOrgId , FStockOrgName =x.Key.FStockOrgName }).ToList(); |
| | | //ææè®¡åæ°æ®é临æ¶åå¨éå |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sqléå æ´æ°éè´è®¢åå ç¨çææè®¡åæ°é |
| | | List<string> sqlList = new List<string>(); |
| | | |
| | | LogService.Write("1"); |
| | | string Error = ""; |
| | | foreach (var item in MaterialIDList) |
| | | { |
| | | //å½åç©ææ²¡æéè´è®¢åæ¶ ç´æ¥è·³åº |
| | | List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | Error+="[ææè®¡åå¼å§]å½åç©ææ éè´ä¿¡æ¯ï¼" + item.FNumber + " åºåç»ç»ï¼" + item.FStockOrgName + " "; |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write("1.1"); |
| | | |
| | | ////LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //å½åç©æååºåç»ç»å¯¹åºçéè¿è¡ææè®¡åçæ°æ® |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//æå°èµ·è®¢é |
| | | double FFIXLEADTIME = _DayPlanPpbom.FirstOrDefault().FFIXLEADTIME;//æåæ |
| | | //double FFIXLEADTIME = 3;//æåæ(2022-1-26 æåææ¹ä¸º3天 乿°¸ååé¦) |
| | | string FJITmaterialGroup = _DayPlanPpbom.FirstOrDefault().FJITmaterialGroup;//jitç©æåç±» |
| | | string FJITMaterielDemand = _DayPlanPpbom.FirstOrDefault().FJITMaterielDemand; //JITç©æéæ±ä¾è´§å¨æ |
| | | string FJITSafeStock = _DayPlanPpbom.FirstOrDefault().FJITSafeStock; //JITå®å
¨åºå |
| | | decimal NeedQty = 0; |
| | | DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;//第ä¸ä¸ªè®¢è´§èµ·å§æ¥æ |
| | | int i = 0; |
| | | //è®°å½å¨æå°éè´ééæ±ä¸çæ¥è®¡åæç»FentyrID |
| | | |
| | | LogService.Write("1.2"); |
| | | |
| | | List<int> FEntryIdList = new List<int>(); |
| | | foreach (var _item in _DayPlanPpbom) |
| | | { |
| | | i++; |
| | | _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | LogService.Write("1.2.1"); |
| | | |
| | | if (NeedQty == 0) |
| | | { |
| | | DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-FFIXLEADTIME); |
| | | } |
| | | FEntryIdList.Add(_item.FENTRYID); |
| | | NeedQty += _item.NeedQty; |
| | | //LogService.Write(FJITmaterialGroup); |
| | | //LogService.Write(FEntryIdList.Count); |
| | | //LogService.Write(Convert.ToDouble(FJITMaterielDemand)); |
| | | //LogService.Write(_DayPlanPpbom.Count); |
| | | //LogService.Write(i); |
| | | if ((FJITmaterialGroup == "æ»éæ§å¶è§æ ¼ç±»" || FJITmaterialGroup == "订åä¸ç¨ä¸ªæ§ç±»") && FEntryIdList.Count < Convert.ToDouble(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订åä¸ç¨ä¸ªæ§ç±» |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | LogService.Write("1.2.2"); |
| | | |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | foreach (int id in FEntryIdList) |
| | | { |
| | | var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = DayPlanPpbomls.FID, |
| | | FHMASTERDATE = DATE, |
| | | FQty = DayPlanPpbomls.NeedQty, |
| | | FBILLNO = DayPlanPpbomls.FBILLNO, |
| | | FENTRYID = DayPlanPpbomls.FENTRYID, |
| | | FMATERIALID = DayPlanPpbomls.FMATERIALID, |
| | | FNumber = DayPlanPpbomls.FNumber, |
| | | OLDDATE = DayPlanPpbomls.FHMASTERDATE, |
| | | FFIXLEADTIME = FFIXLEADTIME, |
| | | FErpClsID = DayPlanPpbomls.FErpClsID, |
| | | |
| | | PurchseFID = Purchase.FID, |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | }); |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | DayPlanPpbomls.NeedQty = 0; |
| | | } |
| | | |
| | | LogService.Write("1.2.3"); |
| | | |
| | | FEntryIdList.Clear(); |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount =isnull(FPODemandPlanCount,0)+ '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //æ£é¤å½åè¡å¯¹åºéè´è®¢åæ°é |
| | | var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault(); |
| | | ls.FQTY -= NeedQty; |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | //æ´æ°æ»éæ±æ°é |
| | | NeedQty = NeedQty - Purchase.FQTY; |
| | | //éè´è®¢åæ°é |
| | | decimal _NeedQty = Purchase.FQTY; |
| | | List<int> mmm = new List<int>(); |
| | | foreach (int id in FEntryIdList) |
| | | { |
| | | var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); |
| | | decimal Qty = DayPlanPpbomls.NeedQty;//è®¢åæ°é |
| | | |
| | | if (Qty > _NeedQty) |
| | | Qty = _NeedQty; //è®¢åæ°é>éè´è®¢åæ°é åéè´è®¢å |
| | | |
| | | _NeedQty = _NeedQty - Qty; |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = DayPlanPpbomls.FID, |
| | | FHMASTERDATE = DATE, |
| | | FQty = Qty, |
| | | FBILLNO = DayPlanPpbomls.FBILLNO, |
| | | FENTRYID = DayPlanPpbomls.FENTRYID, |
| | | FMATERIALID = DayPlanPpbomls.FMATERIALID, |
| | | FNumber = DayPlanPpbomls.FNumber, |
| | | OLDDATE = DayPlanPpbomls.FHMASTERDATE, |
| | | FFIXLEADTIME = FFIXLEADTIME, |
| | | FErpClsID = DayPlanPpbomls.FErpClsID, |
| | | |
| | | PurchseFID = Purchase.FID, |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | |
| | | FPURCHASEDEPTNUMBER = Purchase.FPURCHASEDEPTNUMBER, |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | }); |
| | | //æ´æ°è®¡åæ°éï¼å©ä½éè¦æçï¼ ç»§ç»å»è®¡ç®ä¸ä¸ä¸ªéè´è®¢å |
| | | DayPlanPpbomls.NeedQty -= Qty; |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //æ´æ°Model |
| | | var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault(); |
| | | ls.FQTY -= Qty; |
| | | if (_NeedQty <= 0) |
| | | { |
| | | foreach (var mm in mmm) |
| | | { |
| | | FEntryIdList.Remove(mm); |
| | | } |
| | | break; |
| | | } |
| | | mmm.Add(id); |
| | | } |
| | | } |
| | | } |
| | | |
| | | LogService.Write("1.2.4"); |
| | | |
| | | NeedQty = 0; |
| | | |
| | | } |
| | | } |
| | | |
| | | //var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | //LogHelper.Info($"ææè®¡åï¼æ°æ®åå¤å®æï¼ä¿åå°Modelå®ä½ï¼æ»è¡æ°ï¼{PODemandPlanTemp.Count}"); |
| | | int tlmmm = 0; |
| | | JArray FinalyResult = new JArray(); |
| | | |
| | | LogService.Write("2"); |
| | | |
| | | foreach (var item in PODemandPlanList) |
| | | { |
| | | tlmmm++; |
| | | |
| | | DateTime date = item.FHMASTERDATE; |
| | | string PurchseFNUMBER = item.PurchseFNUMBER; |
| | | //JObject model = new JObject(); |
| | | //model.Add("FHDate", date); |
| | | //model.Add("FDeliveryDate", date.AddDays(-3));//ä¾åºåé¢è®¡åè´§æ¥æ |
| | | //model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" }); |
| | | //model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER }); |
| | | |
| | | var HInterID = DBUtility.ClsPub.CreateBillID("4608", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | var HBillNo = DBUtility.ClsPub.CreateBillCode("4608", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | |
| | | var dataUser = oCN.RunProcReturn("select Czymc from gy_czygl where Czybm = '" + user + "'", "gy_czygl"); |
| | | string HMaker = dataUser.Tables[0].Rows.Count == 0 ? "" : dataUser.Tables[0].Rows[0][0].ToString();//å¶å人 |
| | | string HUpDater = dataUser.Tables[0].Rows.Count == 0 ? "" : dataUser.Tables[0].Rows[0][0].ToString();//ä¿®æ¹äºº |
| | | |
| | | |
| | | var dataOrg = oCN.RunProcReturn(@"select HItemID from Xt_ORGANIZATIONS o |
| | | inner join "+ sqlName + @"..T_ORG_ORGANIZATIONS fo on o.HNumber=fo.FNUMBER |
| | | where FNUMBER='" + PODemandPlanTemp[0].FORGNumber + "' and HItemID ='" + HProdORGID + "'", "Xt_ORGANIZATIONS"); |
| | | long HPURCHASEORGID = dataOrg.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataOrg.Tables[0].Rows[0]["HItemID"].ToString()); //éè´ç»ç» |
| | | |
| | | var dataSup = oCN.RunProcReturn(@"select * from Gy_Supplier p |
| | | inner join " + sqlName + @"..t_BD_Supplier fp on p.HNumber=fp.FNUMBER and p.HUSEORGID=fp.FUSEORGID |
| | | where FNUMBER='" + item.PurchseFNUMBER + "' and HUSEORGID ='" + HProdORGID + "'", "Gy_Supplier"); |
| | | long HSupplierID = dataSup.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataSup.Tables[0].Rows[0]["HItemID"].ToString()); //ä¾åºå |
| | | |
| | | long HSettleCurrId = 1;//è´§å¸ é»è®¤æ¬å°äººæ°å¸ |
| | | |
| | | //主表 |
| | | oCN.RunProc("insert into JIT_Cg_PODemandPlanBillMain(HInterID,HBillNo,HYear,HPeriod,HBillType" + |
| | | ",HBillSubType,HDate,HBillStatus,HMaker,HMakeDate" + |
| | | ",HSubORGID ,HAddress,HPURCHASEORGID,HSupplierID ,HSettleCurrId" + |
| | | ",HRemark,HExplanation,HUpDater,HUpDateDate)" + |
| | | $"values({HInterID}, '{HBillNo}', {DateTime.Now.Year}, {DateTime.Now.Month}, '4608'" + |
| | | $", '4608','{date}',1, '{HMaker}',GETDATE()," + |
| | | $"{HPURCHASEORGID},'',{HPURCHASEORGID}, {HSupplierID}, {HSettleCurrId}" + |
| | | $",'','','{HUpDater}',getdate())"); |
| | | |
| | | JArray Fentity = new JArray(); |
| | | List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList(); |
| | | //LogService.Write("æµè¯listmodelï¼" + _PODemandPlanList[0].FORGNumber.ToString()); |
| | | int i = 0; |
| | | foreach (var _item in _PODemandPlanList) |
| | | { |
| | | i++; |
| | | //if (!model.ToString().Contains("FHPURCHASEORGID")) |
| | | // model.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber }); |
| | | //JObject FentityModel = new JObject(); |
| | | //FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//éè´ç»ç» |
| | | //FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//ç©æ |
| | | //FentityModel.Add("FHQty", _item.FQty);//æ°é |
| | | //FentityModel.Add("FHSourceInterID", _item.FID);//æ¥è®¡åå·¥åFID |
| | | //FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//æ¥è®¡åå·¥åFENTRYID |
| | | //FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//æ¥è®¡åå·¥ååå· |
| | | //FentityModel.Add("FHSourceBillType", "");//æ¥è®¡åå·¥åç±»å |
| | | //FentityModel.Add("FDayPlanDate", _item.OLDDATE);//æ¥è®¡åå·¥åç±»å |
| | | //FentityModel.Add("FHRelationQty", _item.PurchseFqty);//å
³èæ°é |
| | | //FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//æåæ |
| | | //FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//éè´ç»ç» |
| | | //FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// éè´è®¢åå
ç ï¼FHPOOrderInterID |
| | | //FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //éè´è®¢ååå
ç ï¼FHPOOrderEntryID |
| | | //FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //éè´è®¢åå·ï¼FHPOOrderBillNo |
| | | //FentityModel.Add("FERPCLSID", _item.FErpClsID); //åææ¹å¼ |
| | | //FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //åææ¹å¼ |
| | | //Fentity.Add(FentityModel); |
| | | |
| | | |
| | | var dataSet = oCN.RunProcReturn(@"select m.* from Gy_Material m |
| | | inner join " + sqlName + @"..T_BD_MATERIAL fm on m.HNumber = fm.FNUMBER and m.HUSEORGID=fm.FUSEORGID |
| | | where FNUMBER='" + _item.FNumber + "' and HUSEORGID ='" + HProdORGID + "'", "Gy_Material"); |
| | | string HMaterID = "0"; //ç©æ |
| | | string HMaterModel = ""; //ç©æä»£ç |
| | | string HMaterName = ""; //ç©æåç§° |
| | | if (dataSet.Tables[0].Rows.Count != 0) |
| | | { |
| | | HMaterID = dataSet.Tables[0].Rows[0]["HItemID"].ToString(); //ç©æ |
| | | HMaterModel = dataSet.Tables[0].Rows[0]["HNumber"].ToString(); //ç©æä»£ç |
| | | HMaterName = dataSet.Tables[0].Rows[0]["HName"].ToString(); //ç©æåç§° |
| | | } |
| | | |
| | | decimal HQty = _item.FQty; //æ°é |
| | | long HSourceInterID = _item.FID; //æ¥è®¡åå·¥åFID |
| | | long HSourceEntryID = _item.FENTRYID;//æ¥è®¡åå·¥åFENTRYID |
| | | string HSourceBillNo = _item.FBILLNO; //ç产订åå· |
| | | string HSourceBillType = ""; //æ¥è®¡åå·¥åç±»å |
| | | DateTime HDayPlanDate = _item.OLDDATE; // å·¥åçäº§æ¥æ |
| | | decimal HRelationQty = _item.PurchseFqty; // å
³èæ°é |
| | | double HFixleadTime = _item.FFIXLEADTIME; // æåæ |
| | | |
| | | dataOrg = oCN.RunProcReturn(@"select HItemID from Xt_ORGANIZATIONS o |
| | | inner join " + sqlName + @"..T_ORG_ORGANIZATIONS fo on o.HNumber=fo.FNUMBER |
| | | where FNUMBER='" + _item.FORGNumber + "' and HItemID ='" + HProdORGID + "'", "Xt_ORGANIZATIONS"); |
| | | long HPURCHASEORGIDSub = dataOrg.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataOrg.Tables[0].Rows[0]["HItemID"].ToString()); // éè´ç»ç» |
| | | long HPOOrderInterID = _item.PurchseFID; // éè´è®¢åå
ç |
| | | long HPOOrderEntryID = _item.PurchseFentryID; // éè´è®¢ååå
ç |
| | | string HPOOrderBillNo = _item.PurchseFBillNo; // éè´è®¢åå· |
| | | string HErpClsID = _item.FErpClsID; // ç©æå±æ§ |
| | | long HUnitID = 10101; // 计éåä½ å
æç
§æ¬å°æ¥ é»è®¤ Pcs |
| | | string HSeOrderBillNo = _item.FXQD; // éå®è®¢åå· éæ±åå· |
| | | string HOrderEmpID = _item.FCREATORID; // éè´å |
| | | DateTime HPOOrderBillDate = _item.FDate; // éè´è®¢ååæ®æ¥æ |
| | | DateTime HPOOrderBillDeliveryDate = _item.FDeliveryDate; // éè´è®¢åäº¤è´§æ¥æ |
| | | string HPOOrderBillRemark = _item.F_QIMB_NOTE; // éè´è®¢åæè¦ |
| | | string HPOOrderBillNote = _item.FNOTE; // éè´è®¢å表ä½å¤æ³¨ |
| | | string HDayPlanBillNo = _item.FDAYPLANBILLNO; // æ¥è®¡åå·¥åå· |
| | | |
| | | dataSet = oCN.RunProcReturn(@"select HItemID from Gy_Department d |
| | | inner join " + sqlName + @"..T_BD_DEPARTMENT fd on d.HNumber = fd.FNUMBER |
| | | where FNUMBER='" + _item.FWORKSHOPNUMBER + "' and HUSEORGID ='" + HProdORGID + "'", "Gy_Department"); |
| | | HWorkShopID = dataSet.Tables[0].Rows.Count == 0 ? "0" : dataSet.Tables[0].Rows[0][0].ToString(); // çäº§è½¦é´ |
| | | |
| | | dataSet = oCN.RunProcReturn(@"select HItemID from Gy_Department d |
| | | inner join " + sqlName + @"..T_BD_DEPARTMENT fd on d.HNumber = fd.FNUMBER |
| | | where FNUMBER='" + _item.FPURCHASEDEPTNUMBER + "' and HUSEORGID ='" + HProdORGID + "'", "Gy_Department"); |
| | | string HPurchaseDeptID = dataSet.Tables[0].Rows.Count == 0 ? "0" : dataSet.Tables[0].Rows[0][0].ToString(); // éè´é¨é¨ |
| | | |
| | | decimal HPURCHASEQTY = _item.FPURCHASEQTY; // éè´è®¢åæ°é |
| | | decimal HJoinQty = _item.FJOINQTY; // éè´è®¢åå
³èæ°é |
| | | |
| | | oCN.RunProc("insert into JIT_Cg_PODemandPlanBillSub(HInterID,HEntryID,HLaterReason,HMaterID,HMaterName" + |
| | | ", HMaterModel, HUnitID, HErpClsID, HQty, HRemark" + |
| | | ", HPURCHASEORGID, HStatus, HFixleadTime, HDayPlanBillNo, HSourceInterID" + |
| | | ", HSourceEntryID, HSourceBillNo, HSourceBillType, HWorkShopID, HDayPlanDate" + |
| | | ", HRelationQty1, HPOOrderInterID, HPOOrderEntryID, HPOOrderBillNo, HPOOrderBillSEQ" + |
| | | ", HWWOrderInterID, HWWOrderEntryID, HWWOrderBillNo, HPurchaseDeptID, HCloseTypeSub" + |
| | | ", HCloseMan, HEntryCloseDate, HSendQty, HReciveQty, HCloseStatus" + |
| | | ", HRemoveQty, HSeOrderBillNo, HUnReciveQty, HPOOrderBillDate, HPOOrderBillDeliveryDate" + |
| | | ", HPOOrderBillRemark, HPOOrderBillNote)" + |
| | | $"values({HInterID}, {i}, '', {(HMaterID == null ? "0" : HMaterID)}, '{HMaterName}'" + |
| | | $", '{HMaterModel}', {HUnitID}, '{HErpClsID}', {HQty}, ''" + |
| | | $", {HPURCHASEORGIDSub}, '', {HFixleadTime}, '{HDayPlanBillNo}', {HSourceInterID}" + |
| | | $", {HSourceEntryID}, '{HSourceBillNo}', '{HSourceBillType}', {HWorkShopID}, '{HDayPlanDate}'" + |
| | | $", {HRelationQty}, {HPOOrderInterID},{HPOOrderEntryID}, '{HPOOrderBillNo}',0" + |
| | | $",0,0, '',{HPurchaseDeptID}, '0'" + |
| | | $", '','',0,0, '0'" + |
| | | $",0, '{HSeOrderBillNo}',0, '{HPOOrderBillDate}', '{HPOOrderBillDeliveryDate}'" + |
| | | $", '{HPOOrderBillRemark}', '{HPOOrderBillNote}')"); |
| | | |
| | | } |
| | | //model.Add("FEntity", Fentity); |
| | | //FinalyResult.Add(model); |
| | | // if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) |
| | | // { |
| | | // //LogHelper.Info("ææè®¡åæ°å¢æ¹éæ§è¡ï¼è®°å½å¾ªç¯çå½åæ¡æ°" + tlmmm); |
| | | // JObject jsonRoot = new JObject() |
| | | // { |
| | | // ["Creator"] = "", |
| | | // ["NeedUpDateFields"] = new JArray(), |
| | | // ["NeedReturnFields"] = new JArray(), |
| | | // ["IsDeleteEntry"] = "false", |
| | | // ["SubSystemId"] = "", |
| | | // ["IsVerifyBaseDataField"] = "false", |
| | | // ["Model"] = FinalyResult |
| | | // }; |
| | | // CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | // var result = cloudClient.BatchSave("paez_PODemandPlan", jsonRoot.ToString()); |
| | | // JObject saveObj = JObject.Parse(result); |
| | | // string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | // if (saveIsSuc != "TRUE") |
| | | // { |
| | | // //LogHelper.Error(jsonRoot.ToString()); |
| | | // } |
| | | // FinalyResult = new JArray(); |
| | | // } |
| | | // tlmmm++; |
| | | } |
| | | |
| | | LogService.Write("3"); |
| | | if (Error != "") |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "è¿ç®æå!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else if (tlmmm == PODemandPlanList.Count && tlmmm != 0) |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "è¿ç®æå!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "è¿ç®å¤±è´¥!" + Error; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ////sw.Stop();//ç»æè®¡æ¶ |
| | | //////LogHelper.Info("ææè®¡åæ§è¡å®æï¼è¿è¡æ»æ¶é¿ï¼" + sw.Elapsed); |
| | | //DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | |
| | | //objJsonResult.code = "1"; |
| | | //objJsonResult.count = 1; |
| | | //objJsonResult.Message = "ææè¿ç®æåï¼"; |
| | | //objJsonResult.data = null; |
| | | //return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogService.Write("æä½å¤±è´¥ï¼" + e.Message.ToString()); |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.Message.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿çäº§ç¨ææ¸
å ç®ç¼ºææ
åµ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public object JIT_PPBOM(string fProWorkShopId,int? fPrdOrgId,string user,string sqlName) { |
| | | |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//å¼å§è®¡æ¶ |
| | | //ææè®¡åé¢å¤ç æ¸
çææè®¡ååæ°æ® æ´æ°éè´è®¢åææè®¡åæ°é 并䏿¥è¯¢åºéè¦è¿è¡è¿ç®çæ°æ® |
| | | |
| | | oCN.BeginTran(); //å¼å§äºå¡ |
| | | |
| | | ds = oCN.RunProcReturn($"exec h_p_PROC_JIT_TLPLANYCL '{fProWorkShopId}','{fPrdOrgId}'", "h_p_PROC_JIT_TLPLANYCL"); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | |
| | | if (DayPlanPpbom.Count == 0) |
| | | { |
| | | oCN.RollBack();//åæ»äºå¡ |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "æ æ°æ®è¿ç®!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | //éè´è®¢åæ°æ® ï¼å©ä½æ¶ææ°éï¼ |
| | | |
| | | //t2.FXQD t2.FSTOCKINQTY,t2.FReceiveQty æ¬å°æ²¡æè¿äºå段 |
| | | string sql = string.Format(@" |
| | | select * from h_v_jit_POOrderList where FQTY>0 and FCloseStatus in('A') |
| | | and FMRPCLOSESTATUS in('A') and FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') and FStockOrgId = '{0}'", fPrdOrgId); |
| | | |
| | | ds = oCN.RunProcReturn(sql, "h_v_jit_POOrderList"); |
| | | |
| | | if (ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | oCN.RollBack();//åæ»äºå¡ |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "æ¥æ éè´è®¢åæ°æ®!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | List<PurchaseInventory> PurchaseInventory = ds.ToModelList<PurchaseInventory>(); |
| | | //ç©æ+åºåç»ç»åç±» |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList(); |
| | | |
| | | //ææè®¡åæ°æ®é临æ¶åå¨éå |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sqléå æ´æ°éè´è®¢åå ç¨çææè®¡åæ°é |
| | | List<string> sqlList = new List<string>(); |
| | | |
| | | foreach (var item in MaterialIDList) |
| | | { |
| | | //this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(75) / MaterialIDList.Count) * i); |
| | | //å½åç©æååºåç»ç»å¯¹åºçéè¿è¡ææè®¡åçæ°æ® |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | decimal NeedQty = 0; |
| | | foreach (var _item in _DayPlanPpbom) |
| | | { |
| | | //æ¥è¯¢ææ²¡æå¯ä»¥ç¨äºææçéè´è®¢åæ°æ® |
| | | var _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | //æ éè´è®¢åç´æ¥ä¸ä¸ä¸ªç©æ |
| | | sql = $"INSERT INTO JIT_TLPLANERROR(HROGID,HUSERID,HWORKSHOPID,HDAYPLANID,HDAYPLANENTRYID,HMATERIALID,HQTY,HTYPE) VALUES({fPrdOrgId},{user},{fProWorkShopId},{_item.FID},{_item.FENTRYID},{_item.FMATERIALID},{_item.NeedQty},0) "; |
| | | sqlList.Add(sql); |
| | | break; |
| | | } |
| | | //éæ±æ°é |
| | | NeedQty = _item.NeedQty; |
| | | //å¢å ä¸ä¸ªéå®è®¢åå·å¹é
çé»è¾ ä¼å
å¾ªç¯ |
| | | var PurchaseInventoryBySalOrder = _PurchaseInventory.Where(x => x.FXQD == _item.FXQD).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (PurchaseInventoryBySalOrder.Count > 0) |
| | | { |
| | | foreach (var Purchase in PurchaseInventoryBySalOrder) |
| | | { |
| | | double _FFIXLEADTIME = Purchase.FFIXLEADTIME;//æåæ |
| | | DateTime _DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-_FFIXLEADTIME); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = _item.FID, |
| | | FHMASTERDATE = _DATE, |
| | | FQty = NeedQty, |
| | | FBILLNO = _item.FBILLNO, |
| | | FENTRYID = _item.FENTRYID, |
| | | FMATERIALID = _item.FMATERIALID, |
| | | FNumber = _item.FNumber, |
| | | OLDDATE = _item.FHMASTERDATE, |
| | | FFIXLEADTIME = _FFIXLEADTIME, |
| | | FErpClsID = _item.FErpClsID, |
| | | FWORKSHOPNUMBER = _item.FWORKSHOPNUMBER, |
| | | FDAYPLANBILLNO = _item.FDAYPLANBILLNO, |
| | | |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | FPURCHASEDEPTNUMBER = Purchase.FPURCHASEDEPTNUMBER, |
| | | |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | |
| | | }); |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | _item.NeedQty = 0; |
| | | //æ£é¤å½åè¡å¯¹åºéè´è®¢åæ°é |
| | | Purchase.FQTY -= NeedQty; |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount =isnull(FPODemandPlanCount,0)+ '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //éæ±æ°éå为0 |
| | | NeedQty = 0; |
| | | break; |
| | | } |
| | | else//éè´è®¢åæ°æ®ä¸è½æ»¡è¶³è®¢åæéæ°é |
| | | { |
| | | //éè´è®¢åæ°é |
| | | decimal _NeedQty = Purchase.FQTY; |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = _item.FID, |
| | | FHMASTERDATE = _DATE, |
| | | FQty = _NeedQty, |
| | | FBILLNO = _item.FBILLNO, |
| | | FENTRYID = _item.FENTRYID, |
| | | FMATERIALID = _item.FMATERIALID, |
| | | FNumber = _item.FNumber, |
| | | OLDDATE = _item.FHMASTERDATE, |
| | | FFIXLEADTIME = _FFIXLEADTIME, |
| | | FErpClsID = _item.FErpClsID, |
| | | FWORKSHOPNUMBER = _item.FWORKSHOPNUMBER, |
| | | FDAYPLANBILLNO = _item.FDAYPLANBILLNO, |
| | | |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | FPURCHASEDEPTNUMBER = Purchase.FPURCHASEDEPTNUMBER, |
| | | |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | }); |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Purchase.FQTY}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //æ´æ°è®¢åéæ±æ°é |
| | | NeedQty = NeedQty - Purchase.FQTY; |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | _item.NeedQty -= _NeedQty; |
| | | //æ£é¤å½åè¡å¯¹åºéè´è®¢åæ°é |
| | | Purchase.FQTY = 0; |
| | | } |
| | | } |
| | | } |
| | | if (NeedQty == 0) |
| | | continue; |
| | | var PurchaseInventoryElse = _PurchaseInventory.Where(x => x.FXQD != _item.FXQD).OrderBy(x => x.FENTRYID).ToList(); |
| | | foreach (var Purchase in PurchaseInventoryElse) |
| | | { |
| | | double _FFIXLEADTIME = Purchase.FFIXLEADTIME;//æåæ |
| | | DateTime _DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-_FFIXLEADTIME); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = _item.FID, |
| | | FHMASTERDATE = _DATE, |
| | | FQty = _item.NeedQty, |
| | | FBILLNO = _item.FBILLNO, |
| | | FENTRYID = _item.FENTRYID, |
| | | FMATERIALID = _item.FMATERIALID, |
| | | FNumber = _item.FNumber, |
| | | OLDDATE = _item.FHMASTERDATE, |
| | | FFIXLEADTIME = _FFIXLEADTIME, |
| | | FErpClsID = _item.FErpClsID, |
| | | FWORKSHOPNUMBER = _item.FWORKSHOPNUMBER, |
| | | FDAYPLANBILLNO = _item.FDAYPLANBILLNO, |
| | | |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | FPURCHASEDEPTNUMBER = Purchase.FPURCHASEDEPTNUMBER, |
| | | |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | }); |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount =isnull(FPODemandPlanCount,0)+ '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | _item.NeedQty = 0; |
| | | //æ£é¤å½åè¡å¯¹åºéè´è®¢åæ°é |
| | | Purchase.FQTY -= NeedQty; |
| | | //éæ±æ°éå为0 |
| | | NeedQty = 0; |
| | | break; |
| | | } |
| | | else//éè´è®¢åæ°æ®ä¸è½æ»¡è¶³è®¢åæéæ°é |
| | | { |
| | | //æ´æ°æ»éæ±æ°é |
| | | NeedQty = NeedQty - Purchase.FQTY; |
| | | //éè´è®¢åæ°é |
| | | decimal _NeedQty = Purchase.FQTY; |
| | | PODemandPlanTemp.Add(new PODemandPlanTemp |
| | | { |
| | | FID = _item.FID, |
| | | FHMASTERDATE = _DATE, |
| | | FQty = _NeedQty, |
| | | FBILLNO = _item.FBILLNO, |
| | | FENTRYID = _item.FENTRYID, |
| | | FMATERIALID = _item.FMATERIALID, |
| | | FNumber = _item.FNumber, |
| | | OLDDATE = _item.FHMASTERDATE, |
| | | FFIXLEADTIME = _FFIXLEADTIME, |
| | | FErpClsID = _item.FErpClsID, |
| | | FWORKSHOPNUMBER = _item.FWORKSHOPNUMBER, |
| | | FDAYPLANBILLNO = _item.FDAYPLANBILLNO, |
| | | |
| | | PurchseFentryID = Purchase.FENTRYID, |
| | | FSUPPLIERID = Purchase.FSUPPLIERID, |
| | | PurchseFNUMBER = Purchase.FNUMBER, |
| | | PurchseFBillNo = Purchase.FBillNo, |
| | | PurchseFqty = Purchase.FQTY, |
| | | FStockOrgId = Purchase.FStockOrgId, //éè´ç»ç» |
| | | FORGNumber = Purchase.FORGNumber, |
| | | FPURCHASEDEPTNUMBER = Purchase.FPURCHASEDEPTNUMBER, |
| | | |
| | | FXQD = _item.FXQD, |
| | | FCREATORID = Purchase.FCREATORID, |
| | | FName = Purchase.FName, |
| | | FDate = Purchase.FDate, |
| | | FDeliveryDate = Purchase.FDeliveryDate, |
| | | F_QIMB_NOTE = Purchase.F_QIMB_NOTE, |
| | | FNOTE = Purchase.FNOTE, |
| | | FPURCHASEQTY = Purchase.FPURCHASEQTY, |
| | | FJOINQTY = Purchase.FJOINQTY |
| | | }); |
| | | //æ´æ°éè´è®¢å |
| | | //sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Purchase.FQTY}' where FENTRYID = {Purchase.FENTRYID}"); |
| | | //æ£é¤æ¥è®¡åæç»å·²è¢«åé
çæ°é |
| | | _item.NeedQty -= _NeedQty; |
| | | //æ£é¤å½åè¡å¯¹åºéè´è®¢åæ°é |
| | | Purchase.FQTY = 0; |
| | | } |
| | | } |
| | | if (NeedQty > 0) |
| | | { |
| | | sql = $"INSERT INTO JIT_TLPLANERROR(HROGID,HUSERID,HWORKSHOPID,HDAYPLANID,HDAYPLANENTRYID,HMATERIALID,HQTY,HTYPE,HERRORTYPE) VALUES({fPrdOrgId},{user},{fProWorkShopId},{_item.FID},{_item.FENTRYID},{_item.FMATERIALID},{NeedQty},0,1) "; |
| | | sqlList.Add(sql); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //ä¾åºåï¼æææ¥æï¼ç产车é´ï¼éè´å åç» |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE, p.FWORKSHOPNUMBER, p.FCREATORID }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE, FWORKSHOPNUMBER = x.Key.FWORKSHOPNUMBER, FCREATORID = x.Key.FCREATORID }).ToList(); |
| | | |
| | | LogService.Write("ææè®¡åéç® ï¼æ°æ®åå¤å®æï¼ä¿åå°Modelå®ä½ ç¨æ¶ï¼" + sw.Elapsed + "æ»è¡æ°ï¼" + PODemandPlanTemp.Count); |
| | | |
| | | int tlmmm = 0; |
| | | JArray FinalyResult = new JArray(); |
| | | foreach (var item in PODemandPlanList) |
| | | { |
| | | tlmmm++; |
| | | |
| | | DateTime date = item.FHMASTERDATE; |
| | | long HSettleCurrId = 1;//è´§å¸ é»è®¤æ¬å°äººæ°å¸ |
| | | |
| | | var dataSup = oCN.RunProcReturn(@"select * from Gy_Supplier p |
| | | inner join " + sqlName + @"..t_BD_Supplier fp on p.HNumber=fp.FNUMBER and p.HUSEORGID=fp.FUSEORGID |
| | | where FNUMBER='" + item.PurchseFNUMBER + "' and HUSEORGID ='" + fPrdOrgId + "'", "Gy_Supplier"); |
| | | long HSupplierID = dataSup.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataSup.Tables[0].Rows[0]["HItemID"].ToString()); //ä¾åºå |
| | | |
| | | var dataUser = oCN.RunProcReturn("select Czymc from gy_czygl where Czybm = '" + user + "'", "gy_czygl"); |
| | | string HMaker = dataUser.Tables[0].Rows.Count == 0 ? "" : dataUser.Tables[0].Rows[0][0].ToString();//å¶å人 |
| | | string HUpDater = dataUser.Tables[0].Rows.Count == 0 ? "" : dataUser.Tables[0].Rows[0][0].ToString();//ä¿®æ¹äºº |
| | | |
| | | var dataOrg = oCN.RunProcReturn(@"select HItemID from Xt_ORGANIZATIONS o |
| | | inner join " + sqlName + @"..T_ORG_ORGANIZATIONS fo on o.HNumber=fo.FNUMBER |
| | | where FNUMBER='" + PODemandPlanTemp[0].FORGNumber + "' and HItemID ='" + fPrdOrgId + "'", "Xt_ORGANIZATIONS"); |
| | | long HPURCHASEORGID = dataOrg.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataOrg.Tables[0].Rows[0]["HItemID"].ToString()); //éè´ç»ç» |
| | | |
| | | string PurchseFNUMBER = item.PurchseFNUMBER; |
| | | string FWorkshopNumber = item.FWORKSHOPNUMBER; |
| | | string FCreatorID = item.FCREATORID; |
| | | |
| | | var HInterID = DBUtility.ClsPub.CreateBillID("4608", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | var HBillNo = DBUtility.ClsPub.CreateBillCode("4608", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | //主表 |
| | | oCN.RunProc("insert into JIT_Cg_PODemandPlanBillMain(HInterID,HBillNo,HYear,HPeriod,HBillType" + |
| | | ",HBillSubType,HDate,HBillStatus,HMaker,HMakeDate" + |
| | | ",HSubORGID ,HAddress,HPURCHASEORGID,HSupplierID ,HSettleCurrId" + |
| | | ",HRemark,HExplanation,HUpDater,HUpDateDate)" + |
| | | $"values({HInterID}, '{HBillNo}', {DateTime.Now.Year}, {DateTime.Now.Month}, '4608'" + |
| | | $", '4608','{date}',1, '{HMaker}',GETDATE()," + |
| | | $"{HPURCHASEORGID},'',{HPURCHASEORGID}, {HSupplierID}, {HSettleCurrId}" + |
| | | $",'','','{HUpDater}',getdate())"); |
| | | |
| | | List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER && x.FWORKSHOPNUMBER == FWorkshopNumber && x.FCREATORID == FCreatorID).ToList(); |
| | | int i = 0; |
| | | foreach (var _item in _PODemandPlanList) |
| | | { |
| | | i++; |
| | | |
| | | var dataSet = oCN.RunProcReturn(@"select m.* from Gy_Material m |
| | | inner join " + sqlName + @"..T_BD_MATERIAL fm on m.HNumber = fm.FNUMBER and m.HUSEORGID=fm.FUSEORGID |
| | | where FNUMBER='" + _item.FNumber + "' and HUSEORGID ='" + fPrdOrgId + "'", "Gy_Material"); |
| | | string HMaterID = "0"; //ç©æ |
| | | string HMaterModel = ""; //ç©æä»£ç |
| | | string HMaterName = ""; //ç©æåç§° |
| | | if (dataSet.Tables[0].Rows.Count != 0) |
| | | { |
| | | HMaterID = dataSet.Tables[0].Rows[0]["HItemID"].ToString(); //ç©æ |
| | | HMaterModel = dataSet.Tables[0].Rows[0]["HNumber"].ToString(); //ç©æä»£ç |
| | | HMaterName = dataSet.Tables[0].Rows[0]["HName"].ToString(); //ç©æåç§° |
| | | } |
| | | |
| | | decimal HQty = _item.FQty; //æ°é |
| | | long HSourceInterID = _item.FID; //æ¥è®¡åå·¥åFID |
| | | long HSourceEntryID = _item.FENTRYID;//æ¥è®¡åå·¥åFENTRYID |
| | | string HSourceBillNo = _item.FBILLNO; //ç产订åå· |
| | | string HSourceBillType = ""; //æ¥è®¡åå·¥åç±»å |
| | | DateTime HDayPlanDate = _item.OLDDATE; // å·¥åçäº§æ¥æ |
| | | decimal HRelationQty = _item.PurchseFqty; // å
³èæ°é |
| | | double HFixleadTime = _item.FFIXLEADTIME; // æåæ |
| | | |
| | | dataOrg = oCN.RunProcReturn(@"select HItemID from Xt_ORGANIZATIONS o |
| | | inner join " + sqlName + @"..T_ORG_ORGANIZATIONS fo on o.HNumber=fo.FNUMBER |
| | | where FNUMBER='" + _item.FORGNumber + "' and HItemID ='" + fPrdOrgId + "'", "Xt_ORGANIZATIONS"); |
| | | long HPURCHASEORGIDSub = dataOrg.Tables[0].Rows.Count == 0 ? 0 : long.Parse(dataOrg.Tables[0].Rows[0]["HItemID"].ToString()); // éè´ç»ç» |
| | | long HPOOrderInterID = _item.PurchseFID; // éè´è®¢åå
ç |
| | | long HPOOrderEntryID = _item.PurchseFentryID; // éè´è®¢ååå
ç |
| | | string HPOOrderBillNo = _item.PurchseFBillNo; // éè´è®¢åå· |
| | | string HErpClsID = _item.FErpClsID; // ç©æå±æ§ |
| | | long HUnitID = 10101; // 计éåä½ å
æç
§æ¬å°æ¥ é»è®¤ Pcs |
| | | string HSeOrderBillNo = _item.FXQD; // éå®è®¢åå· éæ±åå· |
| | | string HOrderEmpID = _item.FCREATORID; // éè´å |
| | | DateTime HPOOrderBillDate = _item.FDate; // éè´è®¢ååæ®æ¥æ |
| | | DateTime HPOOrderBillDeliveryDate = _item.FDeliveryDate; // éè´è®¢åäº¤è´§æ¥æ |
| | | string HPOOrderBillRemark = _item.F_QIMB_NOTE; // éè´è®¢åæè¦ |
| | | string HPOOrderBillNote = _item.FNOTE; // éè´è®¢å表ä½å¤æ³¨ |
| | | string HDayPlanBillNo = _item.FDAYPLANBILLNO; // æ¥è®¡åå·¥åå· |
| | | |
| | | dataSet = oCN.RunProcReturn(@"select HItemID from Gy_Department d |
| | | inner join " + sqlName + @"..T_BD_DEPARTMENT fd on d.HNumber = fd.FNUMBER |
| | | where FNUMBER='" + _item.FWORKSHOPNUMBER + "' and HUSEORGID ='" + fPrdOrgId + "'", "Gy_Department"); |
| | | string HWorkShopID = dataSet.Tables[0].Rows.Count == 0 ? "0" : dataSet.Tables[0].Rows[0][0].ToString(); // çäº§è½¦é´ |
| | | |
| | | dataSet = oCN.RunProcReturn(@"select HItemID from Gy_Department d |
| | | inner join " + sqlName + @"..T_BD_DEPARTMENT fd on d.HNumber = fd.FNUMBER |
| | | where FNUMBER='" + _item.FPURCHASEDEPTNUMBER + "' and HUSEORGID ='" + fPrdOrgId + "'", "Gy_Department"); |
| | | string HPurchaseDeptID = dataSet.Tables[0].Rows.Count == 0 ? "0" : dataSet.Tables[0].Rows[0][0].ToString(); // éè´é¨é¨ |
| | | |
| | | decimal HPURCHASEQTY = _item.FPURCHASEQTY; // éè´è®¢åæ°é |
| | | decimal HJoinQty = _item.FJOINQTY; // éè´è®¢åå
³èæ°é |
| | | |
| | | oCN.RunProc("insert into JIT_Cg_PODemandPlanBillSub(HInterID,HEntryID,HLaterReason,HMaterID,HMaterName" + |
| | | ", HMaterModel, HUnitID, HErpClsID, HQty, HRemark" + |
| | | ", HPURCHASEORGID, HStatus, HFixleadTime, HDayPlanBillNo, HSourceInterID" + |
| | | ", HSourceEntryID, HSourceBillNo, HSourceBillType, HWorkShopID, HDayPlanDate" + |
| | | ", HRelationQty1, HPOOrderInterID, HPOOrderEntryID, HPOOrderBillNo, HPOOrderBillSEQ" + |
| | | ", HWWOrderInterID, HWWOrderEntryID, HWWOrderBillNo, HPurchaseDeptID, HCloseTypeSub" + |
| | | ", HCloseMan, HEntryCloseDate, HSendQty, HReciveQty, HCloseStatus" + |
| | | ", HRemoveQty, HSeOrderBillNo, HUnReciveQty, HPOOrderBillDate, HPOOrderBillDeliveryDate" + |
| | | ", HPOOrderBillRemark, HPOOrderBillNote)" + |
| | | $"values({HInterID}, {i}, '', {(HMaterID == null ? "0" : HMaterID)}, '{HMaterName}'" + |
| | | $", '{HMaterModel}', {HUnitID}, '{HErpClsID}', {HQty}, ''" + |
| | | $", {HPURCHASEORGIDSub}, '', {HFixleadTime}, '{HDayPlanBillNo}', {HSourceInterID}" + |
| | | $", {HSourceEntryID}, '{HSourceBillNo}', '{HSourceBillType}', {HWorkShopID}, '{HDayPlanDate}'" + |
| | | $", {HRelationQty}, {HPOOrderInterID},{HPOOrderEntryID}, '{HPOOrderBillNo}',0" + |
| | | $",0,0, '',{HPurchaseDeptID}, '0'" + |
| | | $", '','',0,0, '0'" + |
| | | $",0, '{HSeOrderBillNo}',0, '{HPOOrderBillDate}', '{HPOOrderBillDeliveryDate}'" + |
| | | $", '{HPOOrderBillRemark}', '{HPOOrderBillNote}')"); |
| | | } |
| | | } |
| | | |
| | | if (tlmmm == PODemandPlanList.Count) |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "è¿ç®æå!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "è¿ç®å¤±è´¥!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogService.Write("æä½å¤±è´¥ï¼" + e.Message.ToString()); |
| | | oCN.RollBack();//äºå¡åæ» |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.Message.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° éå® |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHLockedDay")] |
| | | [HttpGet] |
| | | public object JIT_DayPlanPlatFormBillHLockedDay(int HLockedDay,int HWorkShopID) |
| | | { |
| | | try |
| | | { |
| | | oCN.RunProc("update b set HLockedSub=0 from Sc_WorkBillSortBillMain a join Sc_WorkBillSortBillSub b on a.HInterID = b.HInterID " + |
| | | $" where a.HWorkShopID={HWorkShopID}"); |
| | | |
| | | oCN.RunProc("update b set HLockedSub=1 from Sc_WorkBillSortBillMain a join Sc_WorkBillSortBillSub b on a.HInterID = b.HInterID " + |
| | | $" where HMasterDate between DATEADD(day, -1, getdate()) " + |
| | | $"and DATEADD(day,{(HLockedDay - 1)},getdate()) and a.HWorkShopID={HWorkShopID}"); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucessï¼"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° è§£é |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHUnlockDay")] |
| | | [HttpGet] |
| | | public object JIT_DayPlanPlatFormBillHUnlockDay(int HWorkShopID) |
| | | { |
| | | try |
| | | { |
| | | oCN.RunProc("update b set HLockedSub=0 from Sc_WorkBillSortBillMain a join Sc_WorkBillSortBillSub b on a.HInterID = b.HInterID " + |
| | | $" where a.HWorkShopID={HWorkShopID}"); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucessï¼"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ç产æ¥è®¡åå¹³å° çäº§è®¢åæ¥è¯¢ |
| | | [Route("JIT_DayPlanPlatFormBill/JIT_ICMOBillList")] |
| | | [HttpGet] |
| | | public object JIT_ICMOBillList(string hmainid) |
| | | { |
| | | try |
| | | { |
| | | var list = hmainid.Split(','); |
| | | List<DataTable> listdt = new List<DataTable>(); |
| | | DataTable dtable = new DataTable("dt"); |
| | | for (int i = 0; i < list.Length; i++) |
| | | { |
| | | var listEvery = list[i].Split('_'); |
| | | |
| | | ds = oCN.RunProcReturn($"exec h_p_ICMOBillList_PrimarySubTable '{listEvery[0]}','{listEvery[1]}'", "h_p_ICMOBillList_PrimarySubTable"); |
| | | |
| | | var dt = oCN.RunProcReturn($"select * from h_v_JIT_Sc_WorkBillSortBillList where æºå主å
ç in({ds.Tables[0].Rows[0]["æºå主å
ç "].ToString()}) and æºååå
ç in({ds.Tables[0].Rows[0]["æºååå
ç "].ToString()})", "h_v_JIT_Sc_WorkBillSortBillList"); |
| | | if (dt.Tables[0].Rows.Count > 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "ç产æç»è¡éå¤,éå¤çç产订åå·:" + ds.Tables[0].Rows[i]["ç产订åå·"].ToString() + ",æç»è¡å·:" + ds.Tables[0].Rows[i]["ç产订åæç»è¡å·"].ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | if (i == 0) |
| | | { |
| | | //æ·»å åå |
| | | for (int j = 0; j < ds.Tables[0].Columns.Count; j++) |
| | | { |
| | | dtable.Columns.Add(ds.Tables[0].Columns[j].ToString()); |
| | | } |
| | | } |
| | | listdt.Add(ds.Tables[0]); |
| | | } |
| | | |
| | | //è·åéåæ°æ® |
| | | for (int i = 0; i < listdt.Count; i++) |
| | | { |
| | | DataRow row = dtable.NewRow(); |
| | | for (int j = 0; j < listdt[i].Columns.Count; j++) |
| | | { |
| | | if (listdt[i].Columns[j].ColumnName == "è®¡åæ°é") |
| | | { |
| | | row[j] = double.Parse(listdt[i].Rows[0][j].ToString()).ToString(); |
| | | } |
| | | else |
| | | { |
| | | row[j] = listdt[i].Rows[0][j].ToString(); |
| | | } |
| | | } |
| | | dtable.Rows.Add(row); |
| | | } |
| | | |
| | | //æ·»å å¨ææ¥æ |
| | | for (int j = 1; j <= 31; j++) |
| | | { |
| | | dtable.Columns.Add(DateTime.Now.AddDays(j - 1).ToString("yyyy-MM-dd"), typeof(Int32)); |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucessï¼"; |
| | | objJsonResult.data = dtable; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "Exceptionï¼" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |