From cf89cfc7e1c06a977588c2ae0185ee1b2da5ce90 Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期五, 26 一月 2024 15:18:04 +0800
Subject: [PATCH] 工序流转卡 反审核 审核 方法,增加 调用 反审核 审核 前控制 h_p_Sc_ProcessExchangeBill_BeforeUnCheckCtrl 、h_p_Sc_ProcessExchangeBill_BeforeCheckCtrl 和反审核 审核 后控制 h_p_Sc_ProcessExchangeBill_AfterUnCheckCtrl、h_p_Sc_ProcessExchangeBill_AfterCheckCtrl的 存储过程。 工序返工申请单反审核 审核方法,增加 调用 反审核 审核 前控制 h_p_Sc_ProcExchWorkBackBill_BeforeUnCheckCtrl、h_p_Sc_ProcExchWorkBackBill_BeforeCheckCtrl 和反审核 审核 后控制 h_p_Sc_ProcExchWorkBackBill_AfterUnCheckCtrl、h_p_Sc_ProcExchWorkBackBill_AfterCheckCtrl的 存储过程。 工序返工记录单反审核 审核方法,增加 调用 反审核 审核 前控制 h_p_Sc_ProcExchRecordBackBill_BeforeUnCheckCtrl 、h_p_Sc_ProcExchRecordBackBill_BeforeCheckCtrl 和反审核 审核 后控制 h_p_Sc_ProcExchRecordBackBill_AfterUnCheckCtrl、h_p_Sc_ProcExchRecordBackBill_AfterCheckCtrl的 存储过程。 工序流转卡派工单反审核审核方法,增加调用反审核 审核 前控制h_p_Sc_ProcExchSendWorkBill_BeforeUnCheckCtrl、h_p_Sc_ProcExchSendWorkBill_BeforeCheckCtrl 和反审核审核后控制h_p_Sc_ProcExchSendWorkBill_AfterUnCheckCtrl、h_p_Sc_ProcExchSendWorkBill_AfterCheckCtrl的存储过程。 工序委外派工单反审核审核方法,增加 调用反审核审核前控制h_p_WW_EntrustWorkOrderBill_BeforeUnCheckCtrl 、h_p_WW_EntrustWorkOrderBill_BeforeCheckCtrl和反审核 审核后控制h_p_WW_EntrustWorkOrderBill_AfterUnCheckCtrl、h_p_WW_EntrustWorkOrderBill_AfterCheckCtrl的存储过程。 工序进站接收单反审核审核方法,增加调用反审核审核前控制h_p_Sc_StationInBill_BeforeUnCheckCtrl 、h_p_Sc_StationInBill_BeforeCheckCtrl和反审核审核后控制h_p_Sc_StationInBill_AfterUnCheckCtrl、h_p_Sc_StationInBill_AfterCheckCtrl的存储过程。 工序出站汇报单反审核审核方法,增加调用反审核审核前控制h_p_Sc_StationOutBill_BeforeUnCheckCtrl 、h_p_Sc_StationOutBill_BeforeCheckCtrl和反审核 审核后控制h_p_Sc_StationOutBill_AfterUnCheckCtrl、h_p_Sc_StationOutBill_AfterCheckCtrl的存储过程

---
 WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs | 1812 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 1,617 insertions(+), 195 deletions(-)

diff --git a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
index 9e68093..8360cc1 100644
--- a/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
+++ b/WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json.Linq;
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using Pub_Class;
 using System;
 using System.Collections;
@@ -6,6 +7,7 @@
 using System.Data;
 using System.Data.SqlClient;
 using System.Web.Http;
+using System.Windows.Forms;
 using WebAPI.Models;
 
 namespace WebAPI.Controllers
@@ -17,7 +19,11 @@
         private json objJsonResult = new json();
         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
         DataSet ds;
+        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
 
+
+        #region[鏂板鍗曟嵁-淇濆瓨鎸夐挳]
         /// <summary>
         /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
         ///鍙傛暟锛歴tring sql銆�
