From fd56fa51fe25f26ce5b518c6f3afb81fbc19553a Mon Sep 17 00:00:00 2001
From: zzr99 <1940172413@qq.com>
Date: 星期一, 25 七月 2022 17:04:53 +0800
Subject: [PATCH] 盘点

---
 WebAPI/Controllers/SCGL/日计划管理/JIT_DayPlanPlatFormBillController.cs |  854 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 850 insertions(+), 4 deletions(-)

diff --git "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs" "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
index 08618dc..b38c925 100644
--- "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
+++ "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
@@ -7,11 +7,13 @@
 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();
@@ -22,7 +24,7 @@
         #region 鐢熶骇鏃ヨ鍒掑钩鍙� 鏌ヨ
         [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillList")]
         [HttpGet]
-        public object JIT_DayPlanPlatFormBillList(string sWhere,string user)
+        public object JIT_DayPlanPlatFormBillList(string sWhere, string user)
         {
             try
             {
@@ -38,8 +40,45 @@
 
                 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}'" +
+                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");
+
+                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)),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;
@@ -149,11 +188,11 @@
                         var HMainSourceInterID = list[i]["婧愬崟涓诲唴鐮�"].ToString();
                         var HMainSourceEntryID = list[i]["婧愬崟瀛愬唴鐮�"].ToString();
 
-                        if (HSourceID=="")
+                        if (HSourceID == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = $"绗瑊i+1}琛岀敓浜ц祫婧愪笉鑳戒负绌�!";
+                            objJsonResult.Message = $"绗瑊i + 1}琛岀敓浜ц祫婧愪笉鑳戒负绌�!";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -278,5 +317,812 @@
             return objJsonResult;
         }
         #endregion
