chenhaozhe
2026-04-16 59708a79ef698d66de3cd4da04346afd373d1c5e
WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
@@ -10,6 +10,7 @@
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using System.Linq;
namespace WebAPI.Controllers
{
@@ -51,6 +52,7 @@
            string msg4 = sArray[2].ToString();
            string msg5 = sArray[3].ToString();
            string HBillSubType = sArray[4].ToString();
            string msg6 = sArray.Length > 5 ? sArray[5] : ""; // 这里安全了
            string HComputerName = SystemInformation.ComputerName; //设备名称    
            string UserName = "";
@@ -90,7 +92,7 @@
                {
                    UserName = oItem.HMaker;  //制单人
                    oItem.HBillType = "3772";
                    oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : "3772";
                    oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : oItem.HBillSubType;
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    oItem.HDate = HBillSubType == "SUB" ? DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")) : oItem.HDate;
@@ -123,59 +125,65 @@
                    oBill.DetailColl.Add(oItemSub);
                }
                //返工表体数据
                //按 },{来拆分数组 //去掉【和】
                List<Model.Sc_ProcessExchangeBillSub_HRelationBack> ls2 = new List<Model.Sc_ProcessExchangeBillSub_HRelationBack>();
                if (!string.IsNullOrEmpty(msg6))
                {
                    // 只有 msg6 不为空才走这里
                    msg6 = msg6.Substring(1, msg6.Length - 2);
                    msg6 = msg6.Replace("\\", "");
                    msg6 = msg6.Replace("\n", "");
                    // 这里必须传 msg6,不是 msg3!!!
                    ls2 = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_HRelationBack(msg6);
                }
                int i2 = 0;
                foreach (Model.Sc_ProcessExchangeBillSub_HRelationBack oItemSub2 in ls2)
                {
                    i2++;
                    oItemSub2.HEntryID = i2;
                    oItemSub2.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    // 在这里直接给默认值!
                    // ======================
                    oItemSub2.HProcExchInterID = oItemSub2.HProcExchInterID > 0 ? oItemSub2.HProcExchInterID : 0;
                    oItemSub2.HProcExchEntryID = oItemSub2.HProcExchEntryID > 0 ? oItemSub2.HProcExchEntryID : 0;
                    oItemSub2.HProcExchBillNo = string.IsNullOrEmpty(oItemSub2.HProcExchBillNo) ? "" : oItemSub2.HProcExchBillNo;
                    oItemSub2.HICMOInterID = oItemSub2.HICMOInterID > 0 ? oItemSub2.HICMOInterID : 0;
                    oItemSub2.HICMOEntryID = oItemSub2.HICMOEntryID > 0 ? oItemSub2.HICMOEntryID : 0;
                    oItemSub2.HICMOBillNo = string.IsNullOrEmpty(oItemSub2.HICMOBillNo) ? "" : oItemSub2.HICMOBillNo;
                    oItemSub2.HStationOutInterID = oItemSub2.HStationOutInterID > 0 ? oItemSub2.HStationOutInterID : 0;
                    oItemSub2.HStationOutBillNo = string.IsNullOrEmpty(oItemSub2.HStationOutBillNo) ? "" : oItemSub2.HStationOutBillNo;
                    oBill.DetailColl2.Add(oItemSub2);
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (msg5 == "xz")
                {
                    LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo);
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    //测试语句===========================================================================================================
                    string msg_str = "";
                    string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " +
                                "from Sc_ProcessExchangeBillMain as a " +
                                "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " +
                                "where a.HInterID = " + oBill.omodel.HInterID;
                    DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain");
                    if (ds_str.Tables[0].Rows.Count > 0)
                    {
                        msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:";
                        for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++)
                        {
                            msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ",";
                        }
                    }
                    //==============================================================================================================
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo  + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",修改工序流转卡单据:" + oBill.omodel.HBillNo);
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //测试语句===========================================================================================================
                    string msg_str = "";
                    string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " +
                                "from Sc_ProcessExchangeBillMain as a " +
                                "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " +
                                "where a.HInterID = " + oBill.omodel.HInterID;
                    DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain");
                    if (ds_str.Tables[0].Rows.Count > 0)
                    {
                        msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:";
                        for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++)
                        {
                            msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ",";
                        }
                    }
                    //==============================================================================================================
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
@@ -207,7 +215,6 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "[0000-1-050]保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
@@ -893,6 +900,37 @@
                                            加工车间代码 HDeptNumber,加工车间 HDeptName,出站报废关联数量 HRelationQty_OutBad,SN过站控制 HSNCtrl,HRoutingInterID HRoutingBillMainID,HRoutingEntryID HRoutingBillEntryID
                                            from h_v_Sc_ProcessExchangeBillQuerySub");
                ds = oCN.RunProcReturn(sql+ " where hmainid="+ HInterID + "  order by cast(流水号 as int) ", "h_v_Sc_ProcessExchangeBillQuerySub");
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "[0000-1-037]获取信息成功!";
                objJsonResult.data = ds.Tables[0];
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-045]没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
            }
            return objJsonResult;
        }
        // 工序流转卡返工信息
        [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub_Back")]
        [HttpGet]
        public object GetProcessExchangeBillSub_Back(string HInterID)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql = string.Format(@"SELECT ISNULL(HSourceInterID, 0) AS HSourceInterID,ISNULL(HSourceEntryID, 0) AS HSourceEntryID,ISNULL(HSourceBillNo, '') AS HSourceBillNo,
                ISNULL(HSourceBillType, '') AS HSourceBillType,ISNULL(HProcExchInterID, 0) AS HProcExchInterID,ISNULL(HProcExchEntryID, 0) AS HProcExchEntryID,
                ISNULL(HProcExchBillNo, '') AS HProcExchBillNo,ISNULL(HICMOInterID, 0) AS HICMOInterID,ISNULL(HICMOEntryID, 0) AS HICMOEntryID,
                ISNULL(HICMOBillNo, '') AS HICMOBillNo,ISNULL(HStationOutInterID, 0) AS HStationOutInterID,ISNULL(HStationOutBillNo, '') AS HStationOutBillNo
                FROM Sc_ProcessExchangeBillSub_HRelationBack where HInterID=" + HInterID + "  order by HEntryID ");
                ds = oCN.RunProcReturn(sql, "Sc_ProcessExchangeBillSub_HRelationBack");
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "[0000-1-037]获取信息成功!";
@@ -2155,12 +2193,7 @@
        }
        #endregion
        #region[批量拆分下推-保存按钮]
        /// <summary>
        /// 新增单据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        #region[批量拆分下推-保存按钮]
        [Route("Sc_ProcessExchangeBill/AddBill_BatchSplit")]
        [HttpPost]
        public object AddBill_BatchSplit([FromBody] JObject sMainSub)
@@ -2490,5 +2523,415 @@
        }
        #endregion
        #region[生产订单多行下推生成流转卡]
        /// <summary>
        /// 返回拆分后的生产订单信息
        /// </summary>
        /// <param name="hmainid">生产任务单主子ID</param>
        /// <returns>object</returns>
        [Route("Sc_ProcessExchangeBill/Sc_ICMO_DH")]
        [HttpGet]
        public object Sc_ICMO_DH(string HInterID, string user)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "源单主子id为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string[] HInterEntryIDArr = HInterID.Split(',');
                DataTable dt = new DataTable();
                for (int i = 0; i < HInterEntryIDArr.Length; i++)
                {
                    string[] HIDs = HInterEntryIDArr[i].Split('@');
                    string sql = "exec h_p_Sc_ProcessExchange_DH '" + HIDs[0] + "','" + HIDs[1] + "'";
                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchange_DH");
                    if (i == 0)
                    {
                        dt = ds.Tables[0];
                    }
                    else
                    {
                        foreach (DataRow item in ds.Tables[0].Rows)
                        {
                            DataRow dataRow = dt.NewRow();
                            dataRow.ItemArray = item.ItemArray;
                            dt.Rows.Add(dataRow);
                        }
                    }
                }
                if (dt == null || dt.Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "拆分生产订单无数据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = dt;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region[生产订单多行下推-保存按钮]
        [Route("Sc_ProcessExchangeBill/Add_Sc_ICMO_DH")]
        [HttpPost]
        public object Add_Sc_ICMO_DH([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 HUser = sArray[1].ToString();//用户
            string HComputerName = SystemInformation.ComputerName; //设备名称
            string UserName = "";
            ListModels oListModels = new ListModels();
            bool bResult = true;
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, HUser))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "流转卡无保存权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill();
                //表体数据
                //按 },{来拆分数组 //去掉【和】
                msg2 = msg2.Substring(1, msg2.Length - 2);
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Model.ClsSc_ProcessExchangeBillSub_BatchSplit> ls = new List<Model.ClsSc_ProcessExchangeBillSub_BatchSplit>();
                ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_BatchSplit(msg2);
                DateTime dt = DateTime.Now;
                string sql = "";
                Int64 HInterID = 0;
                string HBillNo = "";
                Int64 HICMOInterID = 0;
                Int64 HICMOEntryID = 0;
                string HICMOBillNo = "";
                double HQty = 0;
                double HProQty = 0;
                foreach (Model.ClsSc_ProcessExchangeBillSub_BatchSplit oItemSub in ls)
                {
                    //HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("3772", ref DBUtility.ClsPub.sExeReturnInfo, true);
                    HInterID = oItemSub.HInterID;
                    HBillNo = oItemSub.HBillNo;
                    HICMOInterID = oItemSub.HICMOInterID;
                    HICMOEntryID = oItemSub.HICMOEntryID;
                    HICMOBillNo = oItemSub.HICMOBillNo;
                    HQty = oItemSub.HQty;
                    HProQty = oItemSub.HProQty;
                    sql = "select * from h_v_Sc_ProcessExchangeBill_BatchSplit where hmainid = " + oItemSub.HICMOInterID + " and hentryid = "
                         + oItemSub.HICMOEntryID + " and HRoutingID = " + oItemSub.HRoutingInterID.ToString();
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessExchangeBill_BatchSplit");
                    //主表赋值
                    if (ds.Tables[0].Rows.Count > 0 && ds != null)
                    {
                        oBill.omodel.HInterID = HInterID;
                        oBill.omodel.HBillNo = HBillNo;
                        oBill.omodel.HBillSubType = "3772";
                        oBill.omodel.HMainSourceBillSubType = "3710";
                        oBill.omodel.HDate = oItemSub.HDate;
                        oBill.omodel.HMaker = HUser;
                        oBill.omodel.HMakeDate = System.DateTime.Now.ToString("G");
                        oBill.omodel.HPrevMainSourceInterID = 0;
                        oBill.omodel.HYear = DBUtility.ClsPub.isLong(oItemSub.HDate.Year);
                        oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(oItemSub.HDate.Month);
                        oBill.omodel.HRemark = "";
                        oBill.omodel.HBatchNo = oItemSub.HBatchNo;
                        oBill.omodel.HProjectNum = oItemSub.HProjectNum;
                        oBill.omodel.HMateOutBatchNo = oItemSub.HMateOutBatchNo;
                        oBill.omodel.HMouldNum = oItemSub.HMouldNum;
                        oBill.omodel.HMainMaterID = 0;
                        oBill.omodel.HKeyMaterID = 0;
                        oBill.omodel.HNo = 0;
                        oBill.omodel.HOrderProcNO = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString();
                        oBill.omodel.HWWOrderInterID = 0;
                        oBill.omodel.HWWOrderEntryID = 0;
                        oBill.omodel.HWWOrderBillNo = "";
                        oBill.omodel.HEquipMentID = 0; //!
                        oBill.omodel.HICMOBillNo = oItemSub.HICMOBillNo;
                        oBill.omodel.HMaterID = oItemSub.HMaterID;
                        oBill.omodel.HMaterNumber = ds.Tables[0].Rows[0]["HMaterNumber"].ToString();
                        oBill.omodel.HUnitID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HUnitID"]);
                        oBill.omodel.HUnitNumber = ds.Tables[0].Rows[0]["HUnitNumber"].ToString();
                        oBill.omodel.HMaterID2 = oItemSub.HMaterID;
                        oBill.omodel.HPlanQty = oItemSub.HQty;
                        oBill.omodel.HQty = oItemSub.HProQty;
                        oBill.omodel.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oBill.omodel.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oBill.omodel.HExplanation = "";
                        oBill.omodel.HInnerBillNo = "";
                        oBill.omodel.HSupID = 0;
                        oBill.omodel.HWorkShopID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]);
                        oBill.omodel.HWorkTypeNum = "";
                        oBill.omodel.HProdMaterCode = "";
                        oBill.omodel.HSeOrderBillNo = ds.Tables[0].Rows[0]["HSeOrderBillNo"].ToString();
                        oBill.omodel.HCusShortName = "";
                        oBill.omodel.HCusNeedMaterial = "";
                        oBill.omodel.HPlanSendGoodsDate = dt.ToShortDateString().ToString();
                        oBill.omodel.HProdMaterName = "";
                        oBill.omodel.HCusName = "";
                        oBill.omodel.HWorkRemark = "";
                        oBill.omodel.HImportNote = "";
                        oBill.omodel.HMaterNumber_A = "";
                        oBill.omodel.HMaterNumber_B = "";
                        oBill.omodel.HMaterNumber_C = "";
                        oBill.omodel.HMaterNumber_D = "";
                        oBill.omodel.HProdType = "";
                        oBill.omodel.HMaterShortName = "";
                        oBill.omodel.HMaterIDA = "";
                        oBill.omodel.HMaterIDB = "";
                        oBill.omodel.HMaterIDC = "";
                        oBill.omodel.HMaterIDD = "";
                        oBill.omodel.HICMOInterID = oItemSub.HICMOInterID;
                        oBill.omodel.HICMOEntryID = oItemSub.HICMOEntryID;
                        oBill.omodel.HPicNumVer = "";
                        oBill.omodel.HPicNumAssemble = "";
                        oBill.omodel.HMaterTexture = "";
                        oBill.omodel.HProductNum = "";
                        oBill.omodel.HVerNum = "";
                        oBill.omodel.HPRDORGID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HPRDORGID"]);
                        oBill.omodel.HBLFlag = false;
                        oBill.omodel.HCusNumber = "";
                        oBill.omodel.HPickLabel = "";
                        oBill.omodel.HPickLabelNumber = "";
                        oBill.omodel.HXTNumber = "";
                        oBill.omodel.HXTModel = "";
                        oBill.omodel.HWorkBillSortNo = "";//!
                        oBill.omodel.HRoutingBillID = oItemSub.HRoutingInterID.ToString();
                        oBill.omodel.HMaterModel = ds.Tables[0].Rows[0]["HMaterModel"].ToString();
                        oBill.omodel.HWidth = 0;
                        oBill.omodel.HWeight = 0;
                        oBill.omodel.HAuxQty = 0;
                        oBill.omodel.HAuxUnit = 0;
                        oBill.omodel.HAuxQty2 = 0;
                        oBill.omodel.HAuxUnit2 = 0;
                        oBill.omodel.HSplitNo = 0;
                        oBill.omodel.HHeight = "";
                        oBill.omodel.HInches = "";
                        oBill.omodel.HAl1Long = "";
                        oBill.omodel.HDensity = "";
                        oBill.omodel.HTela = "";
                        oBill.omodel.HUnderTela = "";
                        oBill.omodel.HSizing = "";
                        oBill.omodel.HSellDate = dt.ToShortDateString().ToString();
                        oBill.omodel.HRemark2 = "批量拆分下推";
                        oBill.omodel.HRemark3 = "";
                        oBill.omodel.HEmpID = 0;
                        oBill.omodel.HCusID = 0;
                        oBill.omodel.HColorRemark = "";
                        oBill.omodel.HSplitSumQty = 0;
                        oBill.omodel.HSplitColorQty = 0;
                        oBill.omodel.HMachineLine = "";
                        oBill.omodel.HMainSourceInterID = 0;
                        oBill.omodel.HMainSourceEntryID = 0;
                        oBill.omodel.HMainSourceBillNo = "";
                        oBill.omodel.HOrderLevID = 0;
                        oBill.omodel.HWidth_New = 0;
                        oBill.omodel.HRemark_New = "";
                        oBill.omodel.HWeight_New = 0;
                        oBill.omodel.HPlanOrderProcNo = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString();
                    }
                    //子表赋值
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        Model.ClsSc_ProcessExchangeBillSub oItemSubs = new Model.ClsSc_ProcessExchangeBillSub();
                        oItemSubs.HEntryID = i + 1;
                        oItemSubs.HBillNo_bak = HBillNo;
                        oItemSubs.HCloseMan = "";
                        oItemSubs.HEntryCloseDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oItemSubs.HCloseType = false;
                        oItemSubs.HRemark = "";
                        oItemSubs.HSourceInterID = HICMOInterID;
                        oItemSubs.HSourceEntryID = HICMOEntryID;
                        oItemSubs.HSourceBillNo = HICMOBillNo;
                        oItemSubs.HSourceBillType = "3710";
                        oItemSubs.HRelationQty = 0;
                        oItemSubs.HRelationMoney = 0;
                        oItemSubs.HRelationQty_In = 0;
                        oItemSubs.HRelationQty_Out = 0;
                        oItemSubs.HRelationQty_WWOrder = 0;
                        oItemSubs.HRelationQty_Bad = 0;
                        oItemSubs.HProcNo = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcNo"]);
                        oItemSubs.HProcID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcID"]);
                        oItemSubs.HProcNumber = ds.Tables[0].Rows[i]["HProcNumber"].ToString();
                        oItemSubs.HWorkRemark = "";
                        oItemSubs.HCenterID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HCenterID"]);
                        oItemSubs.HDeptID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HDeptID"]);
                        oItemSubs.HDeptNumber = ds.Tables[0].Rows[i]["HDeptNumber"].ToString();
                        oItemSubs.HGroupID = 0;
                        oItemSubs.HGroupNumber = oItemSub.HGroupNumber;
                        oItemSubs.HWorkerID = 0;
                        oItemSubs.HWorkerNumber = "";
                        oItemSubs.HSourceID = 0;
                        oItemSubs.HQty = HProQty;
                        oItemSubs.HTimeUnit = "";
                        oItemSubs.HPlanWorkTimes = 0;
                        oItemSubs.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oItemSubs.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oItemSubs.HRelBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oItemSubs.HRelEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString());
                        oItemSubs.HReadyTime = 0;
                        oItemSubs.HQueueTime = 0;
                        oItemSubs.HMoveTime = 0;
                        oItemSubs.HBeginDayQty = 0;
                        oItemSubs.HBeginFixQty = 0;
                        oItemSubs.HFixWorkDays = 0;
                        oItemSubs.HTrunWorkDays = 0;
                        oItemSubs.HReadyTimes = 0;
                        oItemSubs.HMyWorkDays = 0;
                        oItemSubs.HOutPrice = 0;
                        oItemSubs.HOutMoney = 0;
                        oItemSubs.HPassRate = 0;
                        oItemSubs.HLastProc = "";
                        oItemSubs.HKeyProc = "";
                        oItemSubs.HFstProc = "";
                        oItemSubs.HICMOInterID = HICMOInterID;
                        oItemSubs.HICMOBillNo = HICMOBillNo;
                        oItemSubs.HWWOrderInterID = 0;
                        oItemSubs.HWWOrderEntryID = 0;
                        oItemSubs.HWWOrderBillNo = "";
                        oItemSubs.HReportQty = 0;
                        oItemSubs.HBackProc = false;
                        oItemSubs.HSupID = 0;
                        oItemSubs.HSupFlag = false;
                        oItemSubs.HOverRate = 0;
                        oItemSubs.HMaxQty = 0;
                        oItemSubs.HTechnologyParameter = "";
                        oItemSubs.HProcCheckNote = "";
                        oItemSubs.HPicNum = "";
                        oItemSubs.HMouldNo = "";
                        oItemSubs.HProcWorkNum = "";
                        oItemSubs.HSeOrderInterID = 0;
                        oItemSubs.HSeOrderEntryID = 0;
                        oItemSubs.HSNCtrl = false;
                        oItemSubs.HRoutingBillMainID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingID"]);
                        oItemSubs.HRoutingBillEntryID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingEntryID"]);
                        oBill.DetailColl.Add(oItemSubs);//添加明细行值
                    }
                    //调用保存方法
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    oBill.DetailColl.Clear();//清空明细行值
                    if (!bResult)
                    {
                        break;
                    }
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
        #region[新增时获取表体数据(返工申请单)]
        [Route("Sc_ProcessExchangeBill/GetProcExchangeWorkBackList")]
        [HttpGet]
        public object GetProcExchangeWorkBackList(string HInterID)
        {
            DataSet ds;
            try
            {
                //拆分并过滤出有效数字ID
                var idList = HInterID.Split(',')  // 1. 按逗号分割字符串
                      .Select(s => s.Trim())  // 2. 去除每个元素的空格
                      .Where(s => int.TryParse(s, out _))  // 3. 只保留能转成数字的字符串
                      .ToList();  // 4. 转成List集合
                // 构建安全的 IN 子句
                string inClause = string.Join(",", idList);
                List<object> columnNameList = new List<object>();
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcExchWorkBackBillList_Query where 1=1 and hmainid in (" + inClause + ")", "h_v_Sc_ProcExchWorkBackBillList_Query");
                //添加列名
                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));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.list = columnNameList;
                objJsonResult.Message = "[0000-1-037]获取信息成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-038]没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}