1
yusijie
2023-05-25 6592e8f84bf7958dd256a33b66e1fa3203296312
WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -28,6 +29,7 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_Query", 1, false, user))
                {
@@ -40,7 +42,8 @@
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_MES_StationEntrustInBillList  order by hmainid desc", "h_v_MES_StationEntrustInBillList");
                    ds = oCN.RunProcReturn("select * from h_v_MES_StationEntrustInBillList", "h_v_MES_StationEntrustInBillList");
                    //  order by hmainid desc 排序丢到数据库里进行处理
                }
                else
                {
@@ -49,11 +52,20 @@
                    ds = oCN.RunProcReturn(sql, "h_v_MES_StationEntrustInBillList");
                }
                //添加列名
                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列对象的列名
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
@@ -108,7 +120,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到流转卡信息!";
                    objJsonResult.Message = "未查询到流水号信息!工序号错误或者当前工序号不允许进站,请添加!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -116,6 +128,354 @@
                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 委外工序发出单流水号回车获取条码信息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
        #region 出站汇报单显示表体明细
        [Route("Cj_StationEntrustInBill/DisBillEntryList")]
        [HttpGet]
        public object DisBillEntryList(Int64 HProcExchHinteID)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //得到信息
                ds = oCN.RunProcReturn("exec h_p_Sc_ProcExchBilltransRelationQty " + HProcExchHinteID + "", "h_p_Sc_ProcExchBilltransRelationQty");
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到出站单明细信息!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //添加列名
                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.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
@@ -153,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;
@@ -184,7 +545,7 @@
                double HMoney = list[0].HMoney;//金额
                string HRemark = list[0].HRemark;//备注
                double HTaxRate = list[0].HTaxRate;//税率
                long HProcNo = list[0].HProcNo;//流水号
                string HProcNo = list[0].HProcNo;//流水号
                string HOrderProcNO = list[0].HOrderProcNO;//订单跟踪号
                int HWWWorkOrderInterID = 0;//委外工单号子内码
                int HWWWorkOrderEntryID = 0;//委外工单号主内吗
@@ -197,6 +558,7 @@
                string HBarCode = list[0].HBarCode;//条形码
                string HAddr = "";
                string HBarCodeMaker = "";
                long HPRDOrgID = list[0].HPRDOrgID;//组织ID
                if (HProcExchInterID <= 0)
                {
                    objJsonResult.code = "0";
@@ -213,7 +575,7 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HProcNo <= 0)
                if (HProcNo == "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -282,7 +644,7 @@
                    ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" +
                    ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" +
                    ",HSupID,HTaxRate,HQty,HPrice,HMoney,HPieceQty" +
                    ",HProcNo,HOrderProcNO,HWWWorkOrderBillNo,HWWWorkOrderInterID,HWWWorkOrderEntryID,HMainInterID" +
                    ",HProcNo,HOrderProcNO,HWWWorkOrderBillNo,HWWWorkOrderInterID,HWWWorkOrderEntryID,HMainInterID,HPRDOrgID" +
                    ") " +
                    " values('3792','3792'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillStatus.ToString() + "',getdate(),'" + HMaker + "',getdate()" +
                    ",'" + HYear.ToString() + "','" + HPeriod.ToString() + "','" + HRemark + "','" + HInnerBillNo + "'" +
@@ -290,7 +652,7 @@
                    ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID +
                    "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" +
                    "," + HSupID + "," + HTaxRate + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty +
                    ",'" + HProcNo + "','" + HOrderProcNO + "'" + ",'" + HWWWorkOrderBillNo + "'" + "," + HWWWorkOrderInterID + "" + "," + HWWWorkOrderEntryID + "," + HMainInterID +
                    ",'" + HProcNo + "','" + HOrderProcNO + "'" + ",'" + HWWWorkOrderBillNo + "'" + "," + HWWWorkOrderInterID + "" + "," + HWWWorkOrderEntryID + "," + HMainInterID + "," + HPRDOrgID +
                    ") ");
                }
                else if ("Modify".Equals(eventType))
@@ -315,6 +677,7 @@
                    ",HTaxRate=" + HTaxRate +
                    ",HMaterID=" + HMaterID +
                    ",HProcID=" + HProcID +
                    ",HEmpID=" + HEmpID +
                    ",HProcNo=" + HProcNo +
                    ",HOrderProcNO='" + HOrderProcNO + "'" +
                    " where HInterID=" + HInterID);
@@ -373,7 +736,7 @@
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增单据成功!";
                objJsonResult.Message = "操作单据成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }