zrg
2024-03-06 bb48e7fb2979e4cb57a2fe6b744ae58016936d25
WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -373,19 +373,19 @@
                            {
                                if (oSystemParameter.ShowBill(ref sErr))
                                {
                                    switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                                    switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource)
                                    {
                                        case "工序":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工序','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'工序','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList");
                                            break;
                                        case "物料":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'物料','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'物料','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList");
                                            break;
                                        case "工艺路线":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工艺路线','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'工艺路线','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList");
                                            break;
                                    }
@@ -393,30 +393,32 @@
                            }
                        }
                        break;
                    case "GXCZ":
                        ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HBillNo = '" + HBarCode + "'", "Sc_StationOutBillMain");
                        Int64 HStationOutInterID = 0;
                    case "GXJZ":
                        //截取条码类型 前三位
                        string HBillNo = HBarCode.Substring(4, HBarCode.Length - 4);
                        ds = oCN.RunProcReturn("select * from Sc_StationInBillMain where HBillNo = '" + HBillNo + "'", "Sc_StationInBillMain");
                        Int64 HStationInInterID = 0;
                        if (ds != null || ds.Tables[0].Rows.Count != 0)
                        if (ds != null || ds.Tables[0].Rows.Count > 0)
                        {
                            HStationOutInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]);
                            HStationInInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]);
                        }                        
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                            switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource)
                            {
                                case "工序":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工序','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'工序','" + HStationInInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList");
                                    break;
                                case "物料":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'物料','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'物料','" + HStationInInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList");
                                    break;
                                case "工艺路线":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工艺路线','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'工艺路线','" + HStationInInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList");
                                    break;
                            }
@@ -425,7 +427,7 @@
                    case "MO00":
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                            switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource)
                            {
                                case "工序":
                                    sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工序','" + HBarCode + "'";
@@ -482,6 +484,184 @@
                    objJsonResult.data = "";
                    return objJsonResult;
                }               
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region PDA工序检验单扫码获取信息
        [Route("MES_ProcessBill_PDA/HBarCode_KeyDown")]
        [HttpGet]
        public object HBarCode_KeyDown(string HBarCode, string HInterID, string UserID, string HBillType)
        {
            try
            {
                if (HBarCode == null || HBarCode.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "空白码,条形码不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //拆分条形码
                string sBillBarCode = HBarCode.Trim();
                string[] NewBarCode;
                if (sBillBarCode.CompareTo("#") > 0)
                {
                    NewBarCode = sBillBarCode.Split(Convert.ToChar("#"));
                    sBillBarCode = NewBarCode[0];
                }
                string sBillNo = sBillBarCode; //条形码
                string[] arr = sBillNo.Split('&'); //以符号‘&’分割条形码
                string BillNo_PGD = arr[0]; //单据号
                string entryid_PGD = "";//子id
                if (arr.Length > 1)
                {
                    entryid_PGD = arr[1];
                }
                //截取条码类型 前三位
                string BillNoType = BillNo_PGD.Substring(0, Math.Min(3, BillNo_PGD.Length));
                //截取条码类型2 前四位
                string BillNoType2 = BillNo_PGD.Substring(0, Math.Min(4, BillNo_PGD.Length));
                //截取内码
                string BillNo = BillNo_PGD.Substring(3, Math.Min(BillNo_PGD.Length - 3, BillNo_PGD.Length));
                string sErr = "";
                switch (BillNoType2)
                {
                    case "GXLX"://流转卡
                        string sql = "";
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            if (oSystemParameter.omodel.WMS_CampanyName == "乔一")
                            { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                                ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList");
                            }
                            else
                            {
                                if (oSystemParameter.ShowBill(ref sErr))
                                {
                                    switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                                    {
                                        case "工序":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工序','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            break;
                                        case "物料":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'物料','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            break;
                                        case "工艺路线":
                                            sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工艺路线','" + BillNo_PGD + "'";
                                            ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList");
                                            break;
                                    }
                                }
                            }
                        }
                        break;
                    case "GXCZ":
                        ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HBillNo = '" + HBarCode + "'", "Sc_StationOutBillMain");
                        Int64 HStationOutInterID = 0;
                        if (ds != null || ds.Tables[0].Rows.Count > 0)
                        {
                            HStationOutInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]);
                        }
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                            {
                                case "工序":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工序','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    break;
                                case "物料":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'物料','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    break;
                                case "工艺路线":
                                    sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工艺路线','" + HStationOutInterID + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList");
                                    break;
                            }
                        }
                        break;
                    case "MO00":
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource)
                            {
                                case "工序":
                                    sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工序','" + HBarCode + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList");
                                    break;
                                case "物料":
                                    sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'物料','" + HBarCode + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList");
                                    break;
                                case "工艺路线":
                                    sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工艺路线','" + HBarCode + "'";
                                    ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList");
                                    break;
                            }
                        }
                        break;
                    default:
                        if (oSystemParameter.omodel.WMS_CampanyName == "乔一")
                        { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "条码错误!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            break;
                        }
                }
                switch (BillNoType)
                //得到信息
                {
                    case "HCX"://生产资源码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList  where 条码编号 = '" + BillNo + "'", "h_v_Gy_SourceList");
                        break;
                }
                if (ds != null)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有返回数据,条码前缀错误。";
                    objJsonResult.data = "";
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
@@ -917,6 +1097,11 @@
                long HProcID = list[0].HProcID;//工序ID
                long HPRDORGID = list[0].HPRDORGID;//组织ID
                bool HLastResult = list[0].HLastResult;//试样结论
                long HProcExchInterID = list[0].HProcExchInterID;//流转卡ID
                long HProcExchEntryID = list[0].HProcExchEntryID;//流转卡子ID
                long HMainSourceInterID = list[0].HMainSourceInterID;//源单ID
                long HMainSourceEntryID = list[0].HMainSourceEntryID;//源单子ID
                string HMainSourceBillNo = list[0].HMainSourceBillNo;//流转卡子ID
                //表体数据
                List<Model.ClsQC_FirstPieceCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_FirstPieceCheckBillSub>>(msg_entry);
@@ -973,7 +1158,7 @@
                }
                //单据完整性判断
                if (HProcExchBillNo == "")
                if (HProcExchBillNo == "" && HMainSourceBillNo.Substring(0, Math.Min(2, HMainSourceBillNo.Length)) != "MO" )
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -1002,10 +1187,10 @@
                    oCN.RunProc("Insert Into QC_FirstPieceCheckBillMain " +
                    "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
                    ",HYear,HPeriod,HMaterID,HSourceID,HICMOInterID,HICMOEntryID,HICMOBillNo,HProcExchBillNo" +
                    ",HPRDORGID,HLastResult)" +
                    ",HPRDORGID,HLastResult,HProcExchInterID,HProcExchEntryID,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo)" +
                    " values('" + BillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" +
                    "," + HYear + "," + HPeriod + ",'" + HMaterID + "','" + HSourceID + "'," + HICMOInterID + "," + HICMOEntryID + ",'" + HICMOBillNo + "','" + HProcExchBillNo + "'" +  
                    "," + HPRDORGID + ",'" + HLastResult + "') ");
                    "," + HPRDORGID + ",'" + HLastResult + "'," + HProcExchInterID + "," + HProcExchEntryID + "," + HMainSourceInterID + "," + HMainSourceEntryID + ",'" + HMainSourceBillNo + "'" + ") ");
                    //插入子表
                    foreach (Model.ClsQC_FirstPieceCheckBillSub oSub in BillNew.DetailColl)