@@ -29,216 +35,647 @@
         {
             var _value = sMainSub["sMainSub"].ToString();
             string msg1 = _value.ToString();
-            //淇濆瓨鍗曟嵁
-            return objJsonResult = AddBillMain(msg1);
-        }
-
-        public json AddBillMain(string msg1)
-        {
             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
             string msg3 = sArray[1].ToString();
-            bool bResult;
+            string msg4 = sArray[2].ToString();
+            string msg5 = sArray[3].ToString();
+            string HBillSubType = sArray[4].ToString();
+            string HComputerName = SystemInformation.ComputerName; //璁惧鍚嶇О    
+
+            string UserName = "";
+            ListModels oListModels = new ListModels();
+            
             try
             {
-                msg2 = "[" + msg2.ToString() + "]";
-                List<Model.ClsSc_ProcessExchangeBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessExchangeBillMain>>(msg2);
-                DAL.ClsSc_ProcessExchangeBill BillNew = new DAL.ClsSc_ProcessExchangeBill();
-                //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
-                string s = "";
-                int sYear = 0;
-                int sPeriod = 0; 
-                DateTime HDate = mainList[0].HDate;//鏃ユ湡
-                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                if (HBillSubType == "SUB")
                 {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = s;
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
-                BillNew.omodel.HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
-                BillNew.omodel.HYear = sYear;
-                BillNew.omodel.HPeriod = sPeriod;
-                BillNew.omodel.HBillNo = mainList[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
-                BillNew.omodel.HDate = HDate;
-                BillNew.omodel.HRemark = mainList[0].HRemark;//澶囨敞
-                BillNew.omodel.HMaker = mainList[0].HMaker;
-                BillNew.omodel.HWWOrderInterID = ClsPub.isLong(mainList[0].HWWOrderInterID);
-                BillNew.omodel.HWWOrderEntryID = ClsPub.isLong(mainList[0].HWWOrderEntryID);
-                BillNew.omodel.HWWOrderBillNo = ClsPub.isStrNull(mainList[0].HWWOrderBillNo);
-                BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
-                BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
-                BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
-                BillNew.omodel.HMaterID2 = ClsPub.isLong(mainList[0].HMaterID2);
-                BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
-                BillNew.omodel.HMaterNumber = ClsPub.isStrNull(mainList[0].HMaterNumber);
-                BillNew.omodel.HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
-                BillNew.omodel.HUnitID = ClsPub.isLong(mainList[0].HUnitID);
-                BillNew.omodel.HUnitNumber = ClsPub.isStrNull(mainList[0].HUnitNumber);
-                BillNew.omodel.HPlanQty = ClsPub.isDoule(mainList[0].HPlanQty);
-                BillNew.omodel.HQty = ClsPub.isDoule(mainList[0].HQty);
-                BillNew.omodel.HPlanBeginDate = ClsPub.isDate(mainList[0].HPlanBeginDate);
-                BillNew.omodel.HPlanEndDate = ClsPub.isDate(mainList[0].HPlanEndDate);
-                BillNew.omodel.HExplanation = ClsPub.isStrNull(mainList[0].HExplanation);
-                BillNew.omodel.HInnerBillNo = ClsPub.isStrNull(mainList[0].HInnerBillNo);
-                BillNew.omodel.HWorkShopID = ClsPub.isLong(mainList[0].HWorkShopID);
-                BillNew.omodel.HSupID = ClsPub.isLong(mainList[0].HSupID);
-                BillNew.omodel.HBLFlag = mainList[0].HBLFlag;
-                BillNew.omodel.HMainMaterID = ClsPub.isLong(mainList[0].HMainMaterID);
-                BillNew.omodel.HKeyMaterID = ClsPub.isLong(mainList[0].HKeyMaterID);
-                BillNew.omodel.HOrderProcNO = ClsPub.isStrNull(mainList[0].HOrderProcNO);
-                BillNew.omodel.HEquipMentID = ClsPub.isLong(mainList[0].HEquipMentID);
-                BillNew.omodel.HMateOutBatchNo = ClsPub.isStrNull(mainList[0].HMateOutBatchNo);
-                BillNew.omodel.HProjectNum = ClsPub.isStrNull(mainList[0].HProjectNum);
-                BillNew.omodel.HProdMaterCode = ClsPub.isStrNull(mainList[0].HProdMaterCode);
-                BillNew.omodel.HSeOrderBillNo = ClsPub.isStrNull(mainList[0].HSeOrderBillNo);
-                BillNew.omodel.HCusShortName = ClsPub.isStrNull(mainList[0].HCusShortName);
-                BillNew.omodel.HCusNeedMaterial = ClsPub.isStrNull(mainList[0].HCusNeedMaterial);
-                BillNew.omodel.HPlanSendGoodsDate = ClsPub.isStrNull(mainList[0].HPlanSendGoodsDate);
-                BillNew.omodel.HProdMaterName = ClsPub.isStrNull(mainList[0].HProdMaterName);
-                BillNew.omodel.HCusName = ClsPub.isStrNull(mainList[0].HCusName);
-                BillNew.omodel.HWorkRemark = ClsPub.isStrNull(mainList[0].HWorkRemark);
-                BillNew.omodel.HImportNote = ClsPub.isStrNull(mainList[0].HImportNote);
-                BillNew.omodel.HMaterNumber_A = ClsPub.isStrNull(mainList[0].HMaterNumber_A);
-                BillNew.omodel.HMaterNumber_B = ClsPub.isStrNull(mainList[0].HMaterNumber_B);
-                BillNew.omodel.HMaterNumber_C = ClsPub.isStrNull(mainList[0].HMaterNumber_C);
-                BillNew.omodel.HMaterNumber_D = ClsPub.isStrNull(mainList[0].HMaterNumber_D);
-                BillNew.omodel.HProdType = ClsPub.isStrNull(mainList[0].HProdType);
-                BillNew.omodel.HMaterShortName = ClsPub.isStrNull(mainList[0].HMaterShortName);
-                BillNew.omodel.HMaterIDA = ClsPub.isStrNull(mainList[0].HMaterIDA);
-                BillNew.omodel.HMaterIDB = ClsPub.isStrNull(mainList[0].HMaterIDB);
-                BillNew.omodel.HMaterIDC = ClsPub.isStrNull(mainList[0].HMaterIDC);
-                BillNew.omodel.HMaterIDD = ClsPub.isStrNull(mainList[0].HMaterIDD);
-                List<Model.ClsSc_ProcessExchangeBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessExchangeBillSub>>(msg3);
-                BillNew.DetailColl = new List<Model.ClsSc_ProcessExchangeBillSub>();
-                for (int i = 0; i < subList.ToArray().Length; i++)
-                {
-                    if (DBUtility.ClsPub.isInt(subList[i].HProcID) != 0)//HQty
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Edit", 1, false, msg4))
                     {
-                        Model.ClsSc_ProcessExchangeBillSub oSub = new Model.ClsSc_ProcessExchangeBillSub();
-                        oSub.HEntryID = i;
-                        oSub.HRemark = DBUtility.ClsPub.isStrNull(subList[i].HRemark);
-                        oSub.HSourceInterID = ClsPub.isLong(mainList[0].HICMOInterID);
-                        oSub.HSourceEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
-                        oSub.HSourceBillType = "85";
-                        oSub.HSourceBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
-                        oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
-                        //oSub.HRelationQty_In = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_In);
-                        //oSub.HRelationQty_Out = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Out);
-                        //oSub.HRelationQty_WWOrder = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_WWOrder);
-                        //oSub.HRelationQty_Bad = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Bad);
-                        oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
-                        oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
-                        oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
-                        oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
-                        oSub.HQty = DBUtility.ClsPub.isDoule(subList[i].HQty);
-                        if (oSub.HQty <= 0)
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝娴佽浆鍗℃暟閲忎笉鑳戒负0鎴栬�呭皬浜�0";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        oSub.HProcNo = DBUtility.ClsPub.isLong(subList[i].HProcNo);
-                        if (oSub.HProcNo <= 0)
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝娴佹按鍙蜂笉鑳戒负0鎴栬�呭皬浜�0";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        oSub.HProcID = DBUtility.ClsPub.isLong(subList[i].HProcID);
-                        oSub.HProcNumber = DBUtility.ClsPub.isStrNull(subList[i].HProcNumber);
-                        oSub.HWorkRemark = DBUtility.ClsPub.isStrNull(subList[i].HWorkRemark);
-                        oSub.HCenterID = DBUtility.ClsPub.isLong(subList[i].HCenterID);
-                        oSub.HDeptID = DBUtility.ClsPub.isLong(subList[i].HDeptID);
-                        oSub.HDeptNumber = DBUtility.ClsPub.isStrNull(subList[i].HDeptNumber);
-                        ////oSub.HGroupID = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HGroupIDCol].Value);
-                        oSub.HGroupNumber = DBUtility.ClsPub.isStrNull(subList[i].HGroupNumber);
-                        oSub.HWorkerID = DBUtility.ClsPub.isLong(subList[i].HWorkerID);
-                        oSub.HWorkerNumber = DBUtility.ClsPub.isStrNull(subList[i].HWorkerNumber);
-                        oSub.HSourceID = DBUtility.ClsPub.isLong(subList[i].HSourceID);
-                        oSub.HTimeUnit = DBUtility.ClsPub.isStrNull(subList[i].HTimeUnit);
-                        oSub.HPlanWorkTimes = DBUtility.ClsPub.isSingle(subList[i].HPlanWorkTimes);
-                        oSub.HPlanBeginDate = DBUtility.ClsPub.isDate(subList[i].HPlanBeginDate);
-                        oSub.HPlanEndDate = DBUtility.ClsPub.isDate(subList[i].HPlanEndDate);
-                        oSub.HRelBeginDate = DBUtility.ClsPub.isDate(subList[i].HRelBeginDate);
-                        oSub.HRelEndDate = DBUtility.ClsPub.isDate(subList[i].HRelEndDate);
-                        oSub.HReadyTime = 0;
-                        oSub.HQueueTime = 0;
-                        oSub.HMoveTime = 0;
-                        oSub.HBeginDayQty = DBUtility.ClsPub.isSingle(subList[i].HBeginDayQty);
-                        oSub.HBeginFixQty = DBUtility.ClsPub.isSingle(subList[i].HBeginFixQty);
-                        oSub.HFixWorkDays = DBUtility.ClsPub.isSingle(subList[i].HFixWorkDays);
-                        oSub.HTrunWorkDays = DBUtility.ClsPub.isSingle(subList[i].HTrunWorkDays);
-                        oSub.HReadyTimes = DBUtility.ClsPub.isSingle(subList[i].HReadyTimes);
-                        oSub.HMyWorkDays = DBUtility.ClsPub.isSingle(subList[i].HMyWorkDays);
-                        oSub.HOutPrice = DBUtility.ClsPub.isSingle(subList[i].HOutPrice);
-                        oSub.HOutMoney = DBUtility.ClsPub.isSingle(subList[i].HOutMoney);
-                        oSub.HLastProc = "鍚�";
-                        oSub.HFstProc = "鍚�";
-                        oSub.HKeyProc = DBUtility.ClsPub.isStrNull(subList[i].HKeyProc);
-                        oSub.HSupID = DBUtility.ClsPub.isLong(subList[i].HSupID);
-                        oSub.HSupFlag = DBUtility.ClsPub.isBool(subList[i].HSupFlag);
-                        oSub.HBackProc = DBUtility.ClsPub.isBool(subList[i].HBackProc);
-                        oSub.HEdit = DBUtility.ClsPub.isBool(subList[i].HEdit);
-                        if (oSub.HCenterID == 0 && oSub.HSupFlag == false)
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝宸ヤ綔涓績鎴栧澶栨爣璁颁笉鑳藉悓鏃朵负绌�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        oSub.HICMOBillNo = DBUtility.ClsPub.isStrNull(subList[i].HICMOBillNo);
-                        oSub.HICMOInterID = DBUtility.ClsPub.isLong(subList[i].HICMOInterID);
-                        oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(subList[i].HSeOrderInterID);
-                        oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HSeOrderEntryID);
-                        oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HSeOrderBillNo);
-                        oSub.HWWOrderInterID = DBUtility.ClsPub.isLong(subList[i].HWWOrderInterID);
-                        oSub.HWWOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HWWOrderEntryID);
-                        oSub.HWWOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HWWOrderBillNo);
-                        oSub.HSumPassRate = DBUtility.ClsPub.isSingle(subList[i].HSumPassRate);
-                        oSub.HPassRate = DBUtility.ClsPub.isSingle(subList[i].HPassRate);
-                        oSub.HOverRate = DBUtility.ClsPub.isDoule(subList[i].HOverRate);
-                        oSub.HMaxQty = DBUtility.ClsPub.isDoule(subList[i].HMaxQty);
-                        oSub.HTechnologyParameter = DBUtility.ClsPub.isStrNull(subList[i].HTechnologyParameter);
-                        oSub.HPicNum = DBUtility.ClsPub.isStrNull(subList[i].HPicNum);
-                        oSub.HProcCheckNote = DBUtility.ClsPub.isStrNull(subList[i].HProcCheckNote);
-                        BillNew.DetailColl.Add(oSub);
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎸囧紩鍗℃棤淇濆瓨鏉冮檺锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
                     }
                 }
