From b75c484393ae95535edada81e805d05c56652931 Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期五, 29 十一月 2024 14:38:49 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 DAL/质检管理/ClsGy_EnvironmentTestSchemeBillMain.cs                           |  256 ++++
 WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user                       |   22 
 WebAPI/Controllers/品质管理/基础资料/Gy_BaseInformationController.cs              |  764 ++++++++++++++
 Pub_Class/CustomerCls/ClsXt_SystemParameter.cs                            |    8 
 Model/质检管理/ClsQC_EnvironmentTestDotCheckBillSub.cs                        |   16 
 WebAPI/Controllers/条码管理/WEBSController.cs                                 |   13 
 Model/Model.csproj                                                        |    4 
 WebAPI/Controllers/SCGL/日计划管理/JIT_DayPlanPlatFormImportController.cs      |   26 
 DAL/质检管理/ClsQC_EnvironmentTestDotCheckBillMain.cs                         |  267 +++++
 Model/质检管理/ClsQC_EnvironmentTestDotCheckBillMain.cs                       |   20 
 Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs                        |    2 
 WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs                  |   73 +
 WebAPI/Controllers/品质管理/环境检测单/QC_EnvironmentTestDotCheckBillController.cs |  763 ++++++++++++++
 WebAPI/Controllers/CJGL/Gy_MaterPreventErrMouldBillController.cs          |  737 +++++++++++++
 WebAPI/ListModels.cs                                                      |   64 +
 Model/质检管理/ClsGy_EnvironmentTestSchemeBillMain.cs                         |   15 
 WebAPI/Controllers/品质管理/质量报表/QC_QualityReportsController.cs               |   21 
 DAL/DAL.csproj                                                            |    2 
 Model/质检管理/ClsGy_EnvironmentTestSchemeBillSub.cs                          |   16 
 WebAPI/WebAPI.csproj                                                      |    2 
 WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs                     |   72 
 WebAPI/Models/ClsSc_MESBeginWorkBillSub.cs                                |    6 
 22 files changed, 3,108 insertions(+), 61 deletions(-)

diff --git a/DAL/DAL.csproj b/DAL/DAL.csproj
index fb3b1e8..8c96bf8 100644
--- a/DAL/DAL.csproj
+++ b/DAL/DAL.csproj
@@ -93,6 +93,7 @@
     <Compile Include="ClsPM_WorkPlanMonthBillMain.cs" />
     <Compile Include="婧愬崟\InterFace婧愬崟\Cls_S_IF_ICMOBillList_CusBarCodeBill.cs" />
     <Compile Include="婧愬崟\InterFace婧愬崟\Cls_S_IF_ICMOReportBillList_CusBarCodeBill.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsQC_EnvironmentTestDotCheckBillMain.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsQC_MonthTarGetBill.cs" />
     <Compile Include="鐢熶骇绠$悊\璁惧绠$悊\ClsSb_EquipRepairSignBill.cs" />
     <Compile Include="WMS\ClsWMS_CusBarCodeCheckBill.cs" />