+
+        #region 鐢熶骇鏃ヨ鍒掑钩鍙� 榻愬鍒嗘瀽
+
+        #region 娓呭崟閰嶆枡鏂瑰紡
+        public class PRD_PPBOM
+        {
+
+            /// <summary>
+            /// 鏃ヨ鍒掑伐鍗旻ID
+            /// </summary>
+            public long HInterID { get; set; }
+            /// <summary>
+            /// 鏃ヨ鍒掓槑缁咶EntryID
+            /// </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; }
+        }
+        #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>
+            /// 涓荤敓浜ц鍗曚富鍐呯爜锛欶HMainICMOInterIDr 
+            /// </summary>
+            public string FHMainICMOInterIDr { get; set; }
+            /// <summary>
+            ///  涓荤敓浜ц鍗曞瓙鍐呯爜锛欶HMainICMOEntryID  
+            /// </summary>
+            public string FHMainICMOEntryID { get; set; }
+            /// <summary>
+            ///  鏃ヨ鍒掕鍗曚富鍐呯爜锛欶HICMOInterID 
+            /// </summary>
+            public string FHICMOInterID { get; set; }
+            /// <summary>
+            ///  鏃ヨ鍒掕鍗曞瓙鍐呯爜锛欶HICMOEntryID  
+            /// </summary>
+            public string FHICMOEntryID { get; set; }
+            /// <summary>
+            ///  瀛愪欢鐗╂枡锛欶HMaterID  
+            /// </summary>
+            public string FHMaterID { get; set; }
+
+            /// <summary>
+            ///  搴撳瓨缁勭粐锛欶HStockOrgID
+            /// </summary>
+            public string FHStockOrgID { get; set; }
+
+            /// <summary>
+            ///鐢熶骇缁勭粐锛欶HPRDORGID 
+            /// </summary>
+            public string FHPRDORGID { get; set; }
+
+            /// <summary>
+            /// 鐢熶骇璁㈠崟鍙凤細FPRDBillNo 
+            /// </summary>
+            public string FPRDBillNo { get; set; }
+            /// <summary>
+            /// 鏍囪瘑
+            /// </summary>
+            public string FIdentificat { get; set; }
+            /// <summary>
+            ///  璐т富鍚嶇О锛欶OwnerName 
+            /// </summary>
+            public string FOwnerName { get; set; }
+            /// <summary>
+            ///  璐т富缂栫爜锛欶OwnerId
+            /// </summary>
+            public string FOwnerId { get; set; }
+            /// <summary>
+            /// 璐т富绫诲瀷锛欶OwnerTypeId        
+            /// </summary>
+            public string FOwnerTypeId { get; set; }
+            /// <summary>
+            /// 榻愬鐘舵��
+            /// </summary>
+            public string FComPlete { get; set; }
+            /// <summary>
+            ///  鏁伴噺
+            /// </summary>
+            public string FHUseQty { get; set; }
+            /// <summary>
+            ///  鍙婃椂搴撳瓨鏁伴噺锛欶HStockQty 
+            /// </summary>
+            public decimal FHStockQty { get; set; }
+            /// <summary>
+            ///鍙敤鏁伴噺锛欶HLeftQty 
+            /// </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>
+            /// 鍗曚綅鐢ㄩ噺锛欶UnitDosage  
+            /// </summary>
+            public decimal FUnitDosage { get; set; }
+            /// <summary>
+            /// 璁″垝鎬绘暟閲忥細FSumPlanCount 
+            /// </summary>
+            public decimal FSumPlanCount { get; set; }
+            /// <summary>
+            /// 榻愬鏁伴噺锛欶CompleteCount 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; }
+
+        }
+        #endregion
+
+        [Route("JIT_DayPlanPlatFormBill/JIT_CompleteSetAnalysis")]
+        [HttpGet]
+        public object JIT_CompleteSetAnalysis(string sWhere, string user)
+        {
+            try
+            {
+                oCN.BeginTran();
+                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("澶辫触"))
+                {
+                    return resulTable.Rows[0][0].ToString();
+                }
+                else
+                {
+                    BomList = ds.ToModelList<PRD_PPBOM>();
+                }
+
+                string fDayPlanFids = string.Empty;
+                string fDayPlanFEntryids = string.Empty;
+                if (BomList.Count == 0)
+                {
+                    return "娌℃湁闇�瑕佽繘琛岄綈濂楀垎鏋愮殑鏁版嵁";
+                }
+                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("鏃ヨ鍒掑伐鍗昳ds" + fDayPlanFids);
+
+                sw.Start();//寮�濮嬭鏃�
+
+                //鑾峰彇褰撳墠鍗虫椂搴撳瓨 搴撳瓨鏁伴噺+搴撳瓨缁勭粐+鐗╂枡+璐т富+浠撳簱   
+                ds = oCN.RunProcReturn(@" 
+select distinct isnull(a.FBASEQTY,0) FBASEQTY,b.FNumber,a.FOwnerTypeId,a.FOwnerId,c.FNUMBER as FOwnerNumber,a.FSTOCKID,d.FNUMBER as FStockNumber from 
+(
+select distinct a.HProdORGID FStockOrgId,T2.FMATERIALID,FNumber from SC_WORKBILLSORTBILLMAIN a
+join SC_WORKBILLSORTBILLSub b on a.HInterID = b.HInterID
+join AIS20210811135644..T_PRD_PPBOM T1 on a.HICMOInterID_Sec = t1.FMoId and a.HICMOEntryID_Sec = t1.FMOENTRYID
+LEFT JOIN  AIS20210811135644..T_PRD_PPBOMENTRY T2 on T1.FID = t2.FID
+join  AIS20210811135644..T_BD_MATERIAL T3 on T2.FMATERIALID = T3.FMATERIALID
+) T1 
+JOIN  AIS20210811135644..T_BD_MATERIAL b on  t1.FNUMBER = b.FNUMBER
+LEFT JOIN  AIS20210811135644..T_STK_Inventory a on b.FMATERIALID = a.FMATERIALID
+LEFT join (select distinct fitemid,fformid,FNUMBER from  AIS20210811135644..V_ITEMCLASS_OWNER) c on a.FOwnerTypeId = c.fformid and a.FOWNERID = c.fitemid
+join  AIS20210811135644..t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
+where a.FBASEQTY>0 
+", "SC_WORKBILLSORTBILLMAIN");
+                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 涓嶈鍙栧�奸渶姹傛暟閲廎NeedQty 棰嗘枡鏁版嵁
+                string LLsql = string.Format(@"
+select max(t1.FCXStockInQty)FCXStockInQty,FPRDMOENTYID,max(dwyl)dwyl,sum(FPickedQty)FPickedQty,sum(FRemainPickedQty)FRemainPickedQty,FMATERIALID from 
+(
+select a.FCXStockInQty, FPRDMOENTYID,convert( decimal(18,2),FMustQty/FQty ) as dwyl,FPickedQty,T2.FMATERIALID,
+case when convert( decimal(18,2),(FPickedQty - a.FCXStockInQty * FMustQty/FQty))< 0 then 0 
+else convert( decimal(18,2),(FPickedQty - a.FCXStockInQty * FMustQty/FQty)) end as FRemainPickedQty 
+ from 
+(
+select sum(HSourceStockInQty)FCXStockInQty,HICMOEntryID_Sec FPRDMOENTYID from SC_WORKBILLSORTBILLMAIN a
+--where a.HInterID IN ({0})
+group by HICMOEntryID_Sec 
+) a
+join  AIS20210811135644..T_PRD_PPBOM T1  on a.FPRDMOENTYID = t1.FMOENTRYID
+LEFT JOIN AIS20210811135644..T_PRD_PPBOMENTRY t2 on T1.FID = T2.FID 
+LEFT JOIN AIS20210811135644..T_PRD_PPBOMENTRY_Q t3 on t2.FENTRYID = T3.FENTRYID 
+LEFT JOIN AIS20210811135644..T_BD_MATERIAL T4 ON T2.FMATERIALID = T4.FMATERIALID 
+) t1
+group by FPRDMOENTYID,FMATERIALID
+", fDayPlanFids);
+                List<DayPlanPickedModel> DayPlanPickedModel = new List<DayPlanPickedModel>();
+                ds = oCN.RunProcReturn(LLsql, "SC_WORKBILLSORTBILLMAIN");
+                DayPlanPickedModel = ds.ToModelList<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);
+
+                //绗竴涓惊鐜� 鏃ヨ鍒掑伐鍗曟槑缁� 涓�澶�+涓�涓伐鍗� 涓�涓惊鐜�
+                foreach (var item in DatePlanList)
+                {
+                    //鏃ヨ鍒掔敤鏂欐竻鍗曟槑缁� 姣忎竴澶╃殑瀹為檯鐢ㄦ枡鎯呭喌
+                    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;//鐢ㄤ簬璁$畻褰撴椂閭d釜璁$畻鑺傜偣鐨勫嵆鏃跺簱瀛�
+                        //璁$畻褰撳墠杩欏嚑涓粨搴撴�荤殑搴撳瓨閲� 
+                        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,
+                                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 //杞﹂棿
+                            });
+                            //鎵i櫎鍓╀綑鍙敤棰嗘枡鏁伴噺
+                            _DayPlanPickedModel.FRemainPickedQty -= need;
+                            //寰幆涓嬩竴涓墿鏂�
+                            continue;
+                        }
+                        else
+                        {
+                            need -= _DayPlanPickedModel.FRemainPickedQty; //鍓╀綑闇�姹傛暟閲�
+                            FOccupyPickedCount = _DayPlanPickedModel.FRemainPickedQty;
+                            _DayPlanPickedModel.FRemainPickedQty = 0;
+                        }
+                        if (_pRD_WorkHouseCompar.Count > 0)
+                        {
+                            //缂烘枡鏁伴噺 闇�姹傛暟閲� - 瀹為檯搴撳瓨  >0 ? 涓�涓墿鏂欎笉绠″崰鐢ㄥ灏戞潯 搴撳瓨+璐т富 鏁版嵁 缂烘枡鏁伴噺鏄悓涓�涓暟閲�
+                            decimal _fLackCount = need > jskcQty ? (need - jskcQty) : 0;
+                            //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,
+                                    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;
+                            }
+                            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,
+                                            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 //杞﹂棿
+                                        });
+                                        //鎵e噺鎬诲簱瀛樻暟閲�
+                                        jskcQty = jskcQty >= fCompleteCount ? jskcQty - fCompleteCount : 0;
+                                        //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲�
+                                        need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0;
+                                        //鎵e噺娑堣�楀簱瀛�
+                                        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,
+                                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($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{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("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));
+                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["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;
+                    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)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()})");
+                }
+                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);
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎿嶄綔鎴愬姛";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                LogService.Write("鎿嶄綔澶辫触锛�" + e.Message.ToString());
+                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(string sWhere, int HLockedDay)
+        {
+            try
+            {
+                if (sWhere != null && sWhere != "")
+                {
+                    oCN.RunProc("update Sc_WorkBillSortBillSub set HLockedSub=1" +
+                    $" where HInterID in ({sWhere}) and HMasterDate between  DATEADD(day, -1, getdate()) and DATEADD(day,{(HLockedDay - 1)},getdate()) ");
+                }
+                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 鐢熶骇鏃ヨ鍒掑钩鍙� 瑙i攣
+        [Route("JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHUnlockDay")]
+        [HttpGet]
+        public object JIT_DayPlanPlatFormBillHUnlockDay(string sWhere, int HLockedDay)
+        {
+            try
+            {
+                if (sWhere != null && sWhere != "")
+                {
+                    oCN.RunProc("update Sc_WorkBillSortBillSub set HLockedSub=0" +
+                    $" where HInterID in ({sWhere}) and HMasterDate between  DATEADD(day, -1, getdate()) and DATEADD(day,{(HLockedDay - 1)},getdate()) ");
+                }
+                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
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1