jinghz@oceic.com
2023-08-24 c5cfa2df88c6d2e5b31e87e1d5a8fe49d585f0bb
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -69,7 +69,7 @@
                }
                else
                {
                    list.Add("");
                    list.Add(CampanyName);
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
@@ -132,7 +132,7 @@
                    list.Add("唯一条码");
                    list.Add("品种条码");
                    list.Add("批次条码");
                    //list.Add("托盘条码");
                    list.Add("托盘条码");
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
@@ -156,6 +156,7 @@
        [HttpGet]
        public object ReportFromBillList(int page, int limit, string sWhere,string HSouceBillType,string HOrgID)
        {
            oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo);
            List<object> columnNameList = new List<object>();
            try
            {
@@ -191,8 +192,16 @@
                        break;
                    case "收料通知单":
                        tabname = "h_v_IF_POInStockBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_POInStockBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POInStockBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            count = new SQLHelper.ClsCN().RunProcReturn("select top 1000 * from h_v_IF_POInStockBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                            sql = string.Format(@"select * from(select  top 1000 row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POInStockBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        }
                        else
                        {
                            count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_POInStockBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                            sql = string.Format(@"select * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POInStockBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        }
                        break;
                    case "委外订单":
                        tabname = "h_v_IF_EntrustOrderBillList_Source";
@@ -465,6 +474,7 @@
        public object HSourceOrderList1(DataTable dt, HSouceOrderList ordrlist, string HBarCodeType,string HSourceBillType)
        {
            oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ordrlist.HQty = dt.Rows[i]["未生成条码数量"].ToString();
@@ -491,9 +501,12 @@
                if(HSourceBillType == "收料通知单")
                {
                    ordrlist.HFurnaceNO = dt.Rows[i]["炉号"].ToString();
                    ordrlist.HCoilNO = dt.Rows[i]["钢卷捆包号"].ToString();
                    ordrlist.HheatNO = dt.Rows[i]["热处理"].ToString();
                    if (oSystemParameter.omodel.WMS_CampanyName != "瑞与祺")
                    {
                        ordrlist.HFurnaceNO = dt.Rows[i]["炉号"].ToString();
                        ordrlist.HCoilNO = dt.Rows[i]["钢卷捆包号"].ToString();
                        ordrlist.HheatNO = dt.Rows[i]["热处理"].ToString();
                    }
                }
                if (HBarCodeType == "仪器外购件条码容器规则")
@@ -670,6 +683,7 @@
                string HSelectBarCodeType = sArray[3].ToString();
                string CampanyName = sArray[4].ToString()=="xxx"?"": sArray[4].ToString();
                string UserName = sArray[5].ToString();
                ClsPub.CurUserName = UserName;
                //获取内码
                HInterID = DBUtility.ClsPub.CreateBillID_Prod(ModName, ref DBUtility.ClsPub.sExeReturnInfo);
@@ -866,6 +880,72 @@
                            //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        }
                        else if (CampanyName == "瑞与祺") {
                            var date = DateTime.Now.ToString("yyMMdd");//日期
                            if (HSourceBillTypeName == "收料通知单")
                            {
                                //物料代码-包装标识-日期-供应商代码-八位流水号
                                LSHlen = 8;//流水号是8位
                                DataSet dataDs = oCN.RunProcReturn($@"select  isnull(pr.FNUMBER,'') F_TEZV_BASE from  AIS20220308151944..T_PUR_Receive a
inner join AIS20220308151944..T_PUR_RECEIVEENTRY b on a.FID = b.FID
left join AIS20220308151944..T_BAS_PREBDONE pr on b.F_TEZV_BASE=pr.FID
where a.FID={ordrlist[j].HMainID} and b.FENTRYID={ordrlist[j].HSubID}", "T_PUR_Receive");
                                if (dataDs.Tables[0].Rows.Count == 0)
                                {
                                    objJsonResult.code = "0";
                                    objJsonResult.count = 0;
                                    objJsonResult.Message = "单据不存在!";
                                    return objJsonResult;
                                }
                                sTMNumber = ordrlist[j].HMaterNumber + "-" + dataDs.Tables[0].Rows[0]["F_TEZV_BASE"].ToString() + "-" + date + "-" + ordrlist[j].HSupNumber + "-";
                                //sTMNumber = ordrlist[j].HMaterNumber + "-包装标识-" + date + "-" + ordrlist[j].HSupNumber + "-";
                                Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            }
                            else if (HSourceBillTypeName == "生产入库单")
                            {
                                //物料代码-包装标识-日期-组织代码-八位流水号
                                LSHlen = 8;//流水号是8位
                                DataSet dataDs = oCN.RunProcReturn($@"select  isnull(pr.FNUMBER,'') F_bsv_Base1,a.FPRDORGID from  AIS20220308151944..T_PRD_INSTOCK a
inner join AIS20220308151944..T_PRD_INSTOCKENTRY b on a.FID = b.FID
join(
select HERPInterID, HERPEntryID, HInterID, HEntryID from Kf_ICStockBillSub
)kf on b.FID = kf.HERPInterID and b.FENTRYID = kf.HERPEntryID
left join AIS20220308151944..T_BAS_PREBDONE pr on b.F_bsv_Base1=pr.FID
where kf.HInterID = {ordrlist[j].HMainID} and kf.HEntryID = {ordrlist[j].HSubID}", "T_PRD_INSTOCK");
                                if (dataDs.Tables[0].Rows.Count == 0)
                                {
                                    objJsonResult.code = "0";
                                    objJsonResult.count = 0;
                                    objJsonResult.Message = "单据不存在!";
                                    return objJsonResult;
                                }
                                string RQHNumber = "";
                                if (dataDs.Tables[0].Rows[0]["FPRDORGID"].ToString() == "100014")//江苏
                                {
                                    RQHNumber = "1.07.008";
                                }
                                else if (dataDs.Tables[0].Rows[0]["FPRDORGID"].ToString() == "100012")//上海
                                {
                                    RQHNumber = "1.04.008";
                                }
                                sTMNumber = ordrlist[j].HMaterNumber + "-" + dataDs.Tables[0].Rows[0]["F_bsv_Base1"].ToString() + "-" + date + "-" + RQHNumber + "-";
                                //sTMNumber = ordrlist[j].HMaterNumber + "-包装标识-"+ date + "-组织代码-";
                                Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            }
                            else
                            {
                                sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay;
                                Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            }
                        }
                        else  //通用方法
                        {
                            //条码前缀 = ç»„织代码 + ç‰©æ–™ä»£ç  + å¹´ + æœˆ + æ—¥
@@ -959,10 +1039,14 @@
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 5;
                    }
                    //else if (cmbHBarCodeType.Text == "托盘条码")
                    //{
                    //    TM = HOrgNumber + HNumber + LSH2;
                    //}
                    else if (HSelectBarCodeType == "托盘条码")
                    {
                        LSHlen = 4;     //流水号长度
                        //条码前缀 = ç‰©æ–™å†…码 + å¹´ + æœˆ + æ—¥
                        sTMNumber = HNumber + sYear + sPeriod + sDay;
                        Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                    }
                    else
                    {
                        objJsonResult.code = "0";
@@ -1002,7 +1086,7 @@
                        {
                            LSH2 = "0" + LSH2;
                        }
                        if (HSelectBarCodeType == "唯一条码")
                        if (HSelectBarCodeType == "唯一条码" || HSelectBarCodeType == "托盘条码")
                        {
                            //条码编号 = æ¡ç å‰ç¼€ + æµæ°´å·
                            TM = sTMNumber + LSH2;