@@ -688,6 +689,7 @@
     <Compile Include="璐ㄦ绠$悊\ClsQC_ProcessCheckBill.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsQC_ProdReportCheckBill.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsCrm_CustomerAppealBill.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsGy_EnvironmentTestSchemeBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsGy_MaterPreventErrMouldBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsQc_PreventErrMouldCheckBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsGy_WorkBeginDotCheckListBillMain.cs" />
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs"
new file mode 100644
index 0000000..9c3b6df
--- /dev/null
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs"
@@ -0,0 +1,256 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+namespace DAL
+{
+    public  class ClsGy_EnvironmentTestSchemeBillMain : DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsGy_EnvironmentTestSchemeBillMain omodel = new Model.ClsGy_EnvironmentTestSchemeBillMain();
+        public List<Model.ClsGy_EnvironmentTestSchemeBillSub> DetailColl = new List<Model.ClsGy_EnvironmentTestSchemeBillSub>();
+
+        public ClsGy_EnvironmentTestSchemeBillMain()
+        {
+            base.MvarItemKeySub = "Gy_EnvironmentTestSchemeBillSub";
+            base.MvarItemKeySub2 = "";
+            base.MvarItemKeySub3 = "";
+            base.MvarItemKeySub4 = "";
+            base.MvarItemKey= "Gy_EnvironmentTestSchemeBillMain";
+            base.MvarReportTitle="鐜妫�娴嬫柟妗�";
+            base.BillType = "3340";
+            base.HBillSubType = "3340";
+
+        }
+
+        #region 鍥哄畾浠g爜
+
+        ~ClsGy_EnvironmentTestSchemeBillMain()
+        {
+            DetailColl = null;
+        }
+       
+        #endregion   鑷畾涔夋柟娉�
+        //淇敼鍗曟嵁
+        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+
+                oCn.BeginTran();
+                //鏇存柊涓昏〃
+                oCn.RunProc("UpDate Gy_EnvironmentTestSchemeBillMain set  " +
+                " HBillNo='" + omodel.HBillNo + "'" +  
+                ",HYear='" + omodel.HYear.ToString() + "'" +
+                ",HPeriod='" + omodel.HPeriod.ToString() + "'" +
+                ",HRemark='" + omodel.HRemark + "'" +
+                ",HUpDater='" + omodel.HMaker + "'" +
+                ",HUpDateDate=getdate()" +
+                //========================================
+
+                ",HDeptID =" + omodel.HDeptID.ToString() +
+                ",HCenterWorkID =" + omodel.HCenterWorkID.ToString() +
+                ",HProcID =" + omodel.HProcID.ToString() +
+
+                " where HInterID=" + lngBillKey.ToString());
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //鍒犻櫎瀛愯〃
+                DeleteBillSub(lngBillKey);
+
+                //鎻掑叆瀛愯〃
+                omodel.HInterID = lngBillKey;
+                foreach (Model.ClsGy_EnvironmentTestSchemeBillSub oSub in DetailColl)
+                {
+                    string subSql = "insert into Gy_EnvironmentTestSchemeBillSub " +
+                        "(HInterID,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRemark" +
+                        ",HPrjNo,HEnvironmentItemID,HTargetVal,HUpLimit,HDownLimit) " +
+                        " values(" +
+                        "" + omodel.HInterID.ToString() +
+                        "," + oSub.HEntryID.ToString() +
+                        "," + oSub.HSourceInterID +
+                        "," + oSub.HSourceEntryID +
+                        ",'" + oSub.HSourceBillNo +
+                        "','" + oSub.HSourceBillType +
+                        "','" + oSub.HRemark +
+                        "','" + oSub.HPrjNo +
+                        "','" + oSub.HEnvironmentItemID +
+                        "','" + oSub.HTargetVal +
+                        "','" + oSub.HUpLimit +
+                        "','" + oSub.HDownLimit +
+                        "')";
+                    oCn.RunProc(subSql);
+                }
+
+
+                sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏂板鍗曟嵁
+        public override bool AddBill(ref string sReturn)
+        {
+            try
+            {
+
+                DataSet ds;
+
+                oCn.BeginTran();
+
+                //妫�鏌ヤ富琛ㄥ唴鐮佹槸鍚﹂噸澶嶏紝鑻ラ噸澶嶅垯閲嶆柊鐢熸垚骞剁户缁鏌ワ紝鐩村埌涓嶅啀閲嶅
+                while (true)
+                {
+                    ds = oCn.RunProcReturn("select * from Gy_EnvironmentTestSchemeBillMain where HInterID = " + omodel.HInterID, "Gy_EnvironmentTestSchemeBillMain");
+                    if (ds != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                    }
+                    else
+                    {
+                        break;
+                    }
+                }
+
+                //涓昏〃
+                string mainSql = "insert into Gy_EnvironmentTestSchemeBillMain" +
+                    "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HRemark,HMaker,HMakeDate" +
+                    ",HDeptID,HCenterWorkID,HProcID) " +
+                    "values(" +
+                    "" + (omodel.HYear.ToString() != "0" ? omodel.HYear.ToString() : DateTime.Now.Year.ToString()) +
+                    "," + omodel.HPeriod.ToString() +
+                    ",'" + this.BillType +
+                    "','" + this.HBillSubType +
+                    "'," + omodel.HInterID +
+                    ",'" + omodel.HDate +
+                    "','" + omodel.HBillNo +
+                    "','" + omodel.HRemark +
+                    "','getdate()" +
+                    "','" + omodel.HMakeDate +                  
+                    "','" + omodel.HDeptID +
+                    "','" + omodel.HCenterWorkID +
+                    "','" + omodel.HProcID +
+                    "')";
+
+                oCn.RunProc(mainSql);
+
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsGy_EnvironmentTestSchemeBillSub oSub in DetailColl)
+                {
+                    string subSql = "insert into Gy_EnvironmentTestSchemeBillSub " +
+                         "(HInterID,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRemark" +
+                         ",HPrjNo,HEnvironmentItemID,HTargetVal,HUpLimit,HDownLimit) " +
+                         " values(" +
+                         "" + omodel.HInterID.ToString() +
+                         "," + oSub.HEntryID.ToString() +
+                         "," + oSub.HSourceInterID +
+                         "," + oSub.HSourceEntryID +
+                         ",'" + oSub.HSourceBillNo +
+                         "','" + oSub.HSourceBillType +
+                         "','" + oSub.HRemark +
+                         "','" + oSub.HPrjNo +
+                         "','" + oSub.HEnvironmentItemID +
+                         "','" + oSub.HTargetVal +
+                         "','" + oSub.HUpLimit +
+                         "','" + oSub.HDownLimit +
+                         "')";
+                    oCn.RunProc(subSql);
+                }
+
+                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏄剧ず鍗曟嵁
+        public override bool ShowBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet Ds ;
+                Ds = oCn.RunProcReturn("Select * from Gy_EnvironmentTestSchemeBillMain Where HInterID=" + lngBillKey.ToString(), "Gy_EnvironmentTestSchemeBillMain");
+                if(Ds.Tables[0].Rows.Count==0)
+                {
+                    sReturn = "鍗曟嵁鏈壘鍒帮紒";
+                    return false;
+                }
+                //鍥哄畾璧嬪��===========================================
+                omodel.HInterID =DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]);
+                omodel.HBillNo = Ds.Tables[0].Rows[0]["HBillNo"].ToString().Trim();
+                omodel.HDate =DBUtility.ClsPub.isDate(Ds.Tables[0].Rows[0]["HDate"]);
+                omodel.HYear = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HYear"]);
+                omodel.HPeriod = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPeriod"]);
+                omodel.HCheckItemNowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNowID"]);
+                omodel.HCheckItemNextID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNextID"]);
+                omodel.HCheckFlowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckFlowID"]);
+                omodel.HRemark = Ds.Tables[0].Rows[0]["HRemark"].ToString().Trim();
+                omodel.HBillStatus = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HBillStatus"]);
+                omodel.HBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
+                omodel.HBillSubType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillSubType"]);
+                omodel.HMaker = Ds.Tables[0].Rows[0]["HMaker"].ToString().Trim();
+                omodel.HMakeDate = Ds.Tables[0].Rows[0]["HMakeDate"].ToString().Trim();
+                omodel.HUpDateDate = Ds.Tables[0].Rows[0]["HUpDateDate"].ToString().Trim();
+                omodel.HUpDater = Ds.Tables[0].Rows[0]["HUpDater"].ToString().Trim();
+                omodel.HBackDate = Ds.Tables[0].Rows[0]["HBackDate"].ToString().Trim();
+                omodel.HBacker = Ds.Tables[0].Rows[0]["HBacker"].ToString().Trim();
+                omodel.HCheckDate = Ds.Tables[0].Rows[0]["HCheckDate"].ToString().Trim();
+                omodel.HChecker = Ds.Tables[0].Rows[0]["HChecker"].ToString().Trim();
+                omodel.HCloseDate = Ds.Tables[0].Rows[0]["HCloseDate"].ToString().Trim();
+                omodel.HCloseMan = Ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();
+                omodel.HDeleteDate = Ds.Tables[0].Rows[0]["HDeleteDate"].ToString().Trim();
+                omodel.HDeleteMan = Ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();
+                //========================================================
+              
+                //
+                
+                //寰幆
+                DataSet DsSub ;
+                DsSub = oCn.RunProcReturn("Select * from Gy_EnvironmentTestSchemeBillSub Where HInterID=" + lngBillKey.ToString() + " order by HEntryID ", "Sc_WorkBeginDotCheckBillSub");
+                DetailColl.Clear();//娓呯┖
+                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
+                {
+                    Model.ClsGy_EnvironmentTestSchemeBillSub oSub = new Model.ClsGy_EnvironmentTestSchemeBillSub();
+                    // 鍥哄畾璧嬪��===============================================
+                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
+                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
+                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceInterID"]);
+                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceEntryID"]);
+                    oSub.HSourceBillType = DsSub.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
+                    oSub.HSourceBillNo = DsSub.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
+                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationQty"]);
+                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationMoney"]); 
+                    oSub.HCloseMan =  DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
+                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
+                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HEntryCloseDate"]);
+                    oSub.HRemark = DsSub.Tables[0].Rows[i]["HRemark"].ToString().Trim();
+                    //===================================================
+                  
+                    DetailColl.Add(oSub);
+                }
+                sReturn = "鏄剧ず鍗曟嵁鎴愬姛锛�";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+       
+        
+    }
+
+}
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
new file mode 100644
index 0000000..b4097d8
--- /dev/null
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
@@ -0,0 +1,267 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+namespace DAL
+{
+    public  class ClsQC_EnvironmentTestDotCheckBillMain : DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsQC_EnvironmentTestDotCheckBillMain omodel = new Model.ClsQC_EnvironmentTestDotCheckBillMain();
+        public List<Model.ClsQC_EnvironmentTestDotCheckBillSub> DetailColl = new List<Model.ClsQC_EnvironmentTestDotCheckBillSub>();
+
+        public ClsQC_EnvironmentTestDotCheckBillMain()
+        {
+            base.MvarItemKeySub = "QC_EnvironmentTestDotCheckBillSub";
+            base.MvarItemKeySub2 = "";
+            base.MvarItemKeySub3 = "";
+            base.MvarItemKeySub4 = "";
+            base.MvarItemKey= "QC_EnvironmentTestDotCheckBillMain";
+            base.MvarReportTitle="鐜妫�娴嬪崟";
+            base.BillType = "3340";
+            base.HBillSubType = "3340";
+
+        }
+
+        #region 鍥哄畾浠g爜
+
+        ~ClsQC_EnvironmentTestDotCheckBillMain()
+        {
+            DetailColl = null;
+        }
+       
+        #endregion   鑷畾涔夋柟娉�
+        //淇敼鍗曟嵁
+        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+
+                oCn.BeginTran();
+                //鏇存柊涓昏〃
+                oCn.RunProc("UpDate QC_EnvironmentTestDotCheckBillMain set  " +
+                " HBillNo='" + omodel.HBillNo + "'" +  
+                ",HYear='" + omodel.HYear.ToString() + "'" +
+                ",HPeriod='" + omodel.HPeriod.ToString() + "'" +
+                ",HRemark='" + omodel.HRemark + "'" +
+                ",HUpDater='" + omodel.HMaker + "'" +
+                ",HUpDateDate=getdate()" +
+                //========================================
+
+                ",HDeptID =" + omodel.HDeptID.ToString() +
+                ",HCenterWorkID =" + omodel.HCenterWorkID.ToString() +
+                ",HProcID =" + omodel.HProcID.ToString() +
+                ",HCleanType ='" + omodel.HCleanType.ToString() +
+                "',HErrMsgBack ='" + omodel.HErrMsgBack.ToString() +
+                "',HNote ='" + omodel.HNote.ToString() +
+                "',HEmpID =" + omodel.HEmpID.ToString() +
+                ",HEnvironmentTestSchemeID =" + omodel.HEnvironmentTestSchemeID.ToString() +
+                ",HOrgID =" + omodel.HOrgID.ToString() +
+                " where HInterID=" + lngBillKey.ToString());
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //鍒犻櫎瀛愯〃
+                DeleteBillSub(lngBillKey);
+
+                //鎻掑叆瀛愯〃
+                omodel.HInterID = lngBillKey;
+                foreach (Model.ClsQC_EnvironmentTestDotCheckBillSub oSub in DetailColl)
+                {
+                    string subSql = "insert into QC_EnvironmentTestDotCheckBillSub " +
+                        "(HInterID,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRemark" +
+                        ",HEnvironmentItemID,HMeasure,HTargetVal,HUpLimit,HDownLimit) " +
+                        " values(" +
+                        "" + omodel.HInterID.ToString() +
+                        "," + oSub.HEntryID.ToString() +
+                        "," + oSub.HSourceInterID +
+                        "," + oSub.HSourceEntryID +
+                        ",'" + oSub.HSourceBillNo +
+                        "','" + oSub.HSourceBillType +
+                        "','" + oSub.HRemark +
+                        "','" + oSub.HEnvironmentItemID +
+                        "','" + oSub.HMeasure +
+                        "','" + oSub.HTargetVal +
+                        "','" + oSub.HUpLimit +
+                        "','" + oSub.HDownLimit +
+                        "')";
+                    oCn.RunProc(subSql);
+                }
+
+
+                sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏂板鍗曟嵁
+        public override bool AddBill(ref string sReturn)
+        {
+            try
+            {
+
+                DataSet ds;
+
+                oCn.BeginTran();
+
+                //妫�鏌ヤ富琛ㄥ唴鐮佹槸鍚﹂噸澶嶏紝鑻ラ噸澶嶅垯閲嶆柊鐢熸垚骞剁户缁鏌ワ紝鐩村埌涓嶅啀閲嶅
+                while (true)
+                {
+                    ds = oCn.RunProcReturn("select * from QC_EnvironmentTestDotCheckBillMain where HInterID = " + omodel.HInterID, "QC_EnvironmentTestDotCheckBillMain");
+                    if (ds != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                    }
+                    else
+                    {
+                        break;
+                    }
+                }
+
+                //涓昏〃
+                string mainSql = "insert into QC_EnvironmentTestDotCheckBillMain" +
+                    "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HRemark,HMaker,HMakeDate" +
+                    ",HDeptID,HCenterWorkID,HProcID,HCleanType,HErrMsgBack,HNote,HEmpID,HEnvironmentTestSchemeID,HOrgID ) " +
+                    "values(" +
+                    "" + (omodel.HYear.ToString() != "0" ? omodel.HYear.ToString() : DateTime.Now.Year.ToString()) +
+                    "," + omodel.HPeriod.ToString() +
+                    ",'" + this.BillType +
+                    "','" + this.HBillSubType +
+                    "'," + omodel.HInterID +
+                    ",'" + omodel.HDate +
+                    "','" + omodel.HBillNo +
+                    "','" + omodel.HRemark +
+                    "','" + omodel.HMaker +
+                    "',getdate()" +
+                    ",'" + omodel.HDeptID +
+                    "','" + omodel.HCenterWorkID +
+                    "','" + omodel.HProcID +
+                    "','" + omodel.HCleanType +
+                    "','" + omodel.HErrMsgBack +
+                    "','" + omodel.HNote +
+                    "','" + omodel.HEmpID +
+                    "','" + omodel.HEnvironmentTestSchemeID +
+                     "','" + omodel.HOrgID +
+                    "')";
+
+                oCn.RunProc(mainSql);
+
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsQC_EnvironmentTestDotCheckBillSub oSub in DetailColl)
+                {
+                    string subSql = "insert into QC_EnvironmentTestDotCheckBillSub " +
+                         "(HInterID,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRemark" +
+                         ",HEnvironmentItemID,HMeasure,HTargetVal,HUpLimit,HDownLimit) " +
+                         " values(" +
+                         "" + omodel.HInterID.ToString() +
+                         "," + oSub.HEntryID.ToString() +
+                         "," + oSub.HSourceInterID +
+                         "," + oSub.HSourceEntryID +
+                         ",'" + oSub.HSourceBillNo +
+                         "','" + oSub.HSourceBillType +
+                         "','" + oSub.HRemark +
+                         "','" + oSub.HEnvironmentItemID +
+                         "','" + oSub.HMeasure +
+                         "','" + oSub.HTargetVal +
+                         "','" + oSub.HUpLimit +
+                         "','" + oSub.HDownLimit +
+                         "')";
+                    oCn.RunProc(subSql);
+                }
+
+                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏄剧ず鍗曟嵁
+        public override bool ShowBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet Ds ;
+                Ds = oCn.RunProcReturn("Select * from QC_EnvironmentTestDotCheckBillMain Where HInterID=" + lngBillKey.ToString(), "QC_EnvironmentTestDotCheckBillMain");
+                if(Ds.Tables[0].Rows.Count==0)
+                {
+                    sReturn = "鍗曟嵁鏈壘鍒帮紒";
+                    return false;
+                }
+                //鍥哄畾璧嬪��===========================================
+                omodel.HInterID =DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]);
+                omodel.HBillNo = Ds.Tables[0].Rows[0]["HBillNo"].ToString().Trim();
+                omodel.HDate =DBUtility.ClsPub.isDate(Ds.Tables[0].Rows[0]["HDate"]);
+                omodel.HYear = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HYear"]);
+                omodel.HPeriod = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPeriod"]);
+                omodel.HCheckItemNowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNowID"]);
+                omodel.HCheckItemNextID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNextID"]);
+                omodel.HCheckFlowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckFlowID"]);
+                omodel.HRemark = Ds.Tables[0].Rows[0]["HRemark"].ToString().Trim();
+                omodel.HBillStatus = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HBillStatus"]);
+                omodel.HBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
+                omodel.HBillSubType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillSubType"]);
+                omodel.HMaker = Ds.Tables[0].Rows[0]["HMaker"].ToString().Trim();
+                omodel.HMakeDate = Ds.Tables[0].Rows[0]["HMakeDate"].ToString().Trim();
+                omodel.HUpDateDate = Ds.Tables[0].Rows[0]["HUpDateDate"].ToString().Trim();
+                omodel.HUpDater = Ds.Tables[0].Rows[0]["HUpDater"].ToString().Trim();
+                omodel.HBackDate = Ds.Tables[0].Rows[0]["HBackDate"].ToString().Trim();
+                omodel.HBacker = Ds.Tables[0].Rows[0]["HBacker"].ToString().Trim();
+                omodel.HCheckDate = Ds.Tables[0].Rows[0]["HCheckDate"].ToString().Trim();
+                omodel.HChecker = Ds.Tables[0].Rows[0]["HChecker"].ToString().Trim();
+                omodel.HCloseDate = Ds.Tables[0].Rows[0]["HCloseDate"].ToString().Trim();
+                omodel.HCloseMan = Ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();
+                omodel.HDeleteDate = Ds.Tables[0].Rows[0]["HDeleteDate"].ToString().Trim();
+                omodel.HDeleteMan = Ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();
+                //========================================================
+              
+                //
+                
+                //寰幆
+                DataSet DsSub ;
+                DsSub = oCn.RunProcReturn("Select * from QC_EnvironmentTestDotCheckBillSub Where HInterID=" + lngBillKey.ToString() + " order by HEntryID ", "Sc_WorkBeginDotCheckBillSub");
+                DetailColl.Clear();//娓呯┖
+                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
+                {
+                    Model.ClsQC_EnvironmentTestDotCheckBillSub oSub = new Model.ClsQC_EnvironmentTestDotCheckBillSub();
+                    // 鍥哄畾璧嬪��===============================================
+                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
+                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
+                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceInterID"]);
+                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceEntryID"]);
+                    oSub.HSourceBillType = DsSub.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
+                    oSub.HSourceBillNo = DsSub.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
+                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationQty"]);
+                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationMoney"]); 
+                    oSub.HCloseMan =  DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
+                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
+                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HEntryCloseDate"]);
+                    oSub.HRemark = DsSub.Tables[0].Rows[i]["HRemark"].ToString().Trim();
+                    //===================================================
+                  
+                    DetailColl.Add(oSub);
+                }
+                sReturn = "鏄剧ず鍗曟嵁鎴愬姛锛�";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+       
+        
+    }
+
+}
diff --git a/Model/Model.csproj b/Model/Model.csproj
index 76a8bae..4bcdef2 100644
--- a/Model/Model.csproj
+++ b/Model/Model.csproj
@@ -151,6 +151,8 @@
     <Compile Include="鍩虹璧勬枡\鍩虹璧勬枡\ClsGy_TechnologyParameterType_Model .cs" />
     <Compile Include="鍩虹璧勬枡\鍩虹璧勬枡\ClsGy_RestDay_Model.cs" />
     <Compile Include="鐢熶骇绠$悊\妯″叿绠$悊\ClsSc_MouldMaintainPlanBillSub_Plan.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsQC_EnvironmentTestDotCheckBillMain.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsQC_EnvironmentTestDotCheckBillSub.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsQC_MonthTarGetBillMain.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsQC_MonthTarGetBillSub.cs" />
     <Compile Include="鐢熶骇绠$悊\璁惧绠$悊\ClsSb_EquipRepairSignBillMain.cs" />
