yangle
2025-04-02 5cf903c0d4fa20a502026cd80b83025659345647
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -1,4 +1,5 @@
using DBUtility;
using DAL;
using DBUtility;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
@@ -68,7 +69,7 @@
                }
                else
                {
                    list.Add("");
                    list.Add(CampanyName);
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
@@ -126,12 +127,16 @@
                    list.Add("仪器成品条码规则");
                    list.Add("试剂成品条码规则");
                }
                else if (sCapName == "添康科技")
                {
                    list.Add("批次条码");
                }
                else
                {
                    list.Add("唯一条码");
                    list.Add("品种条码");
                    list.Add("批次条码");
                    //list.Add("托盘条码");
                    list.Add("托盘条码");
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
@@ -155,6 +160,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
            {
@@ -176,39 +182,65 @@
                    case "生产订单":
                        tabname = "h_v_IFCLD_ICMOBillList_Source"; 
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IFCLD_ICMOBillList_Source "+sWhere+ " and ä»»åŠ¡æ•°é‡>isnull(入库数量,0)  and çŠ¶æ€<>'结案' order by å•据号", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号) as HRowNumber,* from h_v_IFCLD_ICMOBillList_Source " + sWhere + " and ä»»åŠ¡æ•°é‡>isnull(入库数量,0)  and çŠ¶æ€<>'结案')   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        sql = string.Format(@"select * from(select row_number() over (order by å•据号) as HRowNumber,* from h_v_IFCLD_ICMOBillList_Source " + sWhere + " and ä»»åŠ¡æ•°é‡>isnull(入库数量,0)  and çŠ¶æ€<>'结案')   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "生产汇报单":
                        tabname = "h_v_IF_ICMOReportBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_ICMOReportBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_ICMOReportBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        sql = string.Format(@"select * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_ICMOReportBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "采购订单":
                        tabname = "h_v_IF_POOrderBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_POOrderBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POOrderBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        sql = string.Format(@"select * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POOrderBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        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 top " + pageSize + " * 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";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_EntrustOrderBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_EntrustOrderBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        sql = string.Format(@"select * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_EntrustOrderBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "退货通知单":
                    case "生产入库单":
                        tabname = "h_v_IF_ProductInBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_ProductInBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_ProductInBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "其他入库单":
                    case "采购入库单":
                        tabname = "h_v_IF_POStockInBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_POStockInBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_POStockInBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "直接调拨单":
                        break;
                    case "采购退料单":
                    case "销售退货单":
                        tabname = "h_v_IF_SellOutBackBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_SellOutBackBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_SellOutBackBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "生产退料单":
                        tabname = "h_v_IF_MateOutBackBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_MateOutBackBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_MateOutBackBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "组装拆卸单":
                    case "工序流转卡":
                        tabname = "h_v_IF_ProcessExchangeBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_ProcessExchangeBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_ProcessExchangeBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    case "销售出库单":
                        tabname = "h_v_IF_SellOutBillList_Source";
                        count = new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_SellOutBillList_Source " + sWhere + " order by å•据号 desc,hsubid", tabname).Tables[0].Rows.Count;
                        sql = string.Format(@"select top " + pageSize + " * from(select row_number() over (order by å•据号 desc,hsubid) as HRowNumber,* from h_v_IF_SellOutBillList_Source " + sWhere + ")   as A where HRowNumber >" + pageSize + " *(" + pageNum + "-1)");
                        break;
                    default:
                        break;
@@ -217,8 +249,8 @@
                string aa = ds.Tables[0].Columns[0].ToString();
                //ds.Tables[0].Columns["hmainid"].ColumnName.ToUpper();
                //ds.Tables[0].Columns["hsubid"].ColumnName.ToUpper();
                ds.Tables[0].Columns["hmainid"].ColumnName= "HMainID";
                ds.Tables[0].Columns["hsubid"].ColumnName= "HSubID";
                ds.Tables[0].Columns["hmainid"].ColumnName = "HMainID";
                ds.Tables[0].Columns["hsubid"].ColumnName = "HSubID";
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
@@ -249,6 +281,34 @@
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.Message.ToString();
                objJsonResult.data = null;
                objJsonResult.list = columnNameList;
            }
            return objJsonResult;
        }
        #endregion
        #region [通过条码编号获取HItemId]
        [Route("Sc_BarCode/Get_HItemId")]
        [HttpGet]
        public object Get_HItemId(string sWhere)
        {
            List<object> columnNameList = new List<object>();
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_IF_BarCodeBillList where æ¡ç ç¼–号 =  '" + sWhere + "'", "h_v_IF_BarCodeBillList");
                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 = e.Message.ToString();
@@ -298,6 +358,12 @@
                            //写入信息
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1205": //销售出库单
                            //得到信息
                            ds = oCN.RunProcReturn("select * from h_v_IF_SellOutBillList_BarCode where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_SellOutBillList_BarCode");
                            //写入信息
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1102": //采购订单
                            //得到信息
                            ds = oCN.RunProcReturn("select * from h_v_IF_POOrderList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POOrderList");
@@ -316,6 +382,30 @@
                            //写入信息
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1202": //生产入库
                             //得到信息
                            ds = oWebs.getDataSetBySQL("select * from h_v_IF_ProductInBillList_Source where HMainID=" + oSelectRow.BillMainID + " and HSubID=" + oSelectRow.BillSubID, "h_v_IF_ProductInBillList_Source", ref DBUtility.ClsPub.sExeReturnInfo);
                            //写入信息
                            ListRows.Add(Sub_WriteInForm_InOut(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1201": //采购入库
                            //得到信息
                            ds = oWebs.getDataSetBySQL("select * from h_v_IF_POStockInBillList_Source    where HMainID=" + oSelectRow.BillMainID + " and HSubID=" + oSelectRow.BillSubID, "h_v_IF_POStockInBillList_Source   ", ref DBUtility.ClsPub.sExeReturnInfo);
                            //写入信息
                            ListRows.Add(Sub_WriteInForm_InOut(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1247": //销售退货
                            //得到信息
                            ds = oWebs.getDataSetBySQL("select * from h_v_IF_SellOutBackBillList_Source where HMainID=" + oSelectRow.BillMainID + " and HSubID=" + oSelectRow.BillSubID, "h_v_IF_SellOutBackBillList_Source", ref DBUtility.ClsPub.sExeReturnInfo);
                            //写入信息
                            ListRows.Add(Sub_WriteInForm_InOut(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1244": //生产退料
                            //得到信息
                            ds = oWebs.getDataSetBySQL("select * from h_v_IF_MateOutBackBillList_Source where HMainID=" + oSelectRow.BillMainID + " and HSubID=" + oSelectRow.BillSubID, "h_v_IF_MateOutBackBillList_Source", ref DBUtility.ClsPub.sExeReturnInfo);
                            //写入信息
                            ListRows.Add(Sub_WriteInForm_InOut(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        case "1403": //退货通知单
                            break;
                        case "1203": //其他入库单
@@ -324,9 +414,13 @@
                            break;
                        case "1239": //采购退料单
                            break;
                        case "1244": //生产退料单
                            break;
                        case "1255": //组装拆卸单
                            break;
                        case "3772": //工序流转卡
                                     //得到信息
                            ds = oCN.RunProcReturn("select * from h_v_IF_ProcessExchangeList where HMainID=" + oSelectRow.BillMainID + " and HSubID=" + oSelectRow.BillSubID, "h_v_IF_ProcessExchangeList", ref DBUtility.ClsPub.sExeReturnInfo);
                            //写入信息
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType));
                            break;
                        default:
                            break;
@@ -352,6 +446,7 @@
        public object HSourceOrderList(DataTable dt, HSouceOrderList ordrlist,string HBarCodeType) 
        {
            oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ordrlist.HQty = dt.Rows[i]["未生成条码数量"].ToString();
@@ -387,6 +482,18 @@
                ordrlist.HPinfan = dt.Rows[i]["HPinfan"].ToString();
                ordrlist.HSourceName = dt.Rows[i]["生产线"].ToString();
                ordrlist.HEndDate = dt.Rows[i]["计划完工日期"].ToString();//博日 ç”Ÿäº§è®¢å• å¤±æ•ˆæ—¥æœŸ
                ordrlist.HMinQty = dt.Rows[i]["最小包装数"].ToString();
                if (oSystemParameter.omodel.WMS_CampanyName == "九菱") //系统参数  å®¢æˆ·å®šåˆ¶åŒ–名称     ç©ºç™½ä¸ºé€šç”¨
                {
                    ordrlist.HGroupID = Convert.ToInt32(dt.Rows[i]["HBeginWorkGroupID"]);
                    ordrlist.HGroupNumber = dt.Rows[i]["开工班组代码"].ToString();
                    ordrlist.HGroupName = dt.Rows[i]["开工班组名称"].ToString();
                    ordrlist.HEmpID = Convert.ToInt32(dt.Rows[i]["HBeginWorkEmpID"]);
                    ordrlist.HEmpNumber = dt.Rows[i]["开工人代码"].ToString();
                    ordrlist.HEmpName = dt.Rows[i]["开工人名称"].ToString();
                }
                if (HBarCodeType == "仪器外购件条码容器规则")
                {
                    ordrlist.HMinQty = dt.Rows[i]["未生成条码数量"].ToString();
@@ -405,6 +512,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();
@@ -428,6 +536,17 @@
                ordrlist.HUnitName = dt.Rows[i]["计量单位"].ToString();
                ordrlist.HRemark = dt.Rows[i]["备注"].ToString();
                ordrlist.HMTONo = dt.Rows[i]["计划跟踪号"].ToString();
                if(HSourceBillType == "收料通知单")
                {
                    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 == "仪器外购件条码容器规则")
                {
                    ordrlist.HMinQty = dt.Rows[i]["未生成条码数量"].ToString();
@@ -474,10 +593,125 @@
                    ordrlist.HSPNumber = dt.Rows[i]["仓位代码"].ToString();
                    ordrlist.HSPName = dt.Rows[i]["仓位"].ToString();
                }
                if(HSourceBillType == "销售出库单")
                {
                    ordrlist.HWhID = dt.Rows[i]["HWhID"].ToString();
                    ordrlist.HWhNumber = dt.Rows[i]["仓库代码"].ToString();
                    ordrlist.HWhName = dt.Rows[i]["仓库"].ToString();
                    //ordrlist.HSPID = dt.Rows[i]["HSPID"].ToString();
                    //ordrlist.HSPNumber = dt.Rows[i]["仓位代码"].ToString();
                    //ordrlist.HSPName = dt.Rows[i]["仓位"].ToString();
                }
            }
            return ordrlist;
        }
        //根据TABLE写入界面(出入库单据)
        private object Sub_WriteInForm_InOut(DataTable dt, HSouceOrderList ordrlist, string HBarCodeType, string HSourceBillType)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ordrlist.HQty = dt.Rows[i]["可生成条码数量"].ToString();
                ordrlist.HinitQty = dt.Rows[i]["可生成条码数量"].ToString();
                ordrlist.HMinQty = dt.Rows[i]["最小包装数"].ToString();
                ordrlist.HMainID = dt.Rows[i]["HMainID"].ToString();
                ordrlist.HSubID = dt.Rows[i]["HSubID"].ToString();
                ordrlist.HBillNo = dt.Rows[i]["单据号"].ToString();
                ordrlist.HBillType = dt.Rows[i]["HBillType"].ToString();
                ordrlist.HDeptID = dt.Rows[i]["HDeptID"].ToString();
                ordrlist.HDeptNumber = dt.Rows[i]["部门代码"].ToString();
                ordrlist.HDeptName = dt.Rows[i]["部门"].ToString();
                ordrlist.HMaterID = dt.Rows[i]["HMaterID"].ToString();
                ordrlist.HMaterNumber = dt.Rows[i]["物料代码"].ToString();
                ordrlist.HMaterName = dt.Rows[i]["物料名称"].ToString();
                ordrlist.HMaterModel = dt.Rows[i]["规格型号"].ToString();
                ordrlist.HBatchNo = dt.Rows[i]["批号"].ToString();
                ordrlist.HUnitID = dt.Rows[i]["HUnitID"].ToString();
                ordrlist.HUnitNumber = dt.Rows[i]["计量单位代码"].ToString();
                ordrlist.HUnitName = dt.Rows[i]["计量单位"].ToString();
                ordrlist.HAuxPropID = dt.Rows[i]["HAuxPropID"].ToString();
                ordrlist.HAuxPropNumber = dt.Rows[i]["辅助属性代码"].ToString();
                ordrlist.HAuxPropName = dt.Rows[i]["辅助属性"].ToString();
                ordrlist.HWhID = dt.Rows[i]["HWhID"].ToString();
                ordrlist.HWhNumber = dt.Rows[i]["仓库代码"].ToString();
                ordrlist.HWhName = dt.Rows[i]["仓库"].ToString();
                ordrlist.HSPID = dt.Rows[i]["HSPID"].ToString();
                ordrlist.HSPNumber = dt.Rows[i]["仓位代码"].ToString();
                ordrlist.HSPName = dt.Rows[i]["仓位"].ToString();
                ordrlist.HMTONo = dt.Rows[i]["计划跟踪号"].ToString();
                ordrlist.HDate = dt.Rows[i]["日期"].ToString();
                ordrlist.HShowDate = DateTime.Now.ToString();
            }
            return ordrlist;
        }
        #endregion
        #region [同步资料]
        [Route("Sc_BarCode/Sync_data")]
        [HttpGet]
        public object Sync_data()
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            try
            {
                oCn.RunProc("exec h_p_IF_ERPDataToLocal", ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "同步基础资料成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "同步基础资料失败!" + e;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region [批次]
        [Route("Sc_BarCode/Batch")]
        [HttpGet]
        public object Batch(int HMaterID, string HBatchNo)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            bool b = false;
            if (HMaterID != 0)
            {
                DataSet oDs = oCn.RunProcReturn("exec h_p_Gy_BarCodeBill_GetBatchNo " + HMaterID.ToString() + ",'" + HBatchNo + "','" + "" + "','" + "" + "'", "h_p_Gy_BarCodeBill_GetBatchNo");
                //
                if (oDs == null && oDs.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.Message= "[0000-2-053]生成批次失败!";
                    return objJsonResult;
                }
                else if (DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][0]) == "1")
                {
                    objJsonResult.code = "1";
                    objJsonResult.Message = "[0000-2-054]生成批次成功!";
                    objJsonResult.data = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0]["HBatchNo"]);
                    HBatchNo = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0]["HBatchNo"]);
                    b = true;
                    return objJsonResult;
                }
            }
            //明细表是否为零行
            if (b == false)
            {
                objJsonResult.code = "1";
                objJsonResult.Message= "[3899-2-003]没有需要生成批次的明细行!";
                return objJsonResult;
            }
            else //完全封闭
            {
                return null;
            }
        }
        #endregion
        #region [条码生成接口]
