wtt
2024-10-22 6768e9f5d677e53e6d788d49e1ca5b9755236ca4
WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
@@ -1,6 +1,7 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using SyntacticSugar.constant;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -827,8 +828,8 @@
                string sql = string.Format(@"select 流水号 HProcNo,HProcID,工序代码 HProcNumber,工序名称 HProcName,加工说明 HWorkRemark,HCenterID,工作中心代码 HCenterNumber,
                                                工作中心 HCenterName,HSupID,供应商代码 HSupNumber,供应商 HSupName,isEntrust HSupFlag,计划数量 HQty,加工单价 HOutPrice, 表体备注 HRemark,
                                            进站关联数量 HRelationQty_In,出站关联数量 HRelationQty_Out,委外工单数量 HRelationQty_WWOrder,不合格数量 HRelationQty_Bad,超额比例 HOverRate,
                                            良率 HPassRate,累计良率 HSumPassRate,图纸编号 HPicNum,本工序确认记录 HProcCheckNote,工艺参数 HTechnologyParameter,HDeptID,
                                            加工车间代码 HDeptNumber,加工车间 HDeptName,出站报废关联数量 HRelationQty_OutBad,SN过站控制 HSNCtrl
                                            良率 HPassRate,累计良率 HSumPassRate,图纸编号 HPicNum,本工序确认记录 HProcCheckNote,工艺参数 HTechnologyParameter,HDeptID,HSourceID,
                                            加工车间代码 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";
@@ -1065,7 +1066,7 @@
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql = string.Format(@"exec h_p_Sc_GetProcessExchangeBillSubTech ");
                ds = oCN.RunProcReturn(sql +  HInterID, "h_p_Sc_GetProcessExchangeBillSubTech");
                ds = oCN.RunProcReturn(sql + " '" +  HInterID + "'", "h_p_Sc_GetProcessExchangeBillSubTech");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
@@ -1911,6 +1912,59 @@
        }
        #endregion
        #region 工序流转卡分页列表
        [Route("Sc_ProcessExchangeBillList/page")]
        [HttpGet]
        public json page(string sWhere, string user, int page, int size)
        {
            json res = new json();
            try
            {
                List<object> columnNameList = new List<object>();
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log_second("Sc_ProcessExchangeBill_SubQuery", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_Query " + page + "," + size + ",''", "h_p_Sc_ProcessExchangeBillList_Query");
                }
                else
                {
                    ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_Query " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_ProcessExchangeBillList_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列对象的列名
                }
                res.code = CodeConstant.SUCCEED;
                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
                res.Message = "Sucess!";
                res.list = columnNameList;
                res.data = ds.Tables[0];
                return res;
            }
            catch (Exception e)
            {
                res.code = CodeConstant.FAIL;
                res.count = CountConstant.FAIL;
                res.Message = "Exception!" + e.ToString();
                res.data = null;
                return res;
            }
        }
        #endregion
        #region 工序流转卡列表
        /// <summary>
        /// 获取工序流转卡列表信息
@@ -1986,8 +2040,8 @@
                }
                string[] HInterEntryIDArr = HInterID.Split(',');
                string[] HData;
                DataTable dt = new DataTable();
                for (int i = 0; i < HInterEntryIDArr.Length; i++)
                {
@@ -1997,12 +2051,22 @@
                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchange_BatchSplit");
                    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 (ds == null || ds.Tables[0].Rows.Count == 0)
                if (dt == null || dt.Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -2015,7 +2079,7 @@
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    objJsonResult.data = dt;
                    return objJsonResult;
                }
            }
@@ -2030,5 +2094,293 @@
        }
        #endregion
        #region[批量拆分下推-保存按钮]
        /// <summary>
        /// 新增单据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_ProcessExchangeBill/AddBill_BatchSplit")]
        [HttpPost]
        public object AddBill_BatchSplit([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.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.HMateOutBatchNo = "";
                        oBill.omodel.HUnitNumber = ds.Tables[0].Rows[0]["HUnitNumber"].ToString();
                        oBill.omodel.HMaterID2 = oItemSub.HMaterID;
                        oBill.omodel.HProjectNum = "";
                        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();
                        oBill.omodel.HMouldNum = "0";
                    }
                    //子表赋值
                    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
    }
}