-                //淇濆瓨瀹屾瘯鍚庡鐞�
-                //if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew)
-                //{
-                //    bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
-                //}
-                //else
-                //{
-                //    bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
-                //}
-                bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
-                //鎻愮ず
-                if (bResult == true)
+                else {
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg4))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "娴佽浆鍗℃棤淇濆瓨鏉冮檺锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+               
+                DBUtility.ClsPub.CurUserName = msg4;
+                DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
+                List<Model.ClsSc_ProcessExchangeBillMain> lsmain = new List<Model.ClsSc_ProcessExchangeBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_Sc_ProcessExchangeBillMain(msg2);
+                foreach (Model.ClsSc_ProcessExchangeBillMain oItem in lsmain)
                 {
-                    objJsonResult.code = "1";
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "3772";
+                    oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : "3772";
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                    oItem.HDate = HBillSubType == "SUB" ? DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")) : oItem.HDate;
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oBill.omodel = oItem;
+                }
+
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsSc_ProcessExchangeBillSub> ls = new List<Model.ClsSc_ProcessExchangeBillSub>();
+                ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in ls)
+                {
+
+                    i++;
+                    oItemSub.HEntryID = i;
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (msg5 == "xz")
+                {
+                    LogService.Write("鐢ㄦ埛:" + msg4 + ",鏃ユ湡:" + DateTime.Now + ",鏂板宸ュ簭娴佽浆鍗″崟鎹�:" + oBill.omodel.HBillNo);
+                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+
+                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "鏂板宸ュ簭娴佽浆鍗″崟鎹細" + oBill.omodel.HBillNo + "','LMES-宸ュ簭娴佽浆鍗℃ā鍧�','" + DBUtility.ClsPub.IPAddress + "','鏂板鍗曟嵁'", ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    LogService.Write("鐢ㄦ埛:" + msg4 + ",鏃ユ湡:" + DateTime.Now + ",淇敼宸ュ簭娴佽浆鍗″崟鎹�:" + oBill.omodel.HBillNo);
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+
+                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "淇敼宸ュ簭娴佽浆鍗″崟鎹細" + oBill.omodel.HBillNo + "','LMES-宸ュ簭娴佽浆鍗℃ā鍧�','" + DBUtility.ClsPub.IPAddress + "','淇敼鍗曟嵁'", ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                if (bResult)
+                {
+                    objJsonResult.code = "0";
                     objJsonResult.count = 1;
-                    //objJsonResult.Message = "鍗曟嵁瀛樼洏瀹屾瘯!鍗曟嵁鍙�:" + mainList[0].HBillNo.Trim();
-                    objJsonResult.Message = ClsPub.sExeReturnInfo+"鍗曟嵁鍙�:" + mainList[0].HBillNo.Trim();
-                    objJsonResult.data = null;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    //WebAPIController.Add_Log("閫佽揣鍗曚笅鎺�", UserName, "鐢熸垚閫佽揣鍗�");
+                    objJsonResult.data = 1;
                     return objJsonResult;
                 }
                 else
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = "淇濆瓨澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+
+        //public json AddBillMain(string msg1)
+        //{
+        //    string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+        //    string msg2 = sArray[0].ToString();//琛ㄥご
+        //    string msg3 = sArray[1].ToString();//琛ㄤ綋
+        //    string user = sArray[2].ToString();//鐢ㄦ埛鍚�
+
+        //    //鍒ゆ柇鏄惁鏈夌紪杈戞潈闄�
+        //    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, user))
+        //    {
+        //        objJsonResult.code = "0";
+        //        objJsonResult.count = 0;
+        //        objJsonResult.Message = "鏃犵紪杈戞潈闄�!";
+        //        objJsonResult.data = null;
+        //        return objJsonResult;
+        //    }
+
+        //    bool bResult;
+        //    try
+        //    {
+        //        msg2 = "[" + msg2.ToString() + "]";
+        //        List<Model.ClsSc_ProcessExchangeBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessExchangeBillMain>>(msg2);
+        //        DAL.ClsSc_ProcessExchangeBill BillNew = new DAL.ClsSc_ProcessExchangeBill();
+        //        //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
+        //        string s = "";
+        //        int sYear = 0;
+        //        int sPeriod = 0; 
+        //        DateTime HDate = mainList[0].HDate;//鏃ユ湡
+        //        if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = s;
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        BillNew.omodel.HPRDORGID= mainList[0].HPRDORGID;//缁勭粐
+        //        BillNew.omodel.HInterID = mainList[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+        //        BillNew.omodel.HYear = sYear;
+        //        BillNew.omodel.HPeriod = sPeriod;
+        //        BillNew.omodel.HBillNo = mainList[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
+        //        BillNew.omodel.HDate = HDate;
+        //        BillNew.omodel.HRemark = mainList[0].HRemark;//澶囨敞
+        //        BillNew.omodel.HMaker = mainList[0].HMaker;
+        //        BillNew.omodel.HWWOrderInterID = ClsPub.isLong(mainList[0].HWWOrderInterID);
+        //        BillNew.omodel.HWWOrderEntryID = ClsPub.isLong(mainList[0].HWWOrderEntryID);
+        //        BillNew.omodel.HWWOrderBillNo = ClsPub.isStrNull(mainList[0].HWWOrderBillNo);
+        //        BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
+        //        BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
+        //        BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
+        //        BillNew.omodel.HMaterID2 = ClsPub.isLong(mainList[0].HMaterID2);
+        //        BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
+        //        BillNew.omodel.HMaterNumber = ClsPub.isStrNull(mainList[0].HMaterNumber);
+        //        BillNew.omodel.HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo);
+        //        BillNew.omodel.HUnitID = ClsPub.isLong(mainList[0].HUnitID);
+        //        BillNew.omodel.HUnitNumber = ClsPub.isStrNull(mainList[0].HUnitNumber);
+        //        BillNew.omodel.HPlanQty = ClsPub.isDoule(mainList[0].HPlanQty);
+        //        BillNew.omodel.HQty = ClsPub.isDoule(mainList[0].HQty);
+        //        BillNew.omodel.HPlanBeginDate = ClsPub.isDate(mainList[0].HPlanBeginDate);
+        //        BillNew.omodel.HPlanEndDate = ClsPub.isDate(mainList[0].HPlanEndDate);
+        //        BillNew.omodel.HExplanation = ClsPub.isStrNull(mainList[0].HExplanation);
+        //        BillNew.omodel.HInnerBillNo = ClsPub.isStrNull(mainList[0].HInnerBillNo);
+        //        BillNew.omodel.HWorkShopID = ClsPub.isLong(mainList[0].HWorkShopID);
+        //        BillNew.omodel.HSupID = ClsPub.isLong(mainList[0].HSupID);
+        //        BillNew.omodel.HBLFlag = mainList[0].HBLFlag;
+        //        BillNew.omodel.HMainMaterID = ClsPub.isLong(mainList[0].HMainMaterID);
+        //        BillNew.omodel.HKeyMaterID = ClsPub.isLong(mainList[0].HKeyMaterID);
+        //        BillNew.omodel.HOrderProcNO = ClsPub.isStrNull(mainList[0].HOrderProcNO);
+        //        BillNew.omodel.HEquipMentID = ClsPub.isLong(mainList[0].HEquipMentID);
+        //        BillNew.omodel.HMateOutBatchNo = ClsPub.isStrNull(mainList[0].HMateOutBatchNo);
+        //        BillNew.omodel.HProjectNum = ClsPub.isStrNull(mainList[0].HProjectNum);
+        //        BillNew.omodel.HProdMaterCode = ClsPub.isStrNull(mainList[0].HProdMaterCode);
+        //        BillNew.omodel.HSeOrderBillNo = ClsPub.isStrNull(mainList[0].HSeOrderBillNo);
+        //        BillNew.omodel.HCusShortName = ClsPub.isStrNull(mainList[0].HCusShortName);
+        //        BillNew.omodel.HCusNeedMaterial = ClsPub.isStrNull(mainList[0].HCusNeedMaterial);
+        //        BillNew.omodel.HPlanSendGoodsDate = ClsPub.isStrNull(mainList[0].HPlanSendGoodsDate);
+        //        BillNew.omodel.HProdMaterName = ClsPub.isStrNull(mainList[0].HProdMaterName);
+        //        BillNew.omodel.HCusName = ClsPub.isStrNull(mainList[0].HCusName);
+        //        BillNew.omodel.HWorkRemark = ClsPub.isStrNull(mainList[0].HWorkRemark);
+        //        BillNew.omodel.HImportNote = ClsPub.isStrNull(mainList[0].HImportNote);
+        //        BillNew.omodel.HMaterNumber_A = ClsPub.isStrNull(mainList[0].HMaterNumber_A);
+        //        BillNew.omodel.HMaterNumber_B = ClsPub.isStrNull(mainList[0].HMaterNumber_B);
+        //        BillNew.omodel.HMaterNumber_C = ClsPub.isStrNull(mainList[0].HMaterNumber_C);
+        //        BillNew.omodel.HMaterNumber_D = ClsPub.isStrNull(mainList[0].HMaterNumber_D);
+        //        BillNew.omodel.HProdType = ClsPub.isStrNull(mainList[0].HProdType);
+        //        BillNew.omodel.HMaterShortName = ClsPub.isStrNull(mainList[0].HMaterShortName);
+        //        BillNew.omodel.HMaterIDA = ClsPub.isStrNull(mainList[0].HMaterIDA);
+        //        BillNew.omodel.HMaterIDB = ClsPub.isStrNull(mainList[0].HMaterIDB);
+        //        BillNew.omodel.HMaterIDC = ClsPub.isStrNull(mainList[0].HMaterIDC);
+        //        BillNew.omodel.HMaterIDD = ClsPub.isStrNull(mainList[0].HMaterIDD);
+        //        List<Model.ClsSc_ProcessExchangeBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessExchangeBillSub>>(msg3);
+        //        BillNew.DetailColl = new List<Model.ClsSc_ProcessExchangeBillSub>();
+        //        if (BillNew.omodel.HICMOInterID == 0)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "璇烽�夋嫨浠诲姟鍗曪紒";
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        for (int i = 0; i < subList.ToArray().Length; i++)
+        //        {
+        //            if (DBUtility.ClsPub.isInt(subList[i].HProcID) != 0)//HQty
+        //            {
+        //                Model.ClsSc_ProcessExchangeBillSub oSub = new Model.ClsSc_ProcessExchangeBillSub();
+        //                oSub.HEntryID = i+1;
+        //                oSub.HRemark = DBUtility.ClsPub.isStrNull(subList[i].HRemark);
+        //                oSub.HSourceInterID = ClsPub.isLong(mainList[0].HICMOInterID);
+        //                oSub.HSourceEntryID = ClsPub.isLong(mainList[0].HICMOEntryID);
+        //                oSub.HSourceBillType = "85";
+        //                oSub.HSourceBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
+        //                oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
+        //                //oSub.HRelationQty_In = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_In);
+        //                //oSub.HRelationQty_Out = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Out);
+        //                //oSub.HRelationQty_WWOrder = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_WWOrder);
+        //                //oSub.HRelationQty_Bad = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Bad);
+        //                oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
+        //                oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
+        //                oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate);
+        //                oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
+        //                oSub.HQty = DBUtility.ClsPub.isDoule(subList[i].HQty);
+        //                if (oSub.HQty <= 0)
+        //                {
+        //                    objJsonResult.code = "0";
+        //                    objJsonResult.count = 0;
+        //                    objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝娴佽浆鍗℃暟閲忎笉鑳戒负0鎴栬�呭皬浜�0";
+        //                    objJsonResult.data = null;
+        //                    return objJsonResult;
+        //                }
+        //                oSub.HProcNo = DBUtility.ClsPub.isLong(subList[i].HProcNo);
+        //                if (oSub.HProcNo <= 0)
+        //                {
+        //                    objJsonResult.code = "0";
+        //                    objJsonResult.count = 0;
+        //                    objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝娴佹按鍙蜂笉鑳戒负0鎴栬�呭皬浜�0";
+        //                    objJsonResult.data = null;
+        //                    return objJsonResult;
+        //                }
+        //                oSub.HProcID = DBUtility.ClsPub.isLong(subList[i].HProcID);
+        //                oSub.HProcNumber = DBUtility.ClsPub.isStrNull(subList[i].HProcNumber);
+        //                oSub.HWorkRemark = DBUtility.ClsPub.isStrNull(subList[i].HWorkRemark);
+        //                oSub.HCenterID = DBUtility.ClsPub.isLong(subList[i].HCenterID);
+        //                oSub.HDeptID = DBUtility.ClsPub.isLong(subList[i].HDeptID);
+        //                oSub.HDeptNumber = DBUtility.ClsPub.isStrNull(subList[i].HDeptNumber);
+        //                ////oSub.HGroupID = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HGroupIDCol].Value);
+        //                oSub.HGroupNumber = DBUtility.ClsPub.isStrNull(subList[i].HGroupNumber);
+        //                oSub.HWorkerID = DBUtility.ClsPub.isLong(subList[i].HWorkerID);
+        //                oSub.HWorkerNumber = DBUtility.ClsPub.isStrNull(subList[i].HWorkerNumber);
+        //                oSub.HSourceID = DBUtility.ClsPub.isLong(subList[i].HSourceID);
+        //                oSub.HTimeUnit = DBUtility.ClsPub.isStrNull(subList[i].HTimeUnit);
+        //                oSub.HPlanWorkTimes = DBUtility.ClsPub.isSingle(subList[i].HPlanWorkTimes);
+        //                oSub.HPlanBeginDate = DBUtility.ClsPub.isDate(subList[i].HPlanBeginDate);
+        //                oSub.HPlanEndDate = DBUtility.ClsPub.isDate(subList[i].HPlanEndDate);
+        //                oSub.HRelBeginDate = DBUtility.ClsPub.isDate(subList[i].HRelBeginDate);
+        //                oSub.HRelEndDate = DBUtility.ClsPub.isDate(subList[i].HRelEndDate);
+        //                oSub.HReadyTime = 0;
+        //                oSub.HQueueTime = 0;
+        //                oSub.HMoveTime = 0;
+        //                oSub.HBeginDayQty = DBUtility.ClsPub.isSingle(subList[i].HBeginDayQty);
+        //                oSub.HBeginFixQty = DBUtility.ClsPub.isSingle(subList[i].HBeginFixQty);
+        //                oSub.HFixWorkDays = DBUtility.ClsPub.isSingle(subList[i].HFixWorkDays);
+        //                oSub.HTrunWorkDays = DBUtility.ClsPub.isSingle(subList[i].HTrunWorkDays);
+        //                oSub.HReadyTimes = DBUtility.ClsPub.isSingle(subList[i].HReadyTimes);
+        //                oSub.HMyWorkDays = DBUtility.ClsPub.isSingle(subList[i].HMyWorkDays);
+        //                oSub.HOutPrice = DBUtility.ClsPub.isSingle(subList[i].HOutPrice);
+        //                oSub.HOutMoney = DBUtility.ClsPub.isSingle(subList[i].HOutMoney);
+        //                oSub.HLastProc = "鍚�";
+        //                oSub.HFstProc = "鍚�";
+        //                oSub.HKeyProc = DBUtility.ClsPub.isStrNull(subList[i].HKeyProc);
+        //                oSub.HSupID = DBUtility.ClsPub.isLong(subList[i].HSupID);
+        //                oSub.HSupFlag = DBUtility.ClsPub.isBool(subList[i].isEntrust);
+        //                oSub.HBackProc = DBUtility.ClsPub.isBool(subList[i].HBackProc);
+        //                oSub.HEdit = DBUtility.ClsPub.isBool(subList[i].HEdit);
+        //                if (oSub.HCenterID == 0 && oSub.HSupFlag == false)
+        //                {
+        //                    objJsonResult.code = "0";
+        //                    objJsonResult.count = 0;
+        //                    objJsonResult.Message = "绗�" + ClsPub.isStrNull(i + 1) + "琛岋紝宸ヤ綔涓績鎴栧澶栨爣璁颁笉鑳藉悓鏃朵负绌�";
+        //                    objJsonResult.data = null;
+        //                    return objJsonResult;
+        //                }
+        //                oSub.HICMOBillNo = DBUtility.ClsPub.isStrNull(subList[i].HICMOBillNo);
+        //                oSub.HICMOInterID = DBUtility.ClsPub.isLong(subList[i].HICMOInterID);
+        //                oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(subList[i].HSeOrderInterID);
+        //                oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HSeOrderEntryID);
+        //                oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HSeOrderBillNo);
+        //                oSub.HWWOrderInterID = DBUtility.ClsPub.isLong(subList[i].HWWOrderInterID);
+        //                oSub.HWWOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HWWOrderEntryID);
+        //                oSub.HWWOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HWWOrderBillNo);
+        //                oSub.HSumPassRate = DBUtility.ClsPub.isSingle(subList[i].HSumPassRate);
+        //                oSub.HPassRate = DBUtility.ClsPub.isSingle(subList[i].HPassRate);
+        //                oSub.HOverRate = DBUtility.ClsPub.isDoule(subList[i].HOverRate);
+        //                oSub.HMaxQty = DBUtility.ClsPub.isDoule(subList[i].HMaxQty);
+        //                oSub.HTechnologyParameter = DBUtility.ClsPub.isStrNull(subList[i].HTechnologyParameter);
+        //                oSub.HPicNum = DBUtility.ClsPub.isStrNull(subList[i].HPicNum);
+        //                oSub.HProcCheckNote = DBUtility.ClsPub.isStrNull(subList[i].HProcCheckNote);
+        //                oSub.HMouldNo = "";
+        //                oSub.HProcWorkNum = "";
+        //                BillNew.DetailColl.Add(oSub);
+        //            }
+        //        }
+        //        //淇濆瓨瀹屾瘯鍚庡鐞�
+        //        //if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew)
+        //        //{
+        //        //    bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
+        //        //}
+        //        //else
+        //        //{
+        //        //    bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
+        //        //}
+        //        bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
+        //        //鎻愮ず
+        //        if (bResult == true)
+        //        {
+        //            objJsonResult.code = "1";
+        //            objJsonResult.count = 1;
+        //            //objJsonResult.Message = "鍗曟嵁瀛樼洏瀹屾瘯!鍗曟嵁鍙�:" + mainList[0].HBillNo.Trim();
+        //            objJsonResult.Message = ClsPub.sExeReturnInfo+"鍗曟嵁鍙�:" + mainList[0].HBillNo.Trim();
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        else
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "淇濆瓨澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+        //            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[鏂板鍗曟嵁-淇濆瓨鎸夐挳-鎵归噺澶嶅埗]
+        /// <summary>
+        /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Sc_ProcessExchangeBill/AddBill_Copy_pl")]
+        [HttpPost]
+        public object AddBill_Copy_pl([FromBody] JObject sMainSub)
+        {
+            var _value = sMainSub["sMainSub"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            int msg2 = int.Parse(sArray[0].ToString());
+            string msg3 = sArray[1].ToString();
+            string msg4 = sArray[2].ToString();
+            string msg5 = sArray[3].ToString();
+            string HComputerName = SystemInformation.ComputerName; //璁惧鍚嶇О    
+
+            string UserName = "";
+            ListModels oListModels = new ListModels();
+            string sReturn = "";
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg4))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄愶紒";
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+
+                DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
+                DBUtility.ClsPub.HOrgID = long.Parse(msg5);
+                DBUtility.ClsPub.CurUserName = msg4;
+                oBill.ShowBill(long.Parse(msg3), ref sReturn);
+
+                ds = oCN.RunProcReturn("select isnull(sum(HQty),0) from Sc_ProcessExchangeBillMain where HICMOBillNo='" + oBill.omodel.HICMOBillNo + "' and HInterID <>"+ oBill.omodel.HInterID, "Sc_ProcessExchangeBillMain");
+                var HQty = double.Parse(ds.Tables[0].Rows[0][0].ToString());
+                int num = 0;
+                //鍗曟嵁鏁伴噺 * 寮犳暟 + 宸茬敓鎴愪笉鍖呮嫭鏈崟鎹殑鏁伴噺 >鐢熶骇璁㈠崟鏁伴噺
+                if ((oBill.omodel.HQty * msg2) + HQty > oBill.omodel.HPlanQty)
+                {
+                    if (((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) % oBill.omodel.HQty) == 0)
+                    {
+                        num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty);
+                    } else
+                    {
+                        num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty);
+                        num += 1;
+                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏈�澶氬彲浠ュ鍒�" + num + "寮狅紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (num == 0) {
+                    double HPlanQty = oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty;
+                    for (int i = 0; i < msg2; i++)
+                    {
+                        oBill.omodel.HBillNo = DBUtility.ClsPub.CreateBillCode("3772", ref DBUtility.ClsPub.sExeReturnInfo, true);
+                        oBill.omodel.HDate =DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
+                        oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                        oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                        oBill.omodel.HChecker = "";
+                        oBill.omodel.HCheckDate = "";
+                        oBill.omodel.HMaker = msg4;
+
+                        if (HPlanQty < oBill.omodel.HQty)
+                        {
+                            oBill.omodel.HQty = HPlanQty;
+                        }
+
+                        for (int j = 0; j < oBill.DetailColl.Count; j++)
+                        {
+                            oBill.DetailColl[j].HRelationQty_In = 0;
+                            oBill.DetailColl[j].HRelationQty_Out = 0;
+                            oBill.DetailColl[j].HRelationQty_Bad = 0;
+                        }
+
+                        //淇濆瓨瀹屾瘯鍚庡鐞�
+                        bool bResult;
+                        LogService.Write("鐢ㄦ埛:" + msg4 + ",鏃ユ湡:" + DateTime.Now + ",鏂板宸ュ簭娴佽浆鍗″崟鎹�:" + oBill.omodel.HBillNo);
+                        oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "鏂板宸ュ簭娴佽浆鍗″崟鎹細" + oBill.omodel.HBillNo + "','LMES-宸ュ簭娴佽浆鍗℃ā鍧�','" + DBUtility.ClsPub.IPAddress + "','鏂板鍗曟嵁'", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        bResult = oBill.AddBill(ref sReturn);
+                        if (bResult)
+                        {
+                            num++;
+                            HPlanQty -= oBill.omodel.HQty;
+                        }
+                    }
+                    
+                }
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "澶嶅埗浜�" + num + "寮犲崟鎹紒";
+                objJsonResult.data = 1;
+                return objJsonResult;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region[鎵归噺鏂板鍗曟嵁-淇濆瓨鎸夐挳]
+        /// <summary>
+        /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Sc_ProcessExchangeBill/AddBill_pl")]
+        [HttpPost]
+        public object AddBill_pl([FromBody] JObject sMainSub)
+        {
+            var _value = sMainSub["sMainSub"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();//涓昏〃
+            string msg3 = sArray[1].ToString();//鍗曟嵁鍙峰強鏁伴噺
+            string msg4 = sArray[2].ToString();//宸ヨ壓璺嚎
+            string msg5 = sArray[3].ToString();//绫诲瀷
+            string msg6 = sArray[4].ToString();//鐢ㄦ埛
+            string HComputerName = SystemInformation.ComputerName; //璁惧鍚嶇О    
+
+            ListModels oListModels = new ListModels();
+
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg6))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //鍗曟嵁鍙� 鍙婃暟閲�
+                DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
+                List<Model.ClsSc_ProcessExchangeBillMain> ListHbillNo = new List<Model.ClsSc_ProcessExchangeBillMain>();
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                ListHbillNo = JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessExchangeBillMain>>(msg3);
+
+                //涓昏〃淇℃伅
+                Model.ClsSc_ProcessExchangeBillMain Main = new Model.ClsSc_ProcessExchangeBillMain();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                Main = JsonConvert.DeserializeObject<Model.ClsSc_ProcessExchangeBillMain>(msg2);
+
+                DBUtility.ClsPub.CurUserName = msg6;
+                Main.HMaker = msg6;  //鍒跺崟浜�
+                Main.HBillType = "3772";
+                Main.HBillSubType = "3772";
+                Main.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                Main.HMaterID = Main.HMaterID2;
+                if (DBUtility.ClsPub.isStrNull(Main.HDate) == "")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg4 = msg4.Substring(1, msg4.Length - 2);
+                msg4 = msg4.Replace("\\", "");
+                msg4 = msg4.Replace("\n", "");  //\n
+                List<Model.ClsSc_ProcessExchangeBillSub> ls = new List<Model.ClsSc_ProcessExchangeBillSub>();
+                ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg4);
+
+                //寰幆鏂板鍗曟嵁
+                for (int i = 0; i < ListHbillNo.Count; i++)
+                {
+                    Main.HBillNo = ListHbillNo[i].HBillNo;
+                    Main.HQty = ListHbillNo[i].HQty;
+                    Main.HSplitNo = ListHbillNo[i].HSplitNo;
+                    Main.HAuxQty = 0;
+                    Main.HAuxUnit = 0;
+                    oBill.omodel = Main;
+
+                    int j = 0;
+                    foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in ls)
+                    {
+                        j++;
+                        oItemSub.HEntryID = j;
+                        oItemSub.HQty = Main.HQty;
+                        oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                        oBill.DetailColl.Add(oItemSub);
+                    }
+                    //淇濆瓨
+                    //淇濆瓨瀹屾瘯鍚庡鐞�
+                    bool bResult=false;
+                    if (msg5 == "2")
+                    {
+                        LogService.Write("鐢ㄦ埛:" + msg6 + ",鏃ユ湡:" + DateTime.Now + ",鏂板宸ュ簭娴佽浆鍗″崟鎹�:" + oBill.omodel.HBillNo);
+                        oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg6 + "','" + HComputerName + "','" + "鏂板宸ュ簭娴佽浆鍗″崟鎹細" + oBill.omodel.HBillNo + "','LMES-宸ュ簭娴佽浆鍗℃ā鍧�','" + DBUtility.ClsPub.IPAddress + "','鏂板鍗曟嵁'", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    }
+                    oBill.DetailColl.Clear();
+                    if (!bResult)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+        #region 宸ュ簭娴佽浆鍗″垪琛ㄦ樉绀哄櫒鍏锋竻鍗曚俊鎭�
+        [Route("Sc_ProcessExchangeBillList/QJQD")]
+        [HttpGet]
+        public object QJQD(Int64 HProcExchHinteID)
+        {
+            try
+            {
+
+                //寰楀埌淇℃伅
+                ds = oCN.RunProcReturn("select  * from h_v_Sc_ProcessExchangeBillQuerySub_Mould  where hmainid= " + HProcExchHinteID , "h_v_Sc_ProcessExchangeBillQuerySub_Mould");
+                //鍐欏叆淇℃伅
+                //if (ds == null || ds.Tables[0].Rows.Count == 0)
+                //{
+                //    objJsonResult.code = "0";
+                //    objJsonResult.count = 0;
+                //    objJsonResult.Message = "鏈煡璇㈠埌鍑虹珯鍗曟槑缁嗕俊鎭紒";
+                //    objJsonResult.data = null;
+                //    return objJsonResult;
+                //}
+
+                List<object> listCol = new List<object>();
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string str = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    listCol.Add(JsonConvert.DeserializeObject(str));
+                }
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = listCol;
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -249,15 +686,17 @@
                 return objJsonResult;
             }
         }