@@ -492,10 +726,11 @@
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string HOrgType = sArray[1].ToString();
                string HSourceBillType = sArray[2].ToString();
                string HSourceBillTypeName = sArray[2].ToString();
                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);
@@ -510,7 +745,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "选择组织有错误!";
                    objJsonResult.Message = "[0000-2-055]选择组织有错误!";
                    return objJsonResult;
                }
                if (!Sub_AllowSave(msg2, HSelectBarCodeType))//单据完整性判断
@@ -524,19 +759,19 @@
                else
                {
                    //生成条码
                    SaveBarCode(msg2, HSelectBarCodeType, CampanyName);
                    SaveBarCode(msg2, HSelectBarCodeType, CampanyName, HSourceBillTypeName);
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "条码生成失败!"+e.Message;
                objJsonResult.Message = "[3899-2-006]条码生成失败!" + e.Message;
                return objJsonResult;
            }
            return objJsonResult;
        }
        #endregion
        #endregion
        #region[单据完整性判断]
        private bool Sub_AllowSave(string msg2, string HSelectBarCodeType)
@@ -564,7 +799,7 @@
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "条码生成完整性判断错误";
                        objJsonResult.Message = "[3899-2-007]条码生成完整性判断错误";
                        return false;
                    }
                    else if (DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0][0]) == "1")