@@ -702,7 +704,9 @@
     <Compile Include="璐ㄦ绠$悊\ClsQC_ProcessCheckBillSub_ValueGrid.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsCrm_CustomerAppealBillSub.cs" />
     <Compile Include="璐ㄦ绠$悊\ClsCrm_CustomerAppealBillMain.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsGy_EnvironmentTestSchemeBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsGy_MaterPreventErrMouldBillMain.cs" />
+    <Compile Include="璐ㄦ绠$悊\ClsGy_EnvironmentTestSchemeBillSub.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsQc_PreventErrMouldCheckBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsGy_WorkBeginDotCheckListBillMain.cs" />
     <Compile Include="杞﹂棿绠$悊\ClsCJ_WIPBeginStockBillMain.cs" />
diff --git "a/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs" "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs"
new file mode 100644
index 0000000..255787b
--- /dev/null
+++ "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillMain.cs"
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsGy_EnvironmentTestSchemeBillMain : DBUtility.ClsXt_BaseBillMain
+    {
+     
+        public Int64 HDeptID;          //int ---生产部门(Gy_Department)
+        public Int64 HCenterWorkID;          //int --工作中心(Gy_WorkCenter)
+        public Int64 HProcID;          //int --工序(gy_Process)
+
+    }
+}
diff --git "a/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillSub.cs" "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillSub.cs"
new file mode 100644
index 0000000..65398d9
--- /dev/null
+++ "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsGy_EnvironmentTestSchemeBillSub.cs"
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsGy_EnvironmentTestSchemeBillSub : DBUtility.ClsXt_BaseBillSub
+    {
+        public Int64 HPrjNo;  // int --次序号
+        public Int64 HEnvironmentItemID;  // int --检测项目(Gy_EnvironmentTestItem)
+        public string HTargetVal;     // varchar(200) --目标值
+        public string HUpLimit;     //varchar(200) --上限值
+        public string HDownLimit;     // varchar(200) --下限值
+
+    }
+}
diff --git "a/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs" "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
new file mode 100644
index 0000000..cea1dc2
--- /dev/null
+++ "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsQC_EnvironmentTestDotCheckBillMain : DBUtility.ClsXt_BaseBillMain
+    {
+     
+        public Int64 HDeptID;          //int ---生产部门(Gy_Department)
+        public Int64 HCenterWorkID;          //int --工作中心(Gy_WorkCenter)
+        public Int64 HProcID;          //int --工序(gy_Process)
+        public string HCleanType;          //varchar(20) --洁净度(A,B,C)
+        public string HErrMsgBack;          //varchar(500)--异常原因
+        public string HNote;          //varchar(500) --改善对策
+        public Int64 HEmpID;          //int   --记录人(Gy_Employee)
+        public string HEnvironmentTestSchemeID;          //int --环境检测方案(Gy_EnvironmentTestSchemeBillMain)
+        public Int64 HOrgID;          // int --组织
+    }
+}
diff --git "a/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillSub.cs" "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillSub.cs"
new file mode 100644
index 0000000..6839eb9
--- /dev/null
+++ "b/Model/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillSub.cs"
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsQC_EnvironmentTestDotCheckBillSub : DBUtility.ClsXt_BaseBillSub
+    {
+        public Int64 HEnvironmentItemID;  // int --检测项目(Gy_EnvironmentTestItem)
+        public string HMeasure;     // varchar(200) --实际值
+        public string HTargetVal;     // varchar(200) --目标值
+        public string HUpLimit;     //varchar(200) --上限值
+        public string HDownLimit;     // varchar(200) --下限值
+
+    }
+}
diff --git a/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs b/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
index ab688e5..07635be 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1802,6 +1802,10 @@
                     }
 
                     //=======JIT
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "JIT_DayPlan_TimeFrame")
+                    {
+                        omodel.JIT_DayPlan_TimeFrame = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
 
                     //==========开班单
                     //自动审核
@@ -3900,6 +3904,10 @@
 
 
                     //=======JIT系统参数
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "JIT_DayPlan_TimeFrame")
+                    {
+                        omodel.JIT_DayPlan_TimeFrame = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
 
                     //==========开班单
                     //自动审核
diff --git a/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs b/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
index 9dc8a3e..225add6 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
@@ -571,7 +571,7 @@
 
 
         //JIT
-
+        public string JIT_DayPlan_TimeFrame;                    //设置导入计划日期范围
 
         //开班单
         public string Sc_MESBeginWorkBill_AutoCheck;                    //保存后是否自动审核
diff --git a/WebAPI/Controllers/CJGL/Gy_MaterPreventErrMouldBillController.cs b/WebAPI/Controllers/CJGL/Gy_MaterPreventErrMouldBillController.cs
index 694171f..c02545a 100644
--- a/WebAPI/Controllers/CJGL/Gy_MaterPreventErrMouldBillController.cs
+++ b/WebAPI/Controllers/CJGL/Gy_MaterPreventErrMouldBillController.cs
@@ -268,7 +268,6 @@
 
                     oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                     oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
-                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
 
                     if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                     {
@@ -816,5 +815,741 @@
         }
         #endregion     
 
+        #region 鐜妫�娴嬮」鐩� 鏌ヨ       
+        [Route("Gy_MaterPreventErrMouldBill/get锘縂y_EnvironmentTestSchemeBillMainList")]
+        [HttpGet]
+        public object get锘縂y_EnvironmentTestSchemeBillMainList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("Gy_EnvironmentTestSchemeBillMain_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_Gy_EnvironmentTestSchemeBillMainList order by 鍗曟嵁鍙� desc", "锘縣_v_Gy_EnvironmentTestSchemeBillMainList");
+                }
+                else
+                {
+                    string sql1 = "select * from  h_v_Gy_EnvironmentTestSchemeBillMainList  where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "锘縣_v_Gy_EnvironmentTestSchemeBillMainList");
+                }
+
+                //娣诲姞鍒楀悕
+                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 = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐜妫�娴嬮」鐩� 鑾峰彇缂栬緫鍒楄〃鏁版嵁
+        [Route("Gy_MaterPreventErrMouldBill/锘縂y_EnvironmentTestSchemeBillMainEditList")]
+        [HttpGet]
+        public object Gy_EnvironmentTestSchemeBillMainEditList(string HInterID, string User)
+        {
+            try
+            {
+                List<DataTable> tableList = new List<DataTable>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Edit", 1, false, User))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ds = oCN.RunProcReturn("select * from h_v_Gy_EnvironmentTestSchemeBillMainList where HInterID = " + HInterID, " h_v_Gy_EnvironmentTestSchemeBillMainList");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
+                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("Gy_MaterPreventErrMouldBill/Save锘縂y_EnvironmentTestSchemeBillMain")]
+        [HttpPost]
+        public object Save锘縂y_EnvironmentTestSchemeBillMain([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 refSav = sArray[2].ToString();//鎿嶄綔鏂瑰紡鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗
+            string user = sArray[3].ToString();//鐢ㄦ埛鍚�
+
+            string UserName = "";
+            string s = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                //淇濆瓨鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("Gy_EnvironmentTestSchemeBillMain_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsGy_EnvironmentTestSchemeBillMain oBill = new DAL.ClsGy_EnvironmentTestSchemeBillMain();
+                List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain> lsmain = new List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_锘縂y_EnvironmentTestSchemeBillMain(msg2);
+                foreach (Model.Cls锘縂y_EnvironmentTestSchemeBillMain oItem in lsmain)
+                {
+                    if (refSav == "Add")
+                    {
+                        //鍗曟嵁鍙锋槸鍚﹂噸澶�
+                        if (OBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, OBill.omodel.HInterID))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒涓嶅厑璁镐繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+                    if (refSav == "Update")
+                    {
+                        if (OBill.ShowBill(oItem.HInterID, ref s) == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        //鍒ゆ柇鏄惁鍙紪杈�
+                        if (OBill.omodel.HChecker != "" && OBill.omodel.HChecker != null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (OBill.omodel.HBillStatus > 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹浜庝笉鍙紪杈戠姸鎬侊紝涓嶅厑璁镐慨鏀癸紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+
+                    }
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "7516";
+                    oItem.HBillSubType = "7516";
+
+
+
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+
+                    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
+                List<Model.ClsGy_EnvironmentTestSchemeBillSub> ls = new List<Model.ClsGy_EnvironmentTestSchemeBillSub>();
+                ls = oListModels.getObjectByJson_Gy_EnvironmentTestSchemeBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsGy_EnvironmentTestSchemeBillSub oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (refSav == "Add")
+                {
+
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else if (refSav == "Update")
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = false;
+                }
+                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("Gy_MaterPreventErrMouldBill/Delete锘縂y_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object Delete锘縂y_EnvironmentTestSchemeBill(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                oCN.RunProc("delete from Gy_EnvironmentTestSchemeBillMain 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
+
+        #region 鐜妫�娴嬮」鐩� 瀹℃牳/鍙嶅鏍�     
+        [Route("Gy_MaterPreventErrMouldBill/AuditGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object AuditGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //瀹℃牳鍗曟嵁
+                        if (!BillOld.CheckBill(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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //鍙嶅鏍稿崟鎹�
+                        if (!BillOld.AbandonCheck(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("Gy_MaterPreventErrMouldBill/CloseGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object CloseGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+
+                        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]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        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("Gy_MaterPreventErrMouldBill/DropGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object DropGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Drop", 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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld.Cancelltion(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]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld.AbandonCancelltion(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     
+
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
index 9fe6dab..4af70c3 100644
--- a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
+++ b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
@@ -1253,23 +1253,25 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+                //鏇存敼涓哄瓨鍌ㄨ繃绋嬫墽琛�
+                //ds = oCN.RunProcReturn($@"select a.HInterID,a.HDate '鏃ユ湡',a.HBillType,x.HName 鍗曟嵁绫诲瀷,a.HBillNo as '鍗曟嵁鍙�',
+                //    CASE WHEN a.HBillStatus <= 1 THEN '鍒涘缓' WHEN a.HBillStatus = 2 THEN '宸插鏍�' WHEN a.HBillStatus = 3 AND 
+                //    a.HCloseType = 0 THEN '鑷姩鍏抽棴' WHEN a.HBillStatus = 3 AND 
+                //    a.HCloseType = 1 THEN '鎵嬪姩鍏抽棴' WHEN a.HBillStatus = 4 THEN '宸蹭綔搴�' ELSE '鍏跺畠鐘舵��' END AS 鍗曟嵁鐘舵��,
+                //    a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡,a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, a.HUpDateDate AS 淇敼鏃ユ湡, 
+                //    a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡
+                //    from (
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType  from Gy_EquipFileBillMain where HInterID = {HInterID} UNION ALL 
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipStockInCheckBillMain where HEquipID = {HInterID} UNION ALL
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipDotCheckBillMain where HEquipID = {HInterID} UNION ALL
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipMaintainBillMain where HEquipID = {HInterID} UNION ALL
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipRepairWorkBillMain where HEquipID = {HInterID} UNION ALL
+                //    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipConkBookBillMain where HEquipID = {HInterID}
+                //    )as a,Xt_BillType as x
+                //    where a.HBillType = x.HNumber
+                //    ORDER BY '鏃ユ湡' ASC;", "h_v_Gy_EquipFileMainList");
 
-                ds = oCN.RunProcReturn($@"select a.HInterID,a.HDate '鏃ユ湡',a.HBillType,x.HName 鍗曟嵁绫诲瀷,a.HBillNo as '鍗曟嵁鍙�',
-                    CASE WHEN a.HBillStatus <= 1 THEN '鍒涘缓' WHEN a.HBillStatus = 2 THEN '宸插鏍�' WHEN a.HBillStatus = 3 AND 
-                    a.HCloseType = 0 THEN '鑷姩鍏抽棴' WHEN a.HBillStatus = 3 AND 
-                    a.HCloseType = 1 THEN '鎵嬪姩鍏抽棴' WHEN a.HBillStatus = 4 THEN '宸蹭綔搴�' ELSE '鍏跺畠鐘舵��' END AS 鍗曟嵁鐘舵��,
-                    a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡,a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, a.HUpDateDate AS 淇敼鏃ユ湡, 
-                    a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡
-                    from (
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType  from Gy_EquipFileBillMain where HInterID = {HInterID} UNION ALL 
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipStockInCheckBillMain where HEquipID = {HInterID} UNION ALL
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipDotCheckBillMain where HEquipID = {HInterID} UNION ALL
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipMaintainBillMain where HEquipID = {HInterID} UNION ALL
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipRepairWorkBillMain where HEquipID = {HInterID} UNION ALL
-                    select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sb_EquipConkBookBillMain where HEquipID = {HInterID}
-                    )as a,Xt_BillType as x
-                    where a.HBillType = x.HNumber
-                    ORDER BY '鏃ユ湡' ASC;", "h_v_Gy_EquipFileMainList");
+                ds = oCN.RunProcReturn("exec h_p_Gy_EquipFileReport '" + HInterID + "'", "h_p_Gy_EquipFileReport");
 
                 //娣诲姞鍔ㄦ�佸垪淇℃伅
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -1315,25 +1317,27 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+                //鏇存敼涓哄瓨鍌ㄨ繃绋嬫墽琛�
+                //ds = oCN.RunProcReturn($@"select a.HInterID,a.HDate '鏃ユ湡',a.HBillType,x.HName 鍗曟嵁绫诲瀷,a.HBillNo as '鍗曟嵁鍙�',
+                //CASE WHEN a.HBillStatus <= 1 THEN '鍒涘缓' WHEN a.HBillStatus = 2 THEN '宸插鏍�' WHEN a.HBillStatus = 3 AND 
+                //a.HCloseType = 0 THEN '鑷姩鍏抽棴' WHEN a.HBillStatus = 3 AND 
+                //a.HCloseType = 1 THEN '鎵嬪姩鍏抽棴' WHEN a.HBillStatus = 4 THEN '宸蹭綔搴�' ELSE '鍏跺畠鐘舵��' END AS 鍗曟嵁鐘舵��,
+                //a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡,a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, a.HUpDateDate AS 淇敼鏃ユ湡, 
+                //a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡
+                //from (
+                //select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType  from Gy_MouldFileMain where HInterID = {HInterID} UNION ALL 
+                //select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldDotCheckBillMain where HMouldID = {HInterID} UNION ALL
+                //select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldMaintainBillMain where HMouldID = {HInterID} UNION ALL
+                //select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldRepairWorkBillMain  where HMouldID = {HInterID} UNION ALL
+                //select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldConkBookBillMain where HMouldID = {HInterID} UNION ALL
+                //select a.HInterID,a.HDate,a.HBillType,a.HBillNo,a.HBillStatus,a.HMaker,a.HMakeDate,a.HChecker,a.HCheckDate,a.HUpDater,a.HUpDateDate,a.HCloseMan,a.HCloseDate,a.HDeleteMan,a.HDeleteDate,a.HCloseType 
+                //from Sc_MouldStockBillMain as a,Sc_MouldStockBillSub as b 
+                //where  a.HInterID = b.HInterID and b.HMaterID = {HInterID} and HBillType in ('3801','3829','3826','3831','3827')
+                //)as a,Xt_BillType as x
+                //where a.HBillType = x.HNumber
+                //ORDER BY '鏃ユ湡' ASC;", "Gy_MouldFileResume");
 
-                ds = oCN.RunProcReturn($@"select a.HInterID,a.HDate '鏃ユ湡',a.HBillType,x.HName 鍗曟嵁绫诲瀷,a.HBillNo as '鍗曟嵁鍙�',
-                CASE WHEN a.HBillStatus <= 1 THEN '鍒涘缓' WHEN a.HBillStatus = 2 THEN '宸插鏍�' WHEN a.HBillStatus = 3 AND 
-                a.HCloseType = 0 THEN '鑷姩鍏抽棴' WHEN a.HBillStatus = 3 AND 
-                a.HCloseType = 1 THEN '鎵嬪姩鍏抽棴' WHEN a.HBillStatus = 4 THEN '宸蹭綔搴�' ELSE '鍏跺畠鐘舵��' END AS 鍗曟嵁鐘舵��,
-                a.HMaker AS 鍒跺崟浜�, a.HMakeDate AS 鍒跺崟鏃ユ湡,a.HChecker AS 瀹℃牳浜�, a.HCheckDate AS 瀹℃牳鏃ユ湡, a.HUpDater AS 淇敼浜�, a.HUpDateDate AS 淇敼鏃ユ湡, 
-                a.HCloseMan AS 鍏抽棴浜�, a.HCloseDate AS 鍏抽棴鏃ユ湡, a.HDeleteMan AS 浣滃簾浜�, a.HDeleteDate AS 浣滃簾鏃ユ湡
-                from (
-                select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType  from Gy_MouldFileMain where HInterID = {HInterID} UNION ALL 
-                select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldDotCheckBillMain where HMouldID = {HInterID} UNION ALL
-                select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldMaintainBillMain where HMouldID = {HInterID} UNION ALL
-                select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldRepairWorkBillMain  where HMouldID = {HInterID} UNION ALL
-                select HInterID,HDate,HBillType,HBillNo,HBillStatus,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate,HCloseMan,HCloseDate,HDeleteMan,HDeleteDate,HCloseType from Sc_MouldConkBookBillMain where HMouldID = {HInterID} UNION ALL
-                select a.HInterID,a.HDate,a.HBillType,a.HBillNo,a.HBillStatus,a.HMaker,a.HMakeDate,a.HChecker,a.HCheckDate,a.HUpDater,a.HUpDateDate,a.HCloseMan,a.HCloseDate,a.HDeleteMan,a.HDeleteDate,a.HCloseType 
-                from Sc_MouldStockBillMain as a,Sc_MouldStockBillSub as b 
-                where  a.HInterID = b.HInterID and b.HMaterID = {HInterID} and HBillType in ('3801','3829','3826','3831','3827')
-                )as a,Xt_BillType as x
-                where a.HBillType = x.HNumber
-                ORDER BY '鏃ユ湡' ASC;", "Gy_MouldFileResume");
+                ds = oCN.RunProcReturn("exec h_p_Gy_MouldFileReport '" + HInterID + "'", "h_p_Gy_MouldFileReport");
 
                 //娣诲姞鍔ㄦ�佸垪淇℃伅
                 foreach (DataColumn col in ds.Tables[0].Columns)
diff --git a/WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs b/WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs
index a46948a..a438827 100644
--- a/WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs
@@ -938,6 +938,79 @@
         }
         #endregion
 
+        #region 鎶ュ伐骞冲彴寮�宸ュ崟 鍒峰崱淇濆瓨鍒峰崱浜�
+        /// <summary>
+        /// 寮�宸ュ崟
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        [Route("Sc_MESBeginWorkBill/AddHCardswiper")]
+        [HttpPost]
+        public object AddHCardswiper([FromBody] JObject msg)
+        {
+
+            var _value = msg["msg"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+
+            ListModels oListModels = new ListModels();
+            try
+            {
+                oCN.BeginTran();
+                DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
+                List<Models.ClsSc_MESBeginWorkBillSub> lsmain = new List<Models.ClsSc_MESBeginWorkBillSub>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub(msg2);
+
+                foreach (Models.ClsSc_MESBeginWorkBillSub oItemSub in lsmain)
+                {
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailColl.Add(oItemSub);
+                }
+                ds = oCN.RunProcReturn("select * from Sc_MESBeginWorkBillSub where HInterID<0 order by HInterID", "Sc_MESBeginWorkBillSub");
+                string HInterID = "-1";
+                if (ds.Tables[0].Rows.Count>0) {
+                    HInterID = (int.Parse(ds.Tables[0].Rows[0]["HInterID"].ToString()) - 1).ToString();
+                }
+                //msg3 = msg3.Substring(1, msg3.Length - 2);
+                //msg3 = msg3.Replace("\\", "");
+                //msg3 = msg3.Replace("\n", "");  //\n
+
+                //淇濆瓨
+                foreach (Models.ClsSc_MESBeginWorkBillSub oSub in oBill.DetailColl)
+                {
+                    ds = oCN.RunProcReturn("select * from Sc_MESBeginWorkBillSub where HBillNo_bak='" + oSub.HBillNo_bak + "'", "Sc_MESBeginWorkBillSub");
+                    string subSql = "insert into Sc_MESBeginWorkBillSub " +
+                        "(HInterID, HEntryID,HBillNo_bak,HCloseMan,HEntryCloseDate,HCloseType, HSourceInterID, HSourceEntryID" +
+                        ",HRelationQty,HRelationMoney, HSourceBillNo, HSourceBillType, HRemark,HCardswiperMan,HCardswiperDate,HEmpID) " +
+                        "values(" +
+                        "'" + HInterID + "','" + (ds.Tables[0].Rows.Count + 1) + "','" + oSub.HBillNo_bak + "','','" + oSub.HEntryCloseDate + "','" + oSub.HCloseType + "','',''," +
+                        "0,0,'','','','" + oSub.HCardswiperMan + "',getdate(),'" + oSub.HEmpID + "')";
+                    oCN.RunProc(subSql);
+                }
+                oCN.Commit();
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = e.Message;
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         public DataTable getInfodatanow(string hsoucreID)
         {
             SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
diff --git "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormImportController.cs" "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormImportController.cs"
index 394d0cd..8df30d4 100644
--- "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormImportController.cs"
+++ "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormImportController.cs"
@@ -20,6 +20,8 @@
         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
         public static string BillType = "4610";
         Sc_WorkBillSortBillMain omdelMian = new Sc_WorkBillSortBillMain();
+        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+
 
         #region 鐢熶骇鏃ヨ鍒� 鏂囦欢涓婁紶
         [Route("JIT_DayPlanPlatFormImport/JIT_DayPlanPlatFormImport_DR")]
@@ -61,11 +63,16 @@
                 tb2.Columns.Add("ICMOBillHInterID", typeof(Int32));//鐢熶骇璁㈠崟涓籭d
                 tb2.Columns.Add("ICMOBillHEntryID", typeof(Int32));//鐢熶骇璁㈠崟瀛恑d
                 tb2.Columns.Add("HProdORGID", typeof(Int32));//缁勭粐id
-                tb2.Columns.Add("HSeOrderBillNo", typeof(string));//閿�鍞鍗曞彿
+                tb2.Columns.Add("HSeOrderBillNo", typeof(string));//閿�鍞鍗曞彿                
 
+                //鑾峰彇绯荤粺鍙傛暟
+                string Ret = "";
+                oSystemParameter.ShowBill(ref Ret);
+
+                LogService.Write("excel鍊硷細" + ExcelDs.Tables[0].Rows[1][15].ToString());//2024-11-26
                 //娣诲姞鏁版嵁
                 for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
-                {
+                {                  
                     DataRow row = tb2.NewRow();
                     for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
                     {
@@ -75,6 +82,21 @@
                     if (ExcelDs.Tables[0].Rows[i][0].ToString() == "" && ExcelDs.Tables[0].Rows[i][1].ToString() == "")
                     {
                         continue;
+                    }                    
+                    else if (oSystemParameter.omodel.JIT_DayPlan_TimeFrame != "0" && oSystemParameter.omodel.JIT_DayPlan_TimeFrame != "")
+                    {
+                        Int32 HDays = Convert.ToInt32(oSystemParameter.omodel.JIT_DayPlan_TimeFrame) * 7;
+
+
+
+
+                        for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
+                        {
+                            if (Convert.ToInt32(ExcelDs.Tables[0].Rows[i][j].ToString()) > 0 )
+                            {
+                                continue;
+                            }                          
+                        }                       
                     }
                     else
                     {
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_BaseInformationController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_BaseInformationController.cs"
new file mode 100644
index 0000000..f9d6b9d
--- /dev/null
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_BaseInformationController.cs"
@@ -0,0 +1,764 @@
+锘縰sing DBUtility;
+using Model;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Web;
+using System.Web.Http;
+using System.Windows.Forms;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers.鍝佽川绠$悊
+{
+    public class Gy_BaseInformationController : ApiController
+    {
+        //璐ㄩ噺绠$悊鐨勫叏閮ㄥ熀纭�璧勬枡鏂规硶
+        
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//鍗曟嵁鐘舵�侊紙鏂板锛屼慨鏀癸紝娴忚锛屾洿鏂板崟浠凤紝鍙樻洿锛�
+        private json objJsonResult = new json();
+        public DataSet ds = new DataSet();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        public DAL.ClsGy_EnvironmentTestSchemeBillMain OBill = new DAL.ClsGy_EnvironmentTestSchemeBillMain();
+        public DAL.ClsGy_EnvironmentTestSchemeBillMain BillOld = new DAL.ClsGy_EnvironmentTestSchemeBillMain();
+
+        #region 鐜妫�娴嬮」鐩� 鏌ヨ       
+        [Route("Gy_BaseInformation/get锘縂y_EnvironmentTestSchemeBillMainList")]
+        [HttpGet]
+        public object get锘縂y_EnvironmentTestSchemeBillMainList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("Gy_EnvironmentTestSchemeBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_Gy_EnvironmentTestSchemeBillList order by 鍗曟嵁鍙� desc", "锘縣_v_Gy_EnvironmentTestSchemeBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from  h_v_Gy_EnvironmentTestSchemeBillList  where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "锘縣_v_Gy_EnvironmentTestSchemeBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                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 = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐜妫�娴嬮」鐩� 鑾峰彇缂栬緫鍒楄〃鏁版嵁
+        [Route("Gy_BaseInformation/Gy_EnvironmentTestSchemeBillMainEditList")]
+        [HttpGet]
+        public object Gy_EnvironmentTestSchemeBillMainEditList(string linterid, string user)
+        {
+            try
+            {
+                List<DataTable> tableList = new List<DataTable>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (linterid == null || linterid.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ds = oCN.RunProcReturn("select * from h_v_Gy_EnvironmentTestSchemeBillEdit where HInterID = " + linterid, " h_v_Gy_EnvironmentTestSchemeBillEdit");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
+                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("Gy_BaseInformation/Save锘縂y_EnvironmentTestSchemeBillMain")]
+        [HttpPost]
+        public object Save锘縂y_EnvironmentTestSchemeBillMain([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 refSav = sArray[2].ToString();//鎿嶄綔鏂瑰紡鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗
+            string user = sArray[3].ToString();//鐢ㄦ埛鍚�
+
+            string UserName = "";
+            string s = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                //淇濆瓨鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("Gy_EnvironmentTestSchemeBillMain_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsGy_EnvironmentTestSchemeBillMain oBill = new DAL.ClsGy_EnvironmentTestSchemeBillMain();
+                List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain> lsmain = new List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_锘縂y_EnvironmentTestSchemeBillMain(msg2);
+                foreach (Model.Cls锘縂y_EnvironmentTestSchemeBillMain oItem in lsmain)
+                {
+                    if (refSav == "Add")
+                    {
+                        //鍗曟嵁鍙锋槸鍚﹂噸澶�
+                        if (OBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, OBill.omodel.HInterID))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒涓嶅厑璁镐繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+                    if (refSav == "Update")
+                    {
+                        if (OBill.ShowBill(oItem.HInterID, ref s) == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        //鍒ゆ柇鏄惁鍙紪杈�
+                        if (OBill.omodel.HChecker != "" && OBill.omodel.HChecker != null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (OBill.omodel.HBillStatus > 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹浜庝笉鍙紪杈戠姸鎬侊紝涓嶅厑璁镐慨鏀癸紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+
+                    }
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "7516";
+                    oItem.HBillSubType = "7516";
+
+
+
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+
+                    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
+                List<Model.ClsGy_EnvironmentTestSchemeBillSub> ls = new List<Model.ClsGy_EnvironmentTestSchemeBillSub>();
+                ls = oListModels.getObjectByJson_Gy_EnvironmentTestSchemeBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsGy_EnvironmentTestSchemeBillSub oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (refSav == "Add")
+                {
+
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else if (refSav == "Update")
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = false;
+                }
+                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("Gy_BaseInformation/Delete锘縂y_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object Delete锘縂y_EnvironmentTestSchemeBill(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                oCN.RunProc("delete from Gy_EnvironmentTestSchemeBillMain where HInterID = " + HInterID);
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                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("Gy_BaseInformation/AuditGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object AuditGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //瀹℃牳鍗曟嵁
+                        if (!BillOld.CheckBill(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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //鍙嶅鏍稿崟鎹�
+                        if (!BillOld.AbandonCheck(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("Gy_BaseInformation/CloseGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object CloseGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+
+                        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]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        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("Gy_BaseInformation/DropGy_EnvironmentTestSchemeBill")]
+        [HttpGet]
+        public object DropGy_EnvironmentTestSchemeBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Gy_EnvironmentTestSchemeBillMain_Drop", 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 = "Gy_EnvironmentTestSchemeBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld.Cancelltion(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]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld.AbandonCancelltion(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     
+
+    }
+}
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs"
new file mode 100644
index 0000000..f65b335
--- /dev/null
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs"
@@ -0,0 +1,763 @@
+锘縰sing DBUtility;
+using Model;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Web;
+using System.Web.Http;
+using System.Windows.Forms;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers.鍝佽川绠$悊
+{
+    public class QC_EnvironmentTestDotCheckBillController : ApiController
+    {
+        //鐜妫�娴嬪崟
+        
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//鍗曟嵁鐘舵�侊紙鏂板锛屼慨鏀癸紝娴忚锛屾洿鏂板崟浠凤紝鍙樻洿锛�
+        private json objJsonResult = new json();
+        public DataSet ds = new DataSet();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        public DAL.ClsQC_EnvironmentTestDotCheckBillMain OBill = new DAL.ClsQC_EnvironmentTestDotCheckBillMain();
+        public DAL.ClsQC_EnvironmentTestDotCheckBillMain BillOld = new DAL.ClsQC_EnvironmentTestDotCheckBillMain();
+
+        #region 鐜妫�娴嬮」鐩� 鏌ヨ       
+        [Route("QC_EnvironmentTestDotCheckBill/get锘縌C_EnvironmentTestDotCheckBillMainList")]
+        [HttpGet]
+        public object get锘縌C_EnvironmentTestDotCheckBillMainList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("QC_EnvironmentTestDotCheckBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_QC_EnvironmentTestDotCheckBillList order by 鍗曟嵁鍙� desc", "锘縣_v_QC_EnvironmentTestDotCheckBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from  h_v_QC_EnvironmentTestDotCheckBillList  where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "锘縣_v_QC_EnvironmentTestDotCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                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 = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐜妫�娴嬮」鐩� 鑾峰彇缂栬緫鍒楄〃鏁版嵁
+        [Route("QC_EnvironmentTestDotCheckBill/QC_EnvironmentTestDotCheckBillMainEditList")]
+        [HttpGet]
+        public object QC_EnvironmentTestDotCheckBillMainEditList(string linterid, string user)
+        {
+            try
+            {
+                List<DataTable> tableList = new List<DataTable>();
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ヨ澶辫触!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (linterid == null || linterid.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ds = oCN.RunProcReturn("select * from h_v_QC_EnvironmentTestDotCheckBillEdit where HInterID = " + linterid, " h_v_QC_EnvironmentTestDotCheckBillEdit");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鏌ヨ鎴愬姛锛�";
+                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("QC_EnvironmentTestDotCheckBill/Save锘縌C_EnvironmentTestDotCheckBillMain")]
+        [HttpPost]
+        public object Save锘縌C_EnvironmentTestDotCheckBillMain([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 refSav = sArray[2].ToString();//鎿嶄綔鏂瑰紡鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗
+            string user = sArray[3].ToString();//鐢ㄦ埛鍚�
+
+            string UserName = "";
+            string s = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                //淇濆瓨鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("QC_EnvironmentTestDotCheckBillMain_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsQC_EnvironmentTestDotCheckBillMain oBill = new DAL.ClsQC_EnvironmentTestDotCheckBillMain();
+                List<Model.Cls锘縌C_EnvironmentTestDotCheckBillMain> lsmain = new List<Model.Cls锘縌C_EnvironmentTestDotCheckBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_锘縌C_EnvironmentTestDotCheckBillMain(msg2);
+                foreach (Model.Cls锘縌C_EnvironmentTestDotCheckBillMain oItem in lsmain)
+                {
+                    if (refSav == "Add")
+                    {
+                        //鍗曟嵁鍙锋槸鍚﹂噸澶�
+                        if (OBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, OBill.omodel.HInterID))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒涓嶅厑璁镐繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+                    if (refSav == "Update")
+                    {
+                        if (OBill.ShowBill(oItem.HInterID, ref s) == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        //鍒ゆ柇鏄惁鍙紪杈�
+                        if (OBill.omodel.HChecker != "" && OBill.omodel.HChecker != null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (OBill.omodel.HBillStatus > 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹浜庝笉鍙紪杈戠姸鎬侊紝涓嶅厑璁镐慨鏀癸紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+
+                    }
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "7524";
+                    oItem.HBillSubType = "7524";
+
+
+
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
+
+                    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
+                List<Model.ClsQC_EnvironmentTestDotCheckBillSub> ls = new List<Model.ClsQC_EnvironmentTestDotCheckBillSub>();
+                ls = oListModels.getObjectByJson_QC_EnvironmentTestDotCheckBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsQC_EnvironmentTestDotCheckBillSub oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (refSav == "Add")
+                {
+
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else if (refSav == "Update")
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = false;
+                }
+                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("QC_EnvironmentTestDotCheckBill/Delete锘縌C_EnvironmentTestDotCheckBill")]
+        [HttpGet]
+        public object Delete锘縌C_EnvironmentTestDotCheckBill(string HInterID, string user)
+        {
+            try
+            {
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                oCN.RunProc("delete from QC_EnvironmentTestDotCheckBillMain where HInterID = " + HInterID);
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                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("QC_EnvironmentTestDotCheckBill/AuditQC_EnvironmentTestDotCheckBill")]
+        [HttpGet]
+        public object AuditQC_EnvironmentTestDotCheckBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_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 = "QC_EnvironmentTestDotCheckBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //瀹℃牳鍗曟嵁
+                        if (!BillOld.CheckBill(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 (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        //鍙嶅鏍稿崟鎹�
+                        if (!BillOld.AbandonCheck(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("QC_EnvironmentTestDotCheckBill/CloseQC_EnvironmentTestDotCheckBill")]
+        [HttpGet]
+        public object CloseQC_EnvironmentTestDotCheckBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_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 = "QC_EnvironmentTestDotCheckBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+
+                        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]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        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;
+                        }
+                        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("QC_EnvironmentTestDotCheckBill/DropQC_EnvironmentTestDotCheckBill")]
+        [HttpGet]
+        public object DropQC_EnvironmentTestDotCheckBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_Drop", 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 = "QC_EnvironmentTestDotCheckBillMain";
+                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 == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    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;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld.Cancelltion(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]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld.AbandonCancelltion(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     
+
+    }
+}
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_QualityReportsController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_QualityReportsController.cs"
index 6b83ec8..35b30b8 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_QualityReportsController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_QualityReportsController.cs"
@@ -1606,13 +1606,13 @@
         //鐐瑰嚮涓昏〃鏍肩殑娴佽浆鍗�,鏌ヨ瀛愯〃鏍兼暟鎹�
         [Route("QC_CustomerAppealReport/Get_QC_FiveMenOneRingList_Right")]
         [HttpGet]
-        public object Get_QC_FiveMenOneRingList_Right(string linterid,string SNs, string user)
+        public object Get_QC_FiveMenOneRingList_Right(string linterid,string HProcID,string SNs, string user)
         {
             try
             {
                 List<object> columnNameList = new List<object>();
 
-                ds = oCN.RunProcReturn("exec h_p_QC_FiveMenOneRingList_Query '" + linterid + "','" + SNs + "'", "h_p_QC_FiveMenOneRingList_Query");
+                ds = oCN.RunProcReturn("exec h_p_QC_FiveMenOneRingList_Query '" + linterid + "','"+ HProcID + "','" + SNs + "'", "h_p_QC_FiveMenOneRingList_Query");
 
                 // 閬嶅巻鎵�鏈夎〃
                 foreach (DataTable table in ds.Tables)
@@ -1842,15 +1842,24 @@
 
         [Route("QC_CustomerAppealReport/Get_TechParamList")]
         [HttpGet]
-        public object Get_TechParamList(string HMaterID, string HProID, string HEquId, string user)
+        public object Get_TechParamList(string HMaterID, string HProID, string HEquId, string HTeachName, string user)
         {
             try
             {
                 List<object> columnNameList = new List<object>();
-
-                ds = oCN.RunProcReturn("select c.HName 宸ヨ壓鍙傛暟,b.HDataForm 閲囬泦鏉ユ簮 from Gy_MaterialTechParamBillMain a " +
+                if (HTeachName=="")
+                {
+                    ds = oCN.RunProcReturn("select c.HName 宸ヨ壓鍙傛暟,b.HDataForm 閲囬泦鏉ユ簮 from Gy_MaterialTechParamBillMain a " +
                     "inner join Gy_MaterialTechParamBillSub b on a.HInterID = b.HInterID " +
-                    "left join Gy_TechnologyParameter c on b.HTechParamID = c.HItemID where a.HMaterID='" + HMaterID + "' and a.HProcID='"+ HProID + "' and a.HEquipID='"+ HEquId + "'", "SB_EquipICMOTechParamBillMain");
+                    "left join Gy_TechnologyParameter c on b.HTechParamID = c.HItemID where a.HMaterID='" + HMaterID + "' and a.HProcID='" + HProID + "' and a.HEquipID='" + HEquId + "'", "SB_EquipICMOTechParamBillMain");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("select c.HName 宸ヨ壓鍙傛暟,b.HDataForm 閲囬泦鏉ユ簮 from Gy_MaterialTechParamBillMain a " +
+                    "inner join Gy_MaterialTechParamBillSub b on a.HInterID = b.HInterID " +
+                    "left join Gy_TechnologyParameter c on b.HTechParamID = c.HItemID where a.HMaterID='" + HMaterID + "' and a.HProcID='" + HProID + "' and a.HEquipID='" + HEquId + "' and c.HName ='" + HTeachName + "'", "SB_EquipICMOTechParamBillMain");
+                }                
+                
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
                 {
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index f1dd4d5..65accf5 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -4474,14 +4474,14 @@
                                     FentityModel.Add("FQty", item["鍑�閲�"].ToString()); //鍑�閲�
                                     FentityModel.Add("FBASEUNITID", new JObject() { ["FNumber"] = item["鍩烘湰璁¢噺鍗曚綅浠g爜"].ToString() });  // 鍩烘湰鍗曚綅浠g爜
                                     FentityModel.Add("FBASEQTY", item["瀹炴敹鏁伴噺"].ToString()); //瀹炴敹鏁伴噺
-                                    FentityModel.Add("FSecUNITID", new JObject() { ["FNumber"] = item["搴撳瓨杈呰閲忓崟浣嶄唬鐮�"].ToString() });  // 搴撳瓨杈呰閲忓崟浣嶄唬鐮�
+                                    FentityModel.Add("FSecUNITID", new JObject() { ["FNumber"] = item["搴撳瓨杈呰閲忓崟浣嶄唬鐮�"].ToString() });  // 搴撳瓨杈呭崟浣�
                                     FentityModel.Add("FSecQTY", item["搴撳瓨杈呭崟浣嶅疄鏀舵暟閲�"].ToString()); //瀹炴敹鏁伴噺锛堝簱瀛樿緟鍗曚綅锛�
                                     FentityModel.Add("FOWNERTYPEID", item["璐т富绫诲瀷"].ToString()); //璐т富绫诲瀷  ???鏁板��
                                     FentityModel.Add("FOWNERID", new JObject() { ["FNumber"] = item["璐т富浠g爜"].ToString() });  // 璐т富浠g爜
                                     FentityModel.Add("FKEEPERTYPEID", item["淇濈鑰呯被鍨�"].ToString()); //淇濈鑰呯被鍨�  ???鏁板��
                                     FentityModel.Add("FKEEPERID", new JObject() { ["FNumber"] = item["淇濈鑰呬唬鐮�"].ToString() });  // 淇濈鑰呬唬鐮�
                                     FentityModel.Add("FAuxPropId", new JObject() { ["FAUXPROPID__FF100003"] = new JObject() { ["FNumber"] = item["杈呭姪灞炴�т唬鐮�"].ToString() } });  // 杈呭姪灞炴��
-                                    FentityModel.Add("FExtAuxUnitId", new JObject() { ["FNumber"] = item["杈呰閲忓崟浣嶄唬鐮�"].ToString() });  // 杈呰閲忓崟浣嶄唬鐮�
+                                    FentityModel.Add("FExtAuxUnitId", new JObject() { ["FNumber"] = item["杈呰閲忓崟浣嶄唬鐮�"].ToString() });  // 杈呭崟浣�
                                     FentityModel.Add("FExtAuxUnitQty", item["绠辨暟"].ToString()); //绠辨暟
                                     FentityModel.Add("F_TFKO_Assistant", new JObject() { ["FNumber"] = item["缃戝埆浠g爜"].ToString() });  // 缃戝埆 ???蹇呭~
                                     FentityModel.Add("F_TFKO_Assistant1", new JObject() { ["FNumber"] = item["瀛斿瀷浠g爜"].ToString() });  // 瀛斿瀷
@@ -4574,7 +4574,7 @@
                                         objJsonResult.data = null;
                                         return objJsonResult;
                                     }
-
+                                    LogService.Write("鍏ュ簱鐢宠鍗曞悓姝ラ噾铦朵簯鎴愬姛锛�" + JsonConvert.SerializeObject(jsonRoot));
                                     //鎻愪氦瀹℃牳
                                     string result1 = string.Empty;
                                     string result2 = string.Empty;
@@ -4613,6 +4613,13 @@
                             }
                         }
                     }
+
+                    sJXCode = sBarCode;
+
+                    //鏇存柊鏉$爜婧愬崟id淇℃伅
+                     sql = string.Format($@"update a set HSourceInterID = b.FID,HSourceEntryID = c.FEntryID from Gy_BarCodeBill a left join AIS20220609121235..TFKO_t_Cust100009 b on a.HSourceBillNo = b.FBillNo left join AIS20220609121235..TFKO_t_Cust_Entry100065 c on b.FID = C.FID and a.HBarcodeNo = c.FSEQ where HSourceBillNo = '{HSourceBillNo_TB}'");
+                    //鎵ц鏇存柊璇彞
+                    oCn.RunProc(sql);
                 }
                 else
                 {
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index 4812cf6..476fb14 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -1197,7 +1197,7 @@
         }
 
         /// <summary>
-        /// 澶勭悊鏂板鐜妫�娴嬪崟琛ㄧ殑json   
+        /// 澶勭悊鏂板鐜妫�娴嬮」鐩〃鐨刯son   
         /// </summary>
         /// <param name="jsonString"></param> 
         /// <returns></returns>
@@ -3006,6 +3006,56 @@
         }
 
         /// <summary>
+        /// 澶勭悊鏂板鐜妫�娴嬫柟妗堜富琛ㄧ殑json
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain> getObjectByJson_锘縂y_EnvironmentTestSchemeBillMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Cls锘縂y_EnvironmentTestSchemeBillMain>>(jsonString);
+            return list;
+        }
+
+
+        /// <summary>
+        /// 澶勭悊鏂板鐜妫�娴嬫柟妗堝瓙琛ㄧ殑json
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.ClsGy_EnvironmentTestSchemeBillSub> getObjectByJson_Gy_EnvironmentTestSchemeBillSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsGy_EnvironmentTestSchemeBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_EnvironmentTestSchemeBillSub>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
+        /// 澶勭悊鏂板鐜妫�娴嬪崟涓昏〃鐨刯son
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.Cls锘縌C_EnvironmentTestDotCheckBillMain> getObjectByJson_锘縌C_EnvironmentTestDotCheckBillMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.Cls锘縌C_EnvironmentTestDotCheckBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Cls锘縌C_EnvironmentTestDotCheckBillMain>>(jsonString);
+            return list;
+        }
+
+
+        /// <summary>
+        /// 澶勭悊鏂板鐜妫�娴嬪崟瀛愯〃鐨刯son
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.ClsQC_EnvironmentTestDotCheckBillSub> getObjectByJson_QC_EnvironmentTestDotCheckBillSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsQC_EnvironmentTestDotCheckBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_EnvironmentTestDotCheckBillSub>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
         /// 澶勭悊鏂板闃查敊楠岃瘉妫�鏌ヤ富琛ㄧ殑json
         /// </summary>
         /// <param name="jsonString"></param>
@@ -3422,6 +3472,18 @@
         /// </summary>
         /// <param name="jsonString"></param>
         /// <returns></returns>
+        public List<Models.ClsSc_MESBeginWorkBillSub> getObjectByJson_Sc_MESBeginWorkBillSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Models.ClsSc_MESBeginWorkBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.ClsSc_MESBeginWorkBillSub>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
+        /// 鎶ュ伐骞冲彴寮�宸ュ崟瀛愯〃json
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
         public List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(string jsonString)
         {
             jsonString = "[" + jsonString.ToString() + "]";
diff --git a/WebAPI/Models/ClsSc_MESBeginWorkBillSub.cs b/WebAPI/Models/ClsSc_MESBeginWorkBillSub.cs
index bb6d829..adc810a 100644
--- a/WebAPI/Models/ClsSc_MESBeginWorkBillSub.cs
+++ b/WebAPI/Models/ClsSc_MESBeginWorkBillSub.cs
@@ -5,7 +5,9 @@
 namespace WebAPI.Models
 {
     public class ClsSc_MESBeginWorkBillSub : DBUtility.ClsXt_BaseBillSub
-    { 
-        
+    {
+        public string HCardswiperMan { get; set; }
+        public DateTime HCardswiperDate { get; set; }
+        public long HEmpID { get; set; }
     }
 }
diff --git a/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user b/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
index 58b7d66..9a26d5f 100644
--- a/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
-    <History>True|2024-11-25T05:45:07.6935933Z;True|2024-11-25T13:43:59.0788650+08:00;False|2024-11-25T13:43:44.2225194+08:00;True|2024-11-25T08:54:05.5144014+08:00;False|2024-11-25T08:53:49.2284063+08:00;False|2024-11-22T09:53:13.7879664+08:00;True|2024-11-21T13:48:31.7056264+08:00;True|2024-11-21T13:46:55.0891551+08:00;True|2024-11-21T13:44:05.5221110+08:00;True|2024-11-21T13:43:39.1385899+08:00;False|2024-11-21T13:43:19.9351488+08:00;True|2024-11-20T11:33:52.0324053+08:00;True|2024-11-20T11:20:58.4917889+08:00;True|2024-11-20T11:03:46.9552623+08:00;True|2024-11-20T10:45:10.9517109+08:00;False|2024-11-20T10:44:58.3221116+08:00;False|2024-11-19T15:39:27.3889104+08:00;True|2024-11-19T14:42:32.0854561+08:00;True|2024-11-19T14:19:19.6198070+08:00;True|2024-11-19T14:13:08.2003750+08:00;False|2024-11-19T14:12:15.5442850+08:00;True|2024-11-18T13:05:41.0455534+08:00;True|2024-11-18T11:05:30.2819404+08:00;True|2024-11-18T10:51:07.1852818+08:00;False|2024-11-18T10:50:21.5098527+08:00;True|2024-11-18T10:15:38.5429366+08:00;True|2024-11-18T10:00:51.0847524+08:00;True|2024-11-18T09:34:52.1772715+08:00;True|2024-11-18T09:27:23.6013754+08:00;False|2024-11-18T09:26:00.9323551+08:00;True|2024-11-15T11:20:51.7576376+08:00;True|2024-11-15T11:11:17.5580168+08:00;True|2024-11-15T11:03:58.4142996+08:00;True|2024-11-15T10:44:50.5207827+08:00;True|2024-11-15T10:10:05.5550418+08:00;True|2024-11-15T09:49:30.6631382+08:00;False|2024-11-15T09:47:05.3973379+08:00;True|2024-11-14T18:31:54.8247681+08:00;True|2024-11-14T17:14:56.3660185+08:00;True|2024-11-14T16:49:44.7526912+08:00;True|2024-11-14T16:49:09.3427608+08:00;True|2024-11-14T15:59:00.2572264+08:00;True|2024-11-14T11:21:03.5110818+08:00;True|2024-11-14T10:51:10.7864658+08:00;False|2024-11-14T10:50:55.5384248+08:00;True|2024-11-14T10:29:13.6760158+08:00;False|2024-11-14T10:28:09.8622863+08:00;True|2024-11-13T17:48:46.4827219+08:00;True|2024-11-13T17:45:13.0659280+08:00;True|2024-11-13T16:01:55.2278671+08:00;False|2024-11-13T16:01:03.0040446+08:00;True|2024-11-12T17:24:06.3763535+08:00;True|2024-11-12T17:21:51.8459552+08:00;True|2024-11-12T17:11:57.9239909+08:00;True|2024-11-12T17:09:04.4322824+08:00;True|2024-11-12T17:07:12.1839548+08:00;True|2024-11-12T17:04:27.4579152+08:00;True|2024-11-12T17:03:59.6843282+08:00;True|2024-11-12T16:40:44.0714862+08:00;True|2024-11-12T16:36:27.7792764+08:00;True|2024-11-12T16:32:36.5262040+08:00;False|2024-11-12T16:32:23.9550194+08:00;True|2024-11-12T10:58:16.1987697+08:00;False|2024-11-12T10:58:04.8469631+08:00;True|2024-11-11T13:40:53.2582255+08:00;True|2024-11-11T13:37:45.0401833+08:00;True|2024-11-11T12:35:13.2429166+08:00;True|2024-11-11T11:27:29.0530688+08:00;False|2024-11-11T11:27:12.2765506+08:00;True|2024-11-08T15:52:17.1278870+08:00;False|2024-11-08T15:52:04.4379380+08:00;True|2024-11-07T18:27:41.8163960+08:00;False|2024-11-07T18:27:30.6037983+08:00;True|2024-11-06T15:55:27.6450488+08:00;True|2024-11-06T15:54:13.5957004+08:00;True|2024-11-06T15:25:33.3862531+08:00;True|2024-11-06T13:33:57.8502278+08:00;False|2024-11-06T13:33:39.2337086+08:00;True|2024-11-06T11:33:12.6755239+08:00;True|2024-11-05T18:34:17.7048247+08:00;True|2024-11-05T18:30:08.5724471+08:00;True|2024-11-05T18:24:35.5372980+08:00;True|2024-11-05T18:06:29.7644779+08:00;True|2024-11-05T17:53:50.9554703+08:00;True|2024-11-05T17:50:05.6376900+08:00;True|2024-11-05T11:13:46.2906508+08:00;True|2024-11-05T10:35:55.5423834+08:00;False|2024-11-05T10:35:20.4104039+08:00;True|2024-11-01T10:22:05.7636122+08:00;False|2024-11-01T10:21:33.2954398+08:00;True|2024-10-31T20:03:37.9075888+08:00;True|2024-10-31T18:35:31.6618415+08:00;True|2024-10-31T18:34:56.2479021+08:00;True|2024-10-31T09:43:29.0841188+08:00;False|2024-10-31T09:43:04.8780818+08:00;True|2024-10-30T18:42:11.0523067+08:00;True|2024-10-30T18:07:05.5603627+08:00;True|2024-10-30T18:03:15.3516621+08:00;True|2024-10-30T17:58:14.3276504+08:00;False|2024-10-30T17:57:44.5353118+08:00;True|2024-10-30T17:47:41.2889491+08:00;True|2024-10-30T17:19:36.6172721+08:00;True|2024-10-30T17:10:00.4399703+08:00;False|2024-10-30T17:08:57.6500450+08:00;True|2024-10-29T16:58:15.6006676+08:00;True|2024-10-29T16:51:56.8406649+08:00;True|2024-10-29T16:05:48.4297695+08:00;True|2024-10-29T15:12:15.1522377+08:00;True|2024-10-29T15:10:51.8431754+08:00;True|2024-10-29T11:21:01.5660940+08:00;False|2024-10-29T11:20:33.3958980+08:00;True|2024-10-28T17:51:26.7156861+08:00;False|2024-10-28T17:50:41.4388196+08:00;True|2024-10-28T13:34:14.8764262+08:00;True|2024-10-28T12:44:27.2083620+08:00;False|2024-10-28T12:43:57.5942717+08:00;True|2024-10-25T11:49:47.9817458+08:00;True|2024-10-25T11:49:34.4754546+08:00;True|2024-10-25T09:59:35.6471379+08:00;True|2024-10-25T09:47:46.8035540+08:00;True|2024-10-25T09:25:57.7872618+08:00;False|2024-10-25T09:25:30.0950732+08:00;True|2024-10-24T20:39:06.1992535+08:00;False|2024-10-24T20:38:33.1009731+08:00;True|2024-10-24T11:17:46.9974483+08:00;False|2024-10-24T11:17:17.0925356+08:00;True|2024-10-23T19:16:25.5189930+08:00;True|2024-10-23T17:10:44.4267777+08:00;False|2024-10-23T17:10:10.2947971+08:00;True|2024-10-23T14:13:22.6901287+08:00;False|2024-10-23T14:12:24.3997100+08:00;True|2024-10-22T16:25:12.9514711+08:00;False|2024-10-22T16:24:42.9025167+08:00;True|2024-10-22T10:22:33.9932601+08:00;False|2024-10-22T10:22:05.3030308+08:00;True|2024-10-21T17:53:29.9552741+08:00;True|2024-10-21T16:37:31.4159544+08:00;True|2024-10-21T16:35:43.6207036+08:00;True|2024-10-21T16:00:05.5040651+08:00;False|2024-10-21T15:59:35.9279259+08:00;True|2024-10-21T12:06:42.5768961+08:00;False|2024-10-21T12:06:16.6344662+08:00;True|2024-10-18T10:44:02.6495536+08:00;True|2024-10-18T09:55:47.9769914+08:00;True|2024-10-18T09:47:46.6365831+08:00;True|2024-10-18T09:46:40.4036657+08:00;True|2024-10-18T09:44:25.4598960+08:00;True|2024-10-18T09:30:07.6972377+08:00;False|2024-10-18T09:28:18.9251743+08:00;True|2024-10-17T12:13:34.8639685+08:00;True|2024-10-17T12:02:26.5251711+08:00;False|2024-10-17T12:01:31.3822430+08:00;True|2024-10-17T11:49:09.2395208+08:00;False|2024-10-17T11:48:38.0189241+08:00;True|2024-10-16T19:35:29.2047484+08:00;False|2024-10-16T19:32:43.0637947+08:00;True|2024-10-16T11:27:13.1263407+08:00;False|2024-10-16T11:25:49.8688677+08:00;True|2024-10-15T18:26:50.9948482+08:00;False|2024-10-15T18:26:23.6998750+08:00;True|2024-08-26T14:17:37.8502046+08:00;False|2024-08-26T14:16:09.8501361+08:00;True|2024-08-22T11:12:48.4249984+08:00;</History>
+    <History>True|2024-11-29T04:08:55.4868083Z;False|2024-11-29T12:08:37.0353185+08:00;True|2024-11-28T10:47:27.2071355+08:00;False|2024-11-28T10:47:13.6670955+08:00;True|2024-11-27T15:21:57.6747082+08:00;False|2024-11-27T15:20:07.2403056+08:00;True|2024-11-27T15:13:36.1461091+08:00;True|2024-11-27T14:34:35.5908753+08:00;False|2024-11-27T14:33:30.7118923+08:00;True|2024-11-26T15:16:44.1854927+08:00;True|2024-11-26T15:14:33.4021067+08:00;False|2024-11-26T15:14:07.9955135+08:00;True|2024-11-26T14:48:35.6408418+08:00;True|2024-11-26T14:45:00.7251556+08:00;True|2024-11-26T14:04:58.4232988+08:00;False|2024-11-26T14:04:28.1286675+08:00;True|2024-11-25T13:45:07.6935933+08:00;True|2024-11-25T13:43:59.0788650+08:00;False|2024-11-25T13:43:44.2225194+08:00;True|2024-11-25T08:54:05.5144014+08:00;False|2024-11-25T08:53:49.2284063+08:00;False|2024-11-22T09:53:13.7879664+08:00;True|2024-11-21T13:48:31.7056264+08:00;True|2024-11-21T13:46:55.0891551+08:00;True|2024-11-21T13:44:05.5221110+08:00;True|2024-11-21T13:43:39.1385899+08:00;False|2024-11-21T13:43:19.9351488+08:00;True|2024-11-20T11:33:52.0324053+08:00;True|2024-11-20T11:20:58.4917889+08:00;True|2024-11-20T11:03:46.9552623+08:00;True|2024-11-20T10:45:10.9517109+08:00;False|2024-11-20T10:44:58.3221116+08:00;False|2024-11-19T15:39:27.3889104+08:00;True|2024-11-19T14:42:32.0854561+08:00;True|2024-11-19T14:19:19.6198070+08:00;True|2024-11-19T14:13:08.2003750+08:00;False|2024-11-19T14:12:15.5442850+08:00;True|2024-11-18T13:05:41.0455534+08:00;True|2024-11-18T11:05:30.2819404+08:00;True|2024-11-18T10:51:07.1852818+08:00;False|2024-11-18T10:50:21.5098527+08:00;True|2024-11-18T10:15:38.5429366+08:00;True|2024-11-18T10:00:51.0847524+08:00;True|2024-11-18T09:34:52.1772715+08:00;True|2024-11-18T09:27:23.6013754+08:00;False|2024-11-18T09:26:00.9323551+08:00;True|2024-11-15T11:20:51.7576376+08:00;True|2024-11-15T11:11:17.5580168+08:00;True|2024-11-15T11:03:58.4142996+08:00;True|2024-11-15T10:44:50.5207827+08:00;True|2024-11-15T10:10:05.5550418+08:00;True|2024-11-15T09:49:30.6631382+08:00;False|2024-11-15T09:47:05.3973379+08:00;True|2024-11-14T18:31:54.8247681+08:00;True|2024-11-14T17:14:56.3660185+08:00;True|2024-11-14T16:49:44.7526912+08:00;True|2024-11-14T16:49:09.3427608+08:00;True|2024-11-14T15:59:00.2572264+08:00;True|2024-11-14T11:21:03.5110818+08:00;True|2024-11-14T10:51:10.7864658+08:00;False|2024-11-14T10:50:55.5384248+08:00;True|2024-11-14T10:29:13.6760158+08:00;False|2024-11-14T10:28:09.8622863+08:00;True|2024-11-13T17:48:46.4827219+08:00;True|2024-11-13T17:45:13.0659280+08:00;True|2024-11-13T16:01:55.2278671+08:00;False|2024-11-13T16:01:03.0040446+08:00;True|2024-11-12T17:24:06.3763535+08:00;True|2024-11-12T17:21:51.8459552+08:00;True|2024-11-12T17:11:57.9239909+08:00;True|2024-11-12T17:09:04.4322824+08:00;True|2024-11-12T17:07:12.1839548+08:00;True|2024-11-12T17:04:27.4579152+08:00;True|2024-11-12T17:03:59.6843282+08:00;True|2024-11-12T16:40:44.0714862+08:00;True|2024-11-12T16:36:27.7792764+08:00;True|2024-11-12T16:32:36.5262040+08:00;False|2024-11-12T16:32:23.9550194+08:00;True|2024-11-12T10:58:16.1987697+08:00;False|2024-11-12T10:58:04.8469631+08:00;True|2024-11-11T13:40:53.2582255+08:00;True|2024-11-11T13:37:45.0401833+08:00;True|2024-11-11T12:35:13.2429166+08:00;True|2024-11-11T11:27:29.0530688+08:00;False|2024-11-11T11:27:12.2765506+08:00;True|2024-11-08T15:52:17.1278870+08:00;False|2024-11-08T15:52:04.4379380+08:00;True|2024-11-07T18:27:41.8163960+08:00;False|2024-11-07T18:27:30.6037983+08:00;True|2024-11-06T15:55:27.6450488+08:00;True|2024-11-06T15:54:13.5957004+08:00;True|2024-11-06T15:25:33.3862531+08:00;True|2024-11-06T13:33:57.8502278+08:00;False|2024-11-06T13:33:39.2337086+08:00;True|2024-11-06T11:33:12.6755239+08:00;True|2024-11-05T18:34:17.7048247+08:00;True|2024-11-05T18:30:08.5724471+08:00;True|2024-11-05T18:24:35.5372980+08:00;True|2024-11-05T18:06:29.7644779+08:00;True|2024-11-05T17:53:50.9554703+08:00;True|2024-11-05T17:50:05.6376900+08:00;True|2024-11-05T11:13:46.2906508+08:00;True|2024-11-05T10:35:55.5423834+08:00;False|2024-11-05T10:35:20.4104039+08:00;True|2024-11-01T10:22:05.7636122+08:00;False|2024-11-01T10:21:33.2954398+08:00;True|2024-10-31T20:03:37.9075888+08:00;True|2024-10-31T18:35:31.6618415+08:00;True|2024-10-31T18:34:56.2479021+08:00;True|2024-10-31T09:43:29.0841188+08:00;False|2024-10-31T09:43:04.8780818+08:00;True|2024-10-30T18:42:11.0523067+08:00;True|2024-10-30T18:07:05.5603627+08:00;True|2024-10-30T18:03:15.3516621+08:00;True|2024-10-30T17:58:14.3276504+08:00;False|2024-10-30T17:57:44.5353118+08:00;True|2024-10-30T17:47:41.2889491+08:00;True|2024-10-30T17:19:36.6172721+08:00;True|2024-10-30T17:10:00.4399703+08:00;False|2024-10-30T17:08:57.6500450+08:00;True|2024-10-29T16:58:15.6006676+08:00;True|2024-10-29T16:51:56.8406649+08:00;True|2024-10-29T16:05:48.4297695+08:00;True|2024-10-29T15:12:15.1522377+08:00;True|2024-10-29T15:10:51.8431754+08:00;True|2024-10-29T11:21:01.5660940+08:00;False|2024-10-29T11:20:33.3958980+08:00;True|2024-10-28T17:51:26.7156861+08:00;False|2024-10-28T17:50:41.4388196+08:00;True|2024-10-28T13:34:14.8764262+08:00;True|2024-10-28T12:44:27.2083620+08:00;False|2024-10-28T12:43:57.5942717+08:00;True|2024-10-25T11:49:47.9817458+08:00;True|2024-10-25T11:49:34.4754546+08:00;True|2024-10-25T09:59:35.6471379+08:00;True|2024-10-25T09:47:46.8035540+08:00;True|2024-10-25T09:25:57.7872618+08:00;False|2024-10-25T09:25:30.0950732+08:00;True|2024-10-24T20:39:06.1992535+08:00;False|2024-10-24T20:38:33.1009731+08:00;True|2024-10-24T11:17:46.9974483+08:00;False|2024-10-24T11:17:17.0925356+08:00;True|2024-10-23T19:16:25.5189930+08:00;True|2024-10-23T17:10:44.4267777+08:00;False|2024-10-23T17:10:10.2947971+08:00;True|2024-10-23T14:13:22.6901287+08:00;False|2024-10-23T14:12:24.3997100+08:00;True|2024-10-22T16:25:12.9514711+08:00;False|2024-10-22T16:24:42.9025167+08:00;True|2024-10-22T10:22:33.9932601+08:00;False|2024-10-22T10:22:05.3030308+08:00;True|2024-10-21T17:53:29.9552741+08:00;True|2024-10-21T16:37:31.4159544+08:00;True|2024-10-21T16:35:43.6207036+08:00;True|2024-10-21T16:00:05.5040651+08:00;False|2024-10-21T15:59:35.9279259+08:00;True|2024-10-21T12:06:42.5768961+08:00;False|2024-10-21T12:06:16.6344662+08:00;True|2024-10-18T10:44:02.6495536+08:00;True|2024-10-18T09:55:47.9769914+08:00;True|2024-10-18T09:47:46.6365831+08:00;True|2024-10-18T09:46:40.4036657+08:00;True|2024-10-18T09:44:25.4598960+08:00;True|2024-10-18T09:30:07.6972377+08:00;False|2024-10-18T09:28:18.9251743+08:00;True|2024-10-17T12:13:34.8639685+08:00;True|2024-10-17T12:02:26.5251711+08:00;False|2024-10-17T12:01:31.3822430+08:00;True|2024-10-17T11:49:09.2395208+08:00;False|2024-10-17T11:48:38.0189241+08:00;True|2024-10-16T19:35:29.2047484+08:00;False|2024-10-16T19:32:43.0637947+08:00;True|2024-10-16T11:27:13.1263407+08:00;False|2024-10-16T11:25:49.8688677+08:00;True|2024-10-15T18:26:50.9948482+08:00;False|2024-10-15T18:26:23.6998750+08:00;True|2024-08-26T14:17:37.8502046+08:00;False|2024-08-26T14:16:09.8501361+08:00;True|2024-08-22T11:12:48.4249984+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
@@ -45,19 +45,19 @@
       <publishTime>02/22/2013 16:43:40</publishTime>
     </File>
     <File Include="bin/BLL.dll">
-      <publishTime>11/21/2024 17:41:49</publishTime>
+      <publishTime>11/27/2024 15:21:43</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>11/21/2024 17:41:49</publishTime>
+      <publishTime>11/27/2024 15:21:43</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>11/21/2024 17:41:47</publishTime>
+      <publishTime>11/27/2024 15:21:41</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>11/21/2024 17:41:47</publishTime>
+      <publishTime>11/27/2024 15:21:41</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
@@ -111,10 +111,10 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>11/21/2024 17:41:44</publishTime>
+      <publishTime>11/27/2024 14:34:16</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>11/21/2024 17:41:44</publishTime>
+      <publishTime>11/27/2024 14:34:16</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
       <publishTime>05/25/2024 09:46:41</publishTime>
@@ -285,19 +285,19 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>11/21/2024 16:43:30</publishTime>
+      <publishTime>11/25/2024 16:15:57</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>11/21/2024 16:43:30</publishTime>
+      <publishTime>11/25/2024 16:15:57</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>11/25/2024 13:44:55</publishTime>
+      <publishTime>11/29/2024 12:08:30</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>11/25/2024 13:44:55</publishTime>
+      <publishTime>11/29/2024 12:08:30</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index bb89ef7..4c53b35 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -451,6 +451,8 @@
     <Compile Include="Controllers\ZLGL\BaseSet\Gy_QualityController.cs" />
     <Compile Include="Controllers\浜轰簨绠$悊\浜哄憳灞ュ巻\HR_PersonnelResumeController.cs" />
     <Compile Include="Controllers\浠撳瓨绠$悊\Kf_MoveStockBillController.cs" />
+    <Compile Include="Controllers\鍝佽川绠$悊\鍩虹璧勬枡\Gy_BaseInformationController.cs" />
+    <Compile Include="Controllers\鍝佽川绠$悊\鐜妫�娴嬪崟\QC_EnvironmentTestDotCheckBillController.cs" />
     <Compile Include="Controllers\鍝佽川绠$悊\璐ㄩ噺鏈堝害鐩爣鍗昞QC_MonthTarGetBillController.cs" />
     <Compile Include="Controllers\CJGL\Qc_PreventErrMouldCheckBillController.cs" />
     <Compile Include="Controllers\CJGL\Sc_WorkBeginDotCheckBillController.cs" />

--
Gitblit v1.9.1