+        #endregion
 
+        #region[杩斿洖鐢熶骇浠诲姟鍗曟槑缁嗚]
         /// <summary>
         /// 杩斿洖鐢熶骇浠诲姟鍗曟槑缁嗚
         /// </summary>
         /// <param name="hmainid">鐢熶骇浠诲姟鍗旾D</param>
         /// <returns>object</returns>
-        [Route("Sc_ProcessExchangeBill/GetICMOBillDetail")]
+        [Route("Sc_ProcessExchangeBill/GetICMOBillList")]
         [HttpGet]
-        public object GetICMOBillDetail(int hmainid,int OrganizationID)
+        public object GetICMOBillList(int hmainid,int HEntryID, int OrganizationID)
         {
             try
             {
@@ -269,7 +708,7 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-                ds = oCN.RunProcReturn("select * from h_v_Sc_ICMOBillListDetail where hmainid=" + hmainid + " and HSTOCKINORGID="+ OrganizationID, "h_v_Sc_ICMOBillListDetail");
+                ds = oCN.RunProcReturn("select * from h_v_Sc_ICMOBillListDetail where hmainid=" + hmainid + " and HEntryID=" + HEntryID, "h_v_S_Sc_ICMOBillList");
                 if (ds == null || ds.Tables[0].Rows.Count == 0)
                 {
                     objJsonResult.code = "0";
@@ -296,8 +735,991 @@
                 return objJsonResult;
             }
         }
+        #endregion
+
+        #region[杩斿洖鐢熶骇浠诲姟鍗曟槑缁嗚]
+        /// <summary>
+        /// 杩斿洖鐢熶骇浠诲姟鍗曟槑缁嗚
+        /// </summary>
+        /// <param name="hmainid">鐢熶骇浠诲姟鍗旾D</param>
+        /// <returns>object</returns>
+        [Route("Sc_ProcessExchangeBill/GetICMOBillDetail")]
+        [HttpGet]
+        public object GetICMOBillDetail(int hmainid,int HEntryID, int OrganizationID)
+        {
+            try
+            {
+                if (hmainid == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鐢熶骇浠诲姟鍗旾D涓�0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                ds = oCN.RunProcReturn("select * from h_v_S_Sc_ICMOBillList where hmainid=" + hmainid + " and HEntryID=" + HEntryID+ " and HSTOCKINORGID='"+ OrganizationID+"'", "h_v_S_Sc_ICMOBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ょ敓浜т换鍔″崟鏃犳槑缁嗚锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    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;
+            }
+        }
+        #endregion
+
+        #region[缂栬緫鏃惰幏鍙栬〃澶存暟鎹甝
+        /// <summary>
+        /// 缂栬緫鑾峰彇琛ㄥご淇℃伅
+        /// </summary>
+        /// <param name="HInterID">涓籌D</param>
+        /// <returns></returns>
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain")]
+        [HttpGet]
+        public ApiResult<DataSet> GetProcessExchangeBillMain(string HInterID)
+        {
+            if (string.IsNullOrEmpty(HInterID))
+                return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
+            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillQuery  where hmainid= " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery");
+            if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
+                return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄥ伐搴忔祦杞崱" };
+            return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet };
+        }
+        #endregion
+
+        #region[缂栬緫鏃惰幏鍙栬〃浣撴暟鎹甝
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub")]
+        [HttpGet]
+        public object GetProcessExchangeBillSub(string HInterID)
+        {
+            DataSet ds;
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                string sql = string.Format(@"select 娴佹按鍙� HProcNo,HProcID,宸ュ簭浠g爜 HProcNumber,宸ュ簭鍚嶇О HProcName,鍔犲伐璇存槑 HWorkRemark,HCenterID,宸ヤ綔涓績浠g爜 HCenterNumber,
+                                                宸ヤ綔涓績 HCenterName,HSupID,渚涘簲鍟嗕唬鐮� HSupNumber,渚涘簲鍟� HSupName,isEntrust HSupFlag,璁″垝鏁伴噺 HQty,鍔犲伐鍗曚环 HOutPrice, 琛ㄤ綋澶囨敞 HRemark,
+                                            杩涚珯鍏宠仈鏁伴噺 HRelationQty_In,鍑虹珯鍏宠仈鏁伴噺 HRelationQty_Out,濮斿宸ュ崟鏁伴噺 HRelationQty_WWOrder,涓嶅悎鏍兼暟閲� HRelationQty_Bad,瓒呴姣斾緥 HOverRate,
+                                            鑹巼 HPassRate,绱鑹巼 HSumPassRate,鍥剧焊缂栧彿 HPicNum,鏈伐搴忕‘璁よ褰� HProcCheckNote,宸ヨ壓鍙傛暟 HTechnologyParameter,HDeptID,
+                                            鍔犲伐杞﹂棿浠g爜 HDeptNumber,鍔犲伐杞﹂棿 HDeptName,鍑虹珯鎶ュ簾鍏宠仈鏁伴噺 HRelationQty_OutBad
+                                            from h_v_Sc_ProcessExchangeBillQuerySub");
+                ds = oCN.RunProcReturn(sql+ " where hmainid="+ HInterID + "  order by cast(娴佹按鍙� as int) ", "h_v_Sc_ProcessExchangeBillQuerySub");
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�";
+                objJsonResult.data = ds.Tables[0];
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+                objJsonResult.data = null;
+            }
+            return objJsonResult;
+        }
+        #endregion
+
+        #region [妯″叿淇濆吇璁″垝鍗曞垹闄ゅ姛鑳絔
+        /// <summary>
+        /// 妯″叿缁翠慨鍗曞垹闄ゅ姛鑳�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Sc_ProcessExchangeBill/DeltetProcessExchangeBillByID")]
+        [HttpGet]
+        public object DeltetProcessExchangeBillByID(string HInterID, int HPRDORGID, string user, string HSouceBillType)
+        {
+
+            if (HSouceBillType == "SUB")
+            {
+                //缂栬緫鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Drop", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎸囧紩鍗℃棤鍒犻櫎鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+            else {
+                //缂栬緫鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Drop", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "娴佽浆鍗℃棤鍒犻櫎鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+          
+
+            string HComputerName = SystemInformation.ComputerName; //璁惧鍚嶇О    
+
+            DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
+
+            string[] HBillNo = HInterID.Split(',');
+
+            string HBillNo_S = "";
+
+            foreach (var item in HBillNo)
+            {
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(item);
+
+                DBUtility.ClsPub.HOrgID = HPRDORGID;
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
+                {
+                    if (lngBillKey == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鍙�:"+ oBill .omodel.HBillNo+ "鍗曟嵁ID涓虹┖锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    //鍒犻櫎鍓嶅垽鏂叧鑱旀暟閲�
+                    SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                    DataSet ds;
+                    ds = oCn.RunProcReturn("select ct from (  " +
+                                  "  select 1 ct from Sc_StationInBillMain Where HProcExchInterID=" + lngBillKey + " " +
+                                  "  union all " +
+                                  "  select 1 from Sc_StationOutBillMain Where HProcExchInterID=" + lngBillKey + " ) as a  ", "Sc_ProcExchReportSub");
+                    if (ds.Tables[0].Rows.Count != 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鍙�:" + oBill.omodel.HBillNo + "娴佽浆鍗″凡缁忔湁涓嬫父杩涘嚭绔欏崟鍚庯紝涓嶅厑璁稿垹闄わ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    string sReturn = "";
+                    if (oSystemParameter.ShowBill(ref sReturn))
+                    {
+                        if (oSystemParameter.omodel.Sc_ProcessExchangeBill_DeleterAndMakerMustSame == "Y")
+                        {
+                            if (oBill.omodel.HMaker != user && (user != "admin" && user != "Admin"))
+                            {
+                                objJsonResult.code = "0";
+                                objJsonResult.count = 0;
+                                objJsonResult.Message = "鍗曟嵁鍙�:" + oBill.omodel.HBillNo + "鍙兘鍒犻櫎鏈汉鐨勫崟鎹紒";
+                                objJsonResult.data = null;
+                                return objJsonResult;
+                            }
+                        }
+                    }
 
 
-        //
+                    if (oBill.omodel.HBillStatus > 1)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鍙�:" + oBill.omodel.HBillNo + "鍗曟嵁褰撳墠澶勪簬涓嶈兘鍒犻櫎鐘舵��,涓嶈兘鍒犻櫎锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (oBill.omodel.HChecker != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鍙�:" + oBill.omodel.HBillNo + "鍗曟嵁宸茬粡瀹℃牳,涓嶈兘鍒犻櫎锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    HBillNo_S += oBill.omodel.HBillNo + ",";
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁鏈壘鍒�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+
+            HBillNo_S = HBillNo_S.Substring(0, HBillNo_S.Length - 1);
+            LogService.Write("鐢ㄦ埛:" + user + ",鏃ユ湡:" + DateTime.Now + ",鍒犻櫎宸ュ簭娴佽浆鍗″崟鎹�:" + HBillNo_S);
+
+            oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "鍒犻櫎宸ュ簭娴佽浆鍗″崟鎹細" + HBillNo_S + "','LMES-宸ュ簭娴佽浆鍗℃ā鍧�','" + DBUtility.ClsPub.IPAddress + "','鍒犻櫎鍗曟嵁'", ref DBUtility.ClsPub.sExeReturnInfo);
+
+            foreach (var item in HBillNo)
+            {
+                oCN.BeginTran();
+                if (HSouceBillType == "SUB") {
+                    ds = oCN.RunProcReturn("select  * from Sc_ProcessExchangeBillMain where HInterID=" + item, "Sc_ProcessExchangeBillMain");
+
+                    if (ds.Tables[0].Rows.Count == 0) {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏃犳祦杞崱鏁版嵁!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=0 where HInterID=" + ds.Tables[0].Rows[0]["HMainSourceInterID"].ToString() + " and HEntryID=" + ds.Tables[0].Rows[0]["HMainSourceEntryID"].ToString());
+                }
+
+                bool IsDete = oBill.DeleteBill(long.Parse(item), ref DBUtility.ClsPub.sExeReturnInfo);
+
+                if (!IsDete)
+                {
+                    oCN.RollBack();
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                oCN.Commit();
+            }
+
+            if (oSystemParameter.omodel.WMS_CampanyName == "鐟炰笌绁�")
+            {
+                ds = oCN.RunProcReturn("select  * from Sc_ProcessExchangeBillMain where HICMOInterID='" + oBill.omodel.HICMOInterID + "' and HICMOEntryID='" + oBill.omodel.HICMOEntryID + "'", "Sc_ProcessExchangeBillMain");
+
+                if (ds.Tables[0].Rows.Count == 0)
+                {
+                    oCN.RunProc("update AIS20220308151944..T_PRD_MOENTRY  set F_BSV_TEXT2 = '鍚�' where  FID='" + oBill.omodel.HICMOInterID + "' and FENTRYID='" + oBill.omodel.HICMOEntryID + "'");
+                }
+            }
+
+            objJsonResult.code = "0";
+            objJsonResult.count = 1;
+            objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
+            objJsonResult.data = null;
+            return objJsonResult;
+        }
+        #endregion
+
+        #region[缂栬緫鏃惰幏鍙栬〃浣撴暟鎹�(宸ヨ壓鍙傛暟)]
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSubTech")]
+        [HttpGet]
+        public object GetProcessExchangeBillSubTech(string HInterID)
+        {
+            DataSet ds;
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                string sql = string.Format(@"exec h_p_Sc_GetProcessExchangeBillSubTech ");
+                ds = oCN.RunProcReturn(sql +  HInterID, "h_p_Sc_GetProcessExchangeBillSubTech");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.list = columnNameList;
+                objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鎷嗗垎 缂栬緫鑾峰彇娴佽浆鍗℃暟鎹�
+        /// <summary>
+        /// 缂栬緫鑾峰彇琛ㄥご淇℃伅
+        /// </summary>
+        /// <param name="HInterID">涓籌D</param>
+        /// <returns></returns>
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain_cf")]
+        [HttpGet]
+        public object GetProcessExchangeBillMain_cf(string HInterID)
+        {
+            DataSet ds;
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillQuery  where hmainid= " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery");
+
+                DataSet Ds  = oCN.RunProcReturn("select  top 1 HNo  from Sc_ProcessExchangeBillmain where HBillNo like '%" + ds.Tables[0].Rows[0]["鍗曟嵁鍙�"].ToString() + "-%'   order by LEN(HBillno) , HbillNo desc ", "Sc_ProcessExchangeBillmain");
+
+                char c = '1';
+                string sNo = "01";
+                int sCount = 0;
+
+                if (Ds == null || Ds.Tables[0].Rows.Count == 0)
+                {
+                }
+                else
+                {
+                    sCount = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HNo"]);
+                    if (sCount >= 1)
+                    {
+                        sNo = Convert.ToChar(sCount + (int)c).ToString();
+                        sNo = "00" + sNo;
+                        sNo = sNo.Substring(sNo.Length - 2, 2);
+                    }
+                }
+
+                string sBillNo = ds.Tables[0].Rows[0]["鍗曟嵁鍙�"].ToString();
+                sBillNo = sBillNo.Replace("WORKX", "");
+                sBillNo = sBillNo.Replace("WORK", "");
+                sBillNo = sBillNo.Replace("_", "-");
+                sBillNo = sBillNo + "-" + sNo;
+                ds.Tables[0].Rows[0]["鍗曟嵁鍙�"] = sBillNo;
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�";
+                objJsonResult.data = ds.Tables[0];
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+                objJsonResult.data = null;
+            }
+            return objJsonResult;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇琛ㄤ綋鏁版嵁淇℃伅
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <returns></returns>
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub_cf")]
+        [HttpGet]
+        public object GetProcessExchangeBillSub_cf(string HInterID)
+        {
+            DataSet ds;
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
+                var ds1= oCN.RunProcReturn("select isnull(max(娴佹按鍙�),0) from h_v_Sc_ProcessExchangeBillQuerySub where hmainid=" + HInterID + " and 鍑虹珯鍏宠仈鏁伴噺>0 ", "h_v_Sc_ProcessExchangeBillQuerySub");
+
+                string sql = string.Format(@"select * from h_v_Sc_ProcessExchangeBillQuerySub");
+
+                ds = oCN.RunProcReturn(sql + " where hmainid=" + HInterID + " and 鍑虹珯鍏宠仈鏁伴噺=0  and  cast(娴佹按鍙� as int)>" + ds1 .Tables[0].Rows[0][0].ToString(), "h_v_Sc_ProcessExchangeBillQuerySub");
+
+                if (float.Parse(ds.Tables[0].Rows[0]["杩涚珯鍏宠仈鏁伴噺"].ToString()) > 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "褰撳墠鍗曟嵁:"+ ds.Tables[0].Rows[0]["宸ュ簭鍚嶇О"].ToString() + "鏈嚭绔欎笉鑳芥媶鍒�!";
+                    objJsonResult.data = ds.Tables[0];
+                }
+                else {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鑾峰彇淇℃伅鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+                objJsonResult.data = null;
+            }
+            return objJsonResult;
+        }
+
+        /// <summary>
+        /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Sc_ProcessExchangeBill/AddBill_cf")]
+        [HttpPost]
+        public object AddBill_cf([FromBody] JObject sMainSub)
+        {
+            var _value = sMainSub["sMainSub"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string msg3 = sArray[1].ToString();
+            string msg4 = sArray[2].ToString();
+            string msg5 = sArray[3].ToString();
+            string linterid = sArray[4].ToString();
+
+            string UserName = "";
+            ListModels oListModels = new ListModels();
+
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_CF", 1, false, msg5))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳媶鍒嗘潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
+                List<Model.ClsSc_ProcessExchangeBillMain> lsmain = new List<Model.ClsSc_ProcessExchangeBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_Sc_ProcessExchangeBillMain(msg2);
+                string sReturn = "";
+                DBUtility.ClsPub.HOrgID = lsmain[0].HPRDORGID;
+                oBill.ShowBill(long.Parse(linterid), ref sReturn);
+                foreach (Model.ClsSc_ProcessExchangeBillMain oItem in lsmain)
+                {
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+
+                    oBill.omodel.HMaker = msg5;  //鍒跺崟浜�
+                    oBill.omodel.HNo = DBUtility.ClsPub.isLong(oItem.HBillNo.Split('-')[1]);
+                    oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                    oBill.omodel.HDate = oItem.HDate;// 鏃ユ湡
+                    oBill.omodel.HPlanBeginDate = oItem.HPlanBeginDate;// 璁″垝寮�宸ユ棩鏈�
+                    oBill.omodel.HPlanEndDate = oItem.HPlanEndDate;// 璁″垝瀹屽伐鏃ユ湡
+                    oBill.omodel.HQty = oItem.HQty;// 鏁伴噺
+                    oBill.omodel.HBillNo = oItem.HBillNo;// 鍗曟嵁鍙�
+                }
+
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsSc_ProcessExchangeBillSub> ls = new List<Model.ClsSc_ProcessExchangeBillSub>();
+                ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg3);
+              
+                string HEntryID = "";
+
+                for (int i = 0; i < oBill.DetailColl.Count; i++)
+                {
+                    if (oBill.DetailColl[i].HRelationQty_Out > 0 || oBill.DetailColl[i].HRelationQty_In > 0)
+                    {
+                        HEntryID += i + ",";
+                    }
+                }
+                if (HEntryID != "")
+                {
+                    HEntryID = HEntryID.Substring(0, HEntryID.Length - 1);
+                    var num = HEntryID.Split(',');
+
+                    for (int k = 0; k < num.Length; k++)
+                    {
+                        oBill.DetailColl.RemoveAt(int.Parse(num[k]) - k);
+                    }
+                }
+
+                int j = 0 ;
+                foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in oBill.DetailColl)
+                {
+                    if (ls[j].HSplitQty > ls[j].HLeftQty)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "绗�" + (j + 1) + "琛岋紝鎷嗗垎鏁伴噺涓嶈兘澶т簬鍙媶鍒嗘暟閲忥紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (oBill.DetailColl[j].HProcNo == ls[j].HProcNo)
+                    {
+                        oBill.DetailColl[j].HEntryID = j+1;
+                        oBill.DetailColl[j].HQty = ls[j].HQty;
+                        oBill.DetailColl[j].HBackProc = ls[j].HBackProc;
+                        oBill.DetailColl[j].HPrevSourceInterID = ls[j].HPrevSourceInterID;
+                        oBill.DetailColl[j].HPrevSourceEntryID = ls[j].HPrevSourceEntryID;
+                        oBill.DetailColl[j].HRemark = ls[j].HRemark;
+                        oBill.DetailColl[j].HTechnologyParameter = ls[j].HTechnologyParameter;
+                        j++;
+                    }
+                }
+
+
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult = false;
+                if (msg4 == "1")
+                {
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                //else
+                //{
+                //    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                //}
+               
+                oCN.BeginTran();
+
+                oCN.RunProc("update Sc_ProcessExchangeBillSub set HQty=(select HQty from Sc_ProcessExchangeBillMain where HInterID="+ oBill.DetailColl[0].HPrevSourceInterID + ") where HInterID=" + oBill.DetailColl[0].HPrevSourceInterID );
+
+                oCN.Commit();
+
+                if (bResult)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+
+        #region 宸ュ簭娴佽浆鍗″鏍�/鍙嶅鏍稿姛鑳�
+        [Route("Sc_ProcessExchangeBill/CheckSc_ProcessExchangeBill")]
+        [HttpGet]
+        public object CheckSc_ProcessExchangeBill(string HInterID, int Type, string user,string HBillSubType)
+        {
+            try
+            {
+                if (HBillSubType == "SUB")
+                {
+                    //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Check", 1, false, user))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎸囧紩鍗℃棤鏉冮檺瀹℃牳!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                else {
+                    //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Check", 1, false, user))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "娴佽浆鍗℃棤鏉冮檺瀹℃牳!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+               
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "Sc_ProcessExchangeBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶉渶瑕佸啀瀹℃牳!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    //瀹℃牳鍓嶆帶鍒�
+                    string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    sql = "exec h_p_Sc_ProcessExchangeBill_BeforeCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchangeBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+
+                    //瀹℃牳鍗曟嵁
+                    if (!BillOld.CheckBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcessExchangeBill_AfterCheckCtrl", user, ref ClsPub.sExeReturnInfo))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插弽瀹℃牳!涓嶉渶瑕佸啀鍙嶅鏍�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+
+                    //鍙嶅鏍稿墠鎺у埗
+                    string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    sql = "exec h_p_Sc_ProcessExchangeBill_BeforeUnCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchangeBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    //鍙嶅鏍稿崟鎹�
+                    if (BillOld.AbandonCheck(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcessExchangeBill_AfterUnCheckCtrl", user, ref ClsPub.sExeReturnInfo))
+                    {
+                        //SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                        //DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl");
+                        ////if (DBUtility.ClsPub.isInt(DSet.Tables[0].Rows[0]["Hback"]) != 0)
+                        ////{
+                        ////    objJsonResult.code = "0";
+                        ////    objJsonResult.count = 1;
+                        ////    objJsonResult.Message = "璇ヤ换鍔″崟宸蹭笅鎺ㄦ祦杞崱锛屼笉鍏佽鍙嶅鏍�" + DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[0]["HBackRemark"]);
+                        ////    objJsonResult.data = null;
+                        ////    return objJsonResult;
+                        ////}
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ュ簭娴佽浆鍗″叧闂�/鍙嶅叧闂姛鑳�
+        [Route("Sc_ProcessExchangeBill/CloseSc_ProcessExchangeBill")]
+        [HttpGet]
+        public object CloseSc_ProcessExchangeBill(string HInterID, int Type, string user,string HBillSubType)
+        {
+            try
+            {
+                if (HBillSubType == "SUB")
+                {
+                    //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Close", 1, false, user))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎸囧紩鍗℃棤鏉冮檺鍏抽棴!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                    if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Close", 1, false, user))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "娴佽浆鍗℃棤鏉冮檺鍏抽棴!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+              
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "Sc_ProcessExchangeBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 1 鍏抽棴  2  鍙嶅叧闂�
+                if (Type == 1)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶉渶瑕佸啀鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    //鍏抽棴鍗曟嵁
+                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插弽鍏抽棴!涓嶉渶瑕佸啀鍙嶅叧闂�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    //鍙嶅叧闂崟鎹�
+                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+
+        #region 鍗曟嵁鍙樻洿 椤甸潰鍒濆鍖�
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain_Change_init")]
+        [HttpGet]
+        public object GetProcessExchangeBillMain_Change_init(string HInterID)
+        {
+            try
+            {
+                if (string.IsNullOrEmpty(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "Exception锛丠InterID涓嶈兘涓虹┖";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
+                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuery  where hmainid = " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery");
+
+                if (ds==null||ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "Exception锛佷笉瀛樺湪宸ュ簭娴佽浆鍗�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    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;
+            }
+        }
+        #endregion
+
+        #region 鍗曟嵁鍙樻洿 淇濆瓨
+        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain_Change_save")]
+        [HttpGet]
+        public object GetProcessExchangeBillMain_Change_save(string HInterID,string HMaterModel2, string user)
+        {
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_ChangeBill", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲崟鎹彉鏇存潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrEmpty(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "Exception锛丠InterID涓嶈兘涓虹┖";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
+                oCN.BeginTran();
+                oCN.RunProc("update Sc_ProcessExchangeBillMain set HMaterModel2 = '" + HMaterModel2 + "' where HInterID = " + HInterID + "");
+                oCN.Commit();
+
+                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