@@ -586,7 +821,7 @@
        #endregion
        #region[条码生成方法]
        private object SaveBarCode(string msg2, string HSelectBarCodeType, string CampanyName)
        private object SaveBarCode(string msg2, string HSelectBarCodeType, string CampanyName,string HSourceBillTypeName)
        {
            int LSHlen = 6;             //流水号长度
            int SumLen = 10;            //总长度
@@ -613,6 +848,19 @@
            int k = 0;
            int n = 0;                  //同一批生成条码中的第几条
            string sTMNumber = "";      //条码自定义前缀
            string HCoilNO = "";
            string HFurnaceNO = "";
            string HFactory = "";
            decimal HAuxQty = 0;
            string HheatNO = "";
            Int64 HGroupID = 0;
            long HEmpID = 0;
            string HCusModel = ""; //客户物料规格
            string HCusMaterName = ""; //客户物料名称
            string HCheckEmpName = ""; //检验员名称
            DataSet Ds;
            msg2 = msg2.Replace("\\", "");
            msg2 = msg2.Replace("\n", "");  //\n
@@ -625,6 +873,17 @@
                    HNumber = DBUtility.ClsPub.isStrNull(ordrlist[j].HMaterID);
                    HMaterNumber = DBUtility.ClsPub.isStrNull(ordrlist[j].HMaterNumber);
                    HBatchNo = ClsPub.isStrNull(ordrlist[j].HBatchNo);
                    HCoilNO = ClsPub.isStrNull(ordrlist[j].HCoilNO);
                    HFurnaceNO = ClsPub.isStrNull(ordrlist[j].HFurnaceNO);
                    HFactory = ClsPub.isStrNull(ordrlist[j].HFactory);
                    HAuxQty = ClsPub.isLong(ordrlist[j].HAuxQty);
                    HheatNO = ClsPub.isStrNull(ordrlist[j].HheatNO);
                    HGroupID = ClsPub.isInt(ordrlist[j].HGroupID);
                    HEmpID = ClsPub.isLong(ordrlist[j].HEmpID);
                    HCusModel = ClsPub.isStrNull(ordrlist[j].HCusModel);
                    HCusMaterName = ClsPub.isStrNull(ordrlist[j].HCusMaterName);
                    HCheckEmpName = ClsPub.isStrNull(ordrlist[j].HCheckEmpName);
                    //日期获取方式
                    sDate = DateTime.Now.ToString();
                    //
@@ -637,6 +896,10 @@
                        sDate = DBUtility.ClsPub.isStrNull(ordrlist[j].HEndDate);
                    }
                    else if (CampanyName == "夏宝电器")// æ—¥æœŸï¼šç”Ÿäº§è®¢å• æ¡ç æ—¥æœŸ
                    {
                        sDate = DBUtility.ClsPub.isStrNull(ordrlist[j].HDate);
                    }
                    else if (CampanyName == "九菱")// æ—¥æœŸï¼šç”Ÿäº§è®¢å• æ¡ç æ—¥æœŸ
                    {
                        sDate = DBUtility.ClsPub.isStrNull(ordrlist[j].HDate);
                    }
@@ -678,6 +941,72 @@
                            Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                            //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  //通用方法
                        {
@@ -772,10 +1101,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";
@@ -815,7 +1148,7 @@
                        {
                            LSH2 = "0" + LSH2;
                        }
                        if (HSelectBarCodeType == "唯一条码")
                        if (HSelectBarCodeType == "唯一条码" || HSelectBarCodeType == "托盘条码")
                        {
                            //条码编号 = æ¡ç å‰ç¼€ + æµæ°´å·
                            TM = sTMNumber + LSH2;
@@ -895,6 +1228,18 @@
                        barcode.HInnerBillNo2 = ordrlist[j].HInnerBillNo;
                        barcode.HMaker2 = ordrlist[j].HMaker;
                        barcode.HGiveAwayFlag2 = ordrlist[j].HGiveAwayFlag;
                        barcode.HCoilNO = ordrlist[j].HCoilNO;
                        barcode.HFurnaceNO = ordrlist[j].HFurnaceNO;
                        barcode.HFactory = ordrlist[j].HFactory;
                        barcode.HAuxQty = ordrlist[j].HAuxQty;
                        barcode.HheatNO = ordrlist[j].HheatNO;
                        barcode.HGroupID2 = ordrlist[j].HGroupID;
                        barcode.HEmpID2 = ordrlist[j].HEmpID;
                        barcode.HCusModel2 = ordrlist[j].HCusModel;
                        barcode.HCusMaterName2 = ordrlist[j].HCusMaterName;
                        barcode.HCheckEmpName2 = ordrlist[j].HCheckEmpName;
                        ListRows.Add(barcode);
                        k = k + 1;
                        n = n + 1;
@@ -911,7 +1256,7 @@
            double HQty2 = 0;
            string HBatchNo2 = "";
            Int64 HSupID = 0;
            Int64 HGroupID = 0;
            Int64 HGroupID2 = 0;
            int HPrintQty = 0;
            Int64 HSourceInterID = 0;
            Int64 HSourceEntryID = 0;
@@ -935,6 +1280,19 @@
            string HInnerBillNo = "";
            bool HGiveAwayFlag = false;
            Int64 HEntryID = 0;
            string HCoilNO2 = "";
            string HFurnaceNO2 = "";
            string HFactory2 = "";
            decimal HAuxQty2 = 0;
            string HheatNO2 = "";
            DateTime HProduceDate;
            DateTime HExpiryDate;
            long HEmpID2 = 0;
            string HCusModel2 = "";
            string HCusMaterName2 = "";
            string HCheckEmpName2 = "";
            try
            {
                oCN.BeginTran();
@@ -949,6 +1307,10 @@
                        if (CampanyName == "博日科技" || CampanyName == "夏宝电器")
                        {
                            HBarCodeType = "唯一条码";
                        }
                        if (CampanyName == "九菱")
                        {
                            HBarCode = HBarCode + ClsPub.isStrNull(ListRows[i].HMTONo2);
                        }
                        //
                        HMaterID = ClsPub.isLong(ListRows[i].HMaterID2);
@@ -979,6 +1341,19 @@
                        HSeOrderBillNo = ClsPub.isStrNull(ListRows[i].HSeOrderBillNo2);
                        HInnerBillNo = ClsPub.isStrNull(ListRows[i].HInnerBillNo2);
                        HGiveAwayFlag = ClsPub.isBool(ListRows[i].HGiveAwayFlag2);
                        HCoilNO2 = ClsPub.isStrNull(ListRows[i].HCoilNO);
                        HFurnaceNO2 = ClsPub.isStrNull(ListRows[i].HFurnaceNO);
                        HFactory2 = ClsPub.isStrNull(ListRows[i].HFactory);
                        HAuxQty2 = ClsPub.isLong(ListRows[i].HAuxQty);
                        HheatNO2 = ClsPub.isStrNull(ListRows[i].HheatNO);
                        HProduceDate = ClsPub.isDate(ListRows[i].HProduceDate);
                        HExpiryDate = ClsPub.isDate(ListRows[i].HExpiryDate);
                        HGroupID2 = ClsPub.isInt(ListRows[i].HGroupID2);
                        HEmpID2 = ClsPub.isLong(ListRows[i].HEmpID2);
                        HCusModel2 = ClsPub.isStrNull(ListRows[i].HCusModel2);
                        HCusMaterName2 = ClsPub.isStrNull(ListRows[i].HCusMaterName2);
                        HCheckEmpName2 = ClsPub.isStrNull(ListRows[i].HCheckEmpName2);
                        oCN.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" +
                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" +
                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " +
@@ -986,16 +1361,17 @@
                                    ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " +
                                    ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " +
                                    ",HGiveAwayFlag " +
                                    ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " +
                                    ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo" +
                                    ",HCoilNO,HFurnaceNO,HFactory,HAuxQty,HheatNO,HProduceDate,HExpiryDate,HEmpID,HCusModel,HCusMaterName,HCheckEmpName " +
                                    ") values ("
                                    + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString()
                                    + ",'" + HBatchNo2 + "'," + HSupID.ToString() + "," + HGroupID.ToString() + ",'" + ClsPub.CurUserName + "',getdate()," + HPrintQty.ToString() + "," + HQty2.ToString()
                                    + ",'" + HBatchNo2 + "'," + HSupID.ToString() + "," + HGroupID2.ToString() + ",'" + ClsPub.CurUserName + "',getdate()," + HPrintQty.ToString() + "," + HQty2.ToString()
                                    + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HWei + "'"
                                    + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'"
                                    + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'"
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + ""
                                    + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag)
                                    + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')");
                                    + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "','" + HCoilNO2 + "','" + HFurnaceNO2 + "','" + HFactory2 + "'," + HAuxQty2 + ",'" + HheatNO2 + "','" + HProduceDate + "','" + HExpiryDate + "'," + HEmpID2.ToString() + ",'" + HCusModel2 + "','" + HCusMaterName2 + "','" + HCheckEmpName2 + "'" + ")");
                        //HNumber = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterID2Col].Value);
@@ -1030,6 +1406,23 @@
                //增加 æ¡ç è¶…过未生成功能控制
                //
                //条码生成时同步生成条码出入库记录
                if (HSourceBillTypeName.Trim() == "生产入库单" || HSourceBillTypeName.Trim() == "采购入库单"
                    || HSourceBillTypeName.Trim() == "销售退货单" || HSourceBillTypeName.Trim() == "生产退料单")
                {
                    if (!oWebs.set_BarCodeAutoWMS(HInterID, HSourceBillType, HOrgID, ref DBUtility.ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        objJsonResult.list = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();
                List<Object> listobj = ListRows.ConvertAll(s => (object)s);//List实体类转换为object
                //获取生成的条码信息
@@ -1040,7 +1433,7 @@
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取资源绑定数据成功!";
                    objJsonResult.Message = "[0000-1-037]获取资源绑定数据成功!";
                    objJsonResult.data = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(ds.Tables[0], new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }));  //序列化DataSet中的时间格式,然后再反序列化回来
                    objJsonResult.list = listobj;
                    return objJsonResult;
@@ -1049,7 +1442,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有返回任何结果,条码不存在!";
                    objJsonResult.Message = "[0000-2-020]没有返回任何结果,条码不存在!";
                    objJsonResult.data = null;
                    objJsonResult.list = listobj;
                    return objJsonResult;
@@ -1060,12 +1453,40 @@
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "条码生成失败!" + e.Message;
                objJsonResult.Message = "[3899-2-006]条码生成失败!" + e.Message;
                return objJsonResult;
            }
        }
        #endregion
        #region[条码打印更新打印次数]
        /// <summary>
        /// æ›´æ–°æ‰“印次数
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="msg2"></param>
        /// <returns></returns>
        [Route("Sc_BarCode/UpdateBarcodePrintQty")]
        [HttpPost]
        public object UpdateBarcodePrintQty(string msg)
        {
            try
            {
                oCN.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HitemID in("+msg+")", ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "更新打印次数成功";
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "打印失败!打印结束 ï¼š" + e.ToString();
                return objJsonResult;
            }
        }
        #endregion
        #endregion
    }