yusijie
2023-05-10 679fcc729a588e810b42e12409eac3bca7103b5d
WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -120,7 +120,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到流转卡信息!";
                    objJsonResult.Message = "未查询到流水号信息!工序号错误或者当前工序号不允许进站,请添加!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -138,6 +138,307 @@
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 委外工序发出单流水号回车获取条码信息2
        [Route("Cj_StationBill/txtHBarCode_KeyDown2")]
        [HttpGet]
        public object txtHBarCode_KeyDown2(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));
                switch (BillNoType2)
                {
                    case "GXLZ"://工序流转派工
                        ds = oCN.RunProcReturn("select * from h_v_Sc_ProcExchSendWorkBill  where 派工单据号 = '" + BillNo_PGD + "'" + " and HEntryID ='" + entryid_PGD + "'", "h_v_Sc_ProcExchSendWorkBill");
                        break;
                    case "GXLX"://流转卡
                        string sErr = "";
                        if (oSystemParameter.ShowBill(ref sErr))
                        {
                            if (oSystemParameter.omodel.WMS_CampanyName == "乔一")
                            { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                                if (oSystemParameter.omodel.MES_StationInBill_ShowUSERProcess == "Y")
                                {
                                    ds = oCN.RunProcReturn($"exec h_p_ProcessExchangeBillLastHProNo '{BillNo_PGD}','{UserID}','{HBillType}'", "h_v_Gy_ProcessList_GetProcNoByUser");
                                }
                                else
                                {
                                    ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList");
                                }
                            }
                            else if (entryid_PGD != "") //如果子id不为空则加入子id过滤;
                            {
                                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + BillNo_PGD + "'" + " and hsubid ='" + entryid_PGD + "'", "h_v_Sc_ProcessExchangeBillList");
                            }
                            else
                            {
                                ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList");
                            }
                        }
                        break;
                }
                switch (BillNoType)
                //得到信息
                {
                    case "HCX"://生产资源码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList  where 条码编号 = '" + BillNo + "'", "h_v_Gy_SourceList");
                        break;
                    case "SBM"://设备码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_EquipMentList  where HItemID = '" + BillNo + "'", "h_v_Gy_EquipMentList");
                        break;
                    case "JYM"://员工码--检验员
                        ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New  where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New");
                        break;
                    case "GRM"://员工码--操作员,接收人
                        ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New  where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New");
                        break;
                    //case "CGM"://员工码
                    //    ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New  where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New");
                    //    break;
                    case "HWH"://仓库码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_WareHouseList  where 条码编号 = '" + HBarCode + "'", "h_v_Gy_WareHouseList");
                        break;
                    case "HSP"://仓位码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_StockPlaceList  where 条码编号 = '" + HBarCode + "'", "h_v_Gy_StockPlaceList");
                        break;
                    case "WKM"://工作中心码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_WorkCenterList  where HItemID = '" + BillNo + "'", "h_v_Gy_WorkCenterList");
                        break;
                    case "BZM"://班组码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_GroupList  where 条码编号 = '" + BillNo + "'", "h_v_Gy_GroupList");
                        break;
                    case "PRO"://工序码
                        string sReturn = "";
                        if (oSystemParameter.ShowBill(ref sReturn) == true)
                        {
                            if(HBillType == "In")
                            {
                                //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                                if (oSystemParameter.omodel.MES_StationInBill_ShowUSERProcess == "Y")
                                {
                                    ds = oCN.RunProcReturn("select top 1 * from h_v_Gy_ProcessList_GetProcNoByUser where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and 用户编码 = '" + UserID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNoByUser");
                                }
                                else
                                {
                                    ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo  where HItemID = '" + BillNo + "' and HInterID = '" +
                                      HInterID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNo");
                                }
                            }
                            else if(HBillType == "Out")
                            {
                                //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                                if (oSystemParameter.omodel.MES_StationOutBill_ShowUSERProcess == "Y")
                                {
                                    ds = oCN.RunProcReturn("select top 1 * from h_v_Gy_ProcessList_GetProcNoByUser where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and 用户编码 = '" + UserID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNoByUser");
                                }
                                else
                                {
                                    ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo  where HItemID = '" + BillNo + "' and HInterID = '" +
                                      HInterID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNo");
                                }
                            }
                        }
                        break;
                    case "WLM"://物料码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_MaterialList  where HItemID = '" + BillNo + "'", "h_v_Gy_MaterialList");
                        break;
                }
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到条码信息!";
                    objJsonResult.data = null;
                    if(BillNoType == "PRO")
                    {
                        ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList where HItemID = '" + BillNo + "'", "h_v_Gy_ProcessList");
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.Message = "未查询到条码信息!";
                        }
                        else
                        {
                            objJsonResult.Message = "用户未关联相关工序或流转卡无此工序,如有需要请维护";
                        }
                    }
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 根据登录用户获取工序
        [Route("Sc_StationInBill/autoGetProcNo")]
        [HttpGet]
        public object autoGetProcNo(string HUserID, string HInterID, string BillType)
        {
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                if(BillType == "In")//工序进站接收单
                {
                    //系统参数是否为自动匹配流水号,N为手动输入,Y为自动匹配
                    if (oSystemParameter.omodel.MES_StationInBill_AutoFindSNO == "Y")
                    {
                        try
                        {
                            if (HUserID == null || HUserID.Equals(""))
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "用户编码不能为空!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            //得到信息
                            ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and 用户编码 ='" + HUserID + "'" + " and 累计进站数量 < 计划数量 and 下道流转工序<>'转' and 委外标记=0 order by 序号 asc", "h_v_Sc_StationBill_autoGetProcNo");
                            //写入信息
                            if (ds == null || ds.Tables[0].Rows.Count == 0)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "未查询到工序信息!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            objJsonResult.code = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "Sucess!";
                            objJsonResult.data = ds.Tables[0];
                            return objJsonResult;
                        }
                        catch (Exception e)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "Exception!" + e.ToString();
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "手动输入模式";
                        objJsonResult.data = "";
                        return objJsonResult;
                    }
                }
                else if(BillType == "Out")//工序出站汇报单
                {
                    //系统参数是否为自动匹配流水号,N为手动输入,Y为自动匹配
                    if (oSystemParameter.omodel.MES_StationOutBill_AutoFindSNO == "Y")
                    {
                        try
                        {
                            if (HUserID == null || HUserID.Equals(""))
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "用户编码不能为空!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            //得到信息
                            ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and 用户编码 ='" + HUserID + "'" + " and 累计出站数量 < 计划数量 and 下道流转工序<>'转' and 委外标记=0 order by 序号 asc", "h_v_Sc_StationBill_autoGetProcNo");
                            //写入信息
                            if (ds == null || ds.Tables[0].Rows.Count == 0)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "未查询到工序信息!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            objJsonResult.code = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "Sucess!";
                            objJsonResult.data = ds.Tables[0];
                            return objJsonResult;
                        }
                        catch (Exception e)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "Exception!" + e.ToString();
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "手动输入模式";
                        objJsonResult.data = "";
                        return objJsonResult;
                    }
                }
                else
                {
                    return 0;
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "系统参数异常";
                objJsonResult.data = "";
                return objJsonResult;
            }
        }
        #endregion
@@ -212,7 +513,8 @@
                    return objJsonResult;
                }
                List<StationBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2);
                List<StationBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2);
                DBUtility.ClsPub.CurUserName = user;
                long HMainInterID = 0;
                HMainInterID = list[0].HMainInterID;
                string eventType = list[0].eventType;
@@ -375,6 +677,7 @@
                    ",HTaxRate=" + HTaxRate +
                    ",HMaterID=" + HMaterID +
                    ",HProcID=" + HProcID +
                    ",HEmpID=" + HEmpID +
                    ",HProcNo=" + HProcNo +
                    ",HOrderProcNO='" + HOrderProcNO + "'" +
                    " where HInterID=" + HInterID);
@@ -433,7 +736,7 @@
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增单据成功!";
                objJsonResult.Message = "操作单据成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }