using DAL; 
 | 
using DBUtility; 
 | 
using Newtonsoft.Json; 
 | 
using Newtonsoft.Json.Converters; 
 | 
using Newtonsoft.Json.Linq; 
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Data; 
 | 
using System.Linq; 
 | 
using System.Net; 
 | 
using System.Net.Http; 
 | 
using System.Web.Http; 
 | 
using WebAPI.Models; 
 | 
  
 | 
namespace WebAPI.Controllers.仓存管理.条码生成 
 | 
{ 
 | 
    public class Sc_BarCodeController : ApiController 
 | 
    { 
 | 
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更) 
 | 
  
 | 
        private json objJsonResult = new json(); 
 | 
        public DataSet ds = new DataSet(); 
 | 
        public WebServer webserver = new WebServer(); 
 | 
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); 
 | 
        private WebS.WebService1 oWebs = new WebS.WebService1(); 
 | 
        //获取系统参数 
 | 
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); 
 | 
        public Int64 HInterID = 0;      //内码 
 | 
        public string ModName = "85"; 
 | 
        public string HOrgNumber = ""; 
 | 
        public Int64 HOrgID = -1; 
 | 
        public string SourceQtyCtl = ""; //超源单数量控制 
 | 
  
 | 
  
 | 
        #region 条码生成 
 | 
  
 | 
        #region 条码生成获取工厂代码数据 
 | 
  
 | 
        [Route("Sc_BarCode/GetHWorksNumberBill")] 
 | 
        [HttpGet] 
 | 
        public object GetHWorksNumberBill() 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                string ERPMode = ""; 
 | 
                string CampanyName = ""; 
 | 
                string SourceQtyCtl = ""; 
 | 
                List<object> list = new List<object>(); 
 | 
                if (oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo) == false) 
 | 
                { 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 0; 
 | 
                    objJsonResult.Message = "获取系统参数失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; 
 | 
                    objJsonResult.data = null; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    ERPMode = oSystemParameter.omodel.WMS_WMSStockCtl_ERPMode; 
 | 
                    CampanyName = oSystemParameter.omodel.WMS_CampanyName; 
 | 
                    SourceQtyCtl = oSystemParameter.omodel.BarCode_SourceQtyCtl; 
 | 
                } 
 | 
                if (CampanyName == "飞龙") //系统参数  客户定制化名称 
 | 
                { 
 | 
                    list.Add("ZL"); 
 | 
                    list.Add("ST"); 
 | 
                    list.Add("SQ"); 
 | 
                    list.Add("MQ"); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    list.Add(CampanyName); 
 | 
                } 
 | 
                objJsonResult.code = "1"; 
 | 
                objJsonResult.count = 1; 
 | 
                objJsonResult.Message = "返回记录成功!"; 
 | 
                objJsonResult.list = list; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); 
 | 
                objJsonResult.data = null; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public static DataSet Sc_GetMESBeginStepWorkBill(string sWhere) 
 | 
        { 
 | 
            if (sWhere == null || sWhere.Equals("")) 
 | 
            { 
 | 
                return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Sc_MESBeginWorkBillList_NEW order by hmainid desc ", "h_v_Sc_MESBeginWorkBillList_NEW"); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                string sql1 = "select * from h_v_Sc_MESBeginWorkBillList_NEW where 1 = 1 "; 
 | 
                string sql = sql1 + sWhere + " order by hmainid desc "; 
 | 
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MESBeginWorkBillList_NEW"); 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region 条码生成获取条码类型数据 
 | 
  
 | 
        [Route("Sc_BarCode/GetHBarCodeTypeBill")] 
 | 
        [HttpGet] 
 | 
        public object GetHBarCodeTypeBill() 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                List<object> list = new List<object>(); 
 | 
                string sCapName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); 
 | 
                if (sCapName == "夏宝电器") 
 | 
                { 
 | 
                    list.Add("内销机条码"); 
 | 
                    list.Add("外销机条码"); 
 | 
                    list.Add("半成品条码"); 
 | 
                } 
 | 
                else if (sCapName == "博日科技") 
 | 
                { 
 | 
                    list.Add("仪器外购件条码普通规则"); 
 | 
                    list.Add("仪器外购件条码容器规则"); 
 | 
                    list.Add("仪器成品条码规则"); 
 | 
                    list.Add("试剂成品条码规则"); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    list.Add("唯一条码"); 
 | 
                    list.Add("品种条码"); 
 | 
                    list.Add("批次条码"); 
 | 
                    list.Add("托盘条码"); 
 | 
                } 
 | 
                objJsonResult.code = "1"; 
 | 
                objJsonResult.count = 1; 
 | 
                objJsonResult.Message = "返回记录成功!"; 
 | 
                objJsonResult.list = list; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); 
 | 
                objJsonResult.data = null; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region [通过源单类型查找不通单据信息] 
 | 
        [Route("Sc_BarCode/ReportFromBillList")] 
 | 
        [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 
 | 
            { 
 | 
                int count = 0; 
 | 
                int pageNum = page; 
 | 
                int pageSize = limit; 
 | 
                string sql = ""; 
 | 
                string tabname = ""; 
 | 
                if (sWhere == null || sWhere.Equals("")) 
 | 
                { 
 | 
                    sWhere = " where 1=1 and HOrgID='"+HOrgID+"' "; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    sWhere = " where 1=1 and HOrgID='" + HOrgID + "' " + sWhere; 
 | 
                } 
 | 
                switch (HSouceBillType) 
 | 
                { 
 | 
                    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 * 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 * 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 * 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"; 
 | 
                        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 * 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 "生产入库单": 
 | 
                        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 "采购入库单": 
 | 
                        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 "销售退货单": 
 | 
                        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 "工序流转卡": 
 | 
                        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; 
 | 
                    default: 
 | 
                        break; 
 | 
                } 
 | 
                ds = new SQLHelper.ClsCN().RunProcReturn(sql, tabname); 
 | 
                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"; 
 | 
                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) 
 | 
                { 
 | 
                    objJsonResult.code = "1"; 
 | 
                    objJsonResult.count = count; 
 | 
                    objJsonResult.Message = "获取资源绑定数据成功!"; 
 | 
                    objJsonResult.data = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(ds.Tables[0], new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }));  //序列化DataSet中的时间格式,然后再反序列化回来 
 | 
                    objJsonResult.list = columnNameList; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 0; 
 | 
                    objJsonResult.Message = "暂无资源绑定!"; 
 | 
                    objJsonResult.data = null; 
 | 
                    objJsonResult.list = columnNameList; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
            } 
 | 
            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(); 
 | 
                objJsonResult.data = null; 
 | 
                objJsonResult.list = columnNameList; 
 | 
            } 
 | 
            return objJsonResult; 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region [通过选择的源单信息查找源单数据] 
 | 
        [Route("Sc_BarCode/SelectReportFromBillList")] 
 | 
        [HttpPost] 
 | 
        public object SelectReportFromBillList([FromBody] JObject msg) 
 | 
        { 
 | 
            //List<DBUtility.BillSelect> oList,string HBarCodeType 
 | 
            var _value = msg["msg"].ToString(); 
 | 
            string msg1 = _value.ToString(); 
 | 
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); 
 | 
            string msg2 = sArray[0].ToString(); 
 | 
            string HSourceBillType = sArray[1].ToString(); 
 | 
            string HBarCodeType = sArray[2].ToString(); 
 | 
            string UserName = sArray[3].ToString(); 
 | 
            ClsPub.CurUserName = UserName; 
 | 
            ListModels oListModels = new ListModels(); 
 | 
            List<object> ListRows = new List<object>(); 
 | 
            try 
 | 
            { 
 | 
                
 | 
                msg2 = msg2.Replace("\\", ""); 
 | 
                msg2 = msg2.Replace("\n", "");  //\n 
 | 
                List<DBUtility.BillSelect> oList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DBUtility.BillSelect>>(msg2); 
 | 
                foreach (DBUtility.BillSelect oSelectRow in oList) 
 | 
                { 
 | 
                    HSouceOrderList ordrlist = new HSouceOrderList(); 
 | 
                    switch (oSelectRow.BillType) 
 | 
                    { 
 | 
                        case "3710": //生产订单 
 | 
                            //得到信息 
 | 
                            ds = oCN.RunProcReturn("select * from h_v_IFCLD_ICMOList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IFCLD_ICMOList"); 
 | 
                            //写入信息 
 | 
                            ListRows.Add(HSourceOrderList(ds.Tables[0],ordrlist, HBarCodeType)); 
 | 
                            break; 
 | 
                        case "3711": //生产汇报单 
 | 
                            //得到信息 
 | 
                            ds = oCN.RunProcReturn("select * from h_v_IF_ICMOReportList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_ICMOReportList"); 
 | 
                            //写入信息 
 | 
                            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"); 
 | 
                            //写入信息 
 | 
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType)); 
 | 
                            break; 
 | 
                        case "1103": //收料通知单 
 | 
                            //得到信息 
 | 
                            ds = oCN.RunProcReturn("select * from h_v_IF_POInStockList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POInStockList"); 
 | 
                            //写入信息 
 | 
                            ListRows.Add(HSourceOrderList1(ds.Tables[0], ordrlist, HBarCodeType, HSourceBillType)); 
 | 
                            break; 
 | 
                        case "1601": //委外订单 
 | 
                            //得到信息 
 | 
                            ds = oCN.RunProcReturn("select * from h_v_IF_EntrustOrderList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_EntrustOrderList"); 
 | 
                            //写入信息 
 | 
                            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": //其他入库单 
 | 
                            break; 
 | 
                        case "1207": //直接调拨单 
 | 
                            break; 
 | 
                        case "1239": //采购退料单 
 | 
                            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; 
 | 
                    } 
 | 
                } 
 | 
                objJsonResult.code = "1"; 
 | 
                objJsonResult.count = 1; 
 | 
                objJsonResult.Message = "获取数据成功!"; 
 | 
                objJsonResult.data = null; 
 | 
                objJsonResult.list = ListRows; 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
  
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = e.Message.ToString(); 
 | 
                objJsonResult.data = null; 
 | 
                objJsonResult.list = ListRows; 
 | 
            } 
 | 
            return objJsonResult; 
 | 
        } 
 | 
  
 | 
        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(); 
 | 
                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.HSourceBillNo = dt.Rows[i]["单据号"].ToString(); 
 | 
                ordrlist.HBillType = dt.Rows[i]["HBillType"].ToString(); 
 | 
                ordrlist.HDate = dt.Rows[i]["日期"].ToString(); //博日 收料单据日期 
 | 
                ordrlist.HShowDate = DateTime.Now.ToString(); 
 | 
                ordrlist.HSupID = dt.Rows[i]["hsupid"].ToString(); 
 | 
                ordrlist.HSupNumber = dt.Rows[i]["供应商代码"].ToString(); 
 | 
                ordrlist.HSupName = dt.Rows[i]["供应商"].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.HRemark = dt.Rows[i]["备注"].ToString(); 
 | 
                ordrlist.HMTONo = dt.Rows[i]["计划跟踪号"].ToString(); 
 | 
                ordrlist.HCusID = dt.Rows[i]["HCusID"].ToString(); 
 | 
                ordrlist.HCusNumber = dt.Rows[i]["客户代码"].ToString(); 
 | 
                ordrlist.HCusName = dt.Rows[i]["客户"].ToString(); 
 | 
                ordrlist.HCusType = dt.Rows[i]["客户型号"].ToString(); 
 | 
                ordrlist.HPinfanBarCode = dt.Rows[i]["HPinfanBarCode"].ToString(); 
 | 
                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(); 
 | 
                } 
 | 
                else if (HBarCodeType == "仪器外购件条码普通规则"|| HBarCodeType == "仪器成品条码规则"|| HBarCodeType == "试剂成品条码规则") 
 | 
                { 
 | 
                    ordrlist.HMinQty = "1"; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    ordrlist.HMinQty = dt.Rows[i]["最小包装数"].ToString(); 
 | 
                } 
 | 
            } 
 | 
            return ordrlist; 
 | 
        } 
 | 
  
 | 
        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(); 
 | 
                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.HDate = dt.Rows[i]["日期"].ToString(); //博日 收料单据日期 
 | 
                ordrlist.HShowDate = DateTime.Now.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.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(); 
 | 
                } 
 | 
                else if (HBarCodeType == "仪器外购件条码普通规则") 
 | 
                { 
 | 
                    ordrlist.HMinQty = "1"; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    ordrlist.HMinQty = dt.Rows[i]["最小包装数"].ToString(); 
 | 
                } 
 | 
                ordrlist.HMaker = ClsPub.CurUserName; 
 | 
                if (HSourceBillType== "收料通知单"|| HSourceBillType== "采购订单"|| HSourceBillType=="委外订单"|| HSourceBillType== "采购入库单")  
 | 
                { 
 | 
                    ordrlist.HInnerBillNo = dt.Rows[i]["内部采购订单号"].ToString(); 
 | 
                    ordrlist.HSupID= dt.Rows[i]["hsupid"].ToString(); 
 | 
                    ordrlist.HSupNumber = dt.Rows[i]["供应商代码"].ToString(); 
 | 
                    ordrlist.HSupName = dt.Rows[i]["供应商"].ToString(); 
 | 
                    if (HSourceBillType == "收料通知单") 
 | 
                    { 
 | 
                        if (dt.Rows[i]["是否赠品"].ToString() == "是") 
 | 
                        { 
 | 
                            ordrlist.HGiveAwayFlag = 1; 
 | 
                        } 
 | 
                        else 
 | 
                        { 
 | 
                            ordrlist.HGiveAwayFlag = 0; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                if (HSourceBillType == "退货通知单") 
 | 
                { 
 | 
                    ordrlist.HCusID = dt.Rows[i]["HCusID"].ToString(); 
 | 
                    ordrlist.HCusNumber = dt.Rows[i]["客户代码"].ToString(); 
 | 
                    ordrlist.HCusName= 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="生成批次失败!"; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                else if (DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][0]) == "1") 
 | 
                { 
 | 
                    objJsonResult.code = "1"; 
 | 
                    objJsonResult.Message = "生成批次成功!"; 
 | 
                    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="没有需要生成批次的明细行!"; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
            else //完全封闭 
 | 
            { 
 | 
                return null; 
 | 
            } 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region [条码生成接口] 
 | 
        [Route("Sc_BarCode/Sub_SaveBill")] 
 | 
        [HttpPost] 
 | 
        public object Sub_SaveBill([FromBody] JObject msg) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                var _value = msg["msg"].ToString(); 
 | 
                string msg1 = _value.ToString(); 
 | 
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); 
 | 
                string msg2 = sArray[0].ToString(); 
 | 
                string HOrgType = sArray[1].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); 
 | 
                DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); 
 | 
                HOrgNumber = ""; 
 | 
                if (oClsGy_ORGANIZATIONS_View.GetInfoByName(HOrgType)) 
 | 
                { 
 | 
                    HOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID; 
 | 
                    HOrgNumber = DBUtility.ClsPub.isStrNull(oClsGy_ORGANIZATIONS_View.omodel.HNumber); 
 | 
                } 
 | 
                if (HOrgID == -1) 
 | 
                { 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 0; 
 | 
                    objJsonResult.Message = "选择组织有错误!"; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                if (!Sub_AllowSave(msg2, HSelectBarCodeType))//单据完整性判断 
 | 
                { 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                if (HSelectBarCodeType == "仪器成品条码规则") 
 | 
                { 
 | 
                    //客户定制 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    //生成条码 
 | 
                    SaveBarCode(msg2, HSelectBarCodeType, CampanyName, HSourceBillTypeName); 
 | 
                } 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "条码生成失败!"+e.Message; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
            return objJsonResult; 
 | 
        } 
 | 
        #endregion         
 | 
  
 | 
        #region[单据完整性判断] 
 | 
        private bool Sub_AllowSave(string msg2, string HSelectBarCodeType) 
 | 
        { 
 | 
            msg2 = msg2.Replace("\\", ""); 
 | 
            msg2 = msg2.Replace("\n", "");  //\n 
 | 
            List<HSouceOrderList> ordrlist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HSouceOrderList>>(msg2); 
 | 
  
 | 
            string sHRemark = ""; 
 | 
            for (int i = 0; i < ordrlist.Count; i++) 
 | 
            { 
 | 
                long HSno = i + 1;                                                          // 序号 
 | 
                string HBarCodeType = HSelectBarCodeType;                                   // 条码类型 
 | 
                string HSourceBillNo = DBUtility.ClsPub.isStrNull(ordrlist[i].HBillNo);     // 源单单号 
 | 
                long HMaterID = DBUtility.ClsPub.isLong(ordrlist[i].HMaterID);              // 物料内码 
 | 
                string HBatchNo = DBUtility.ClsPub.isStrNull(ordrlist[i].HBatchNo);         // 批号 
 | 
                long HAuxPropID = DBUtility.ClsPub.isLong(ordrlist[i].HAuxPropID);          // 辅助属性ID 
 | 
                double HSourceQty = DBUtility.ClsPub.isDoule(ordrlist[i].HMinQty);          // 源单数量 
 | 
                double HQty = DBUtility.ClsPub.isDoule(ordrlist[i].HQty);                   // 数量 
 | 
                double HMinQty = DBUtility.ClsPub.isDoule(ordrlist[i].HMinQty);             // 最小包装数 
 | 
                if (HMaterID != 0) 
 | 
                { 
 | 
                    DataSet oDsCheck = oCN.RunProcReturn("exec h_p_Gy_BarCodeBill_AddCheck " + HSno.ToString() + ",'" + HBarCodeType + "','" + HSourceBillNo + "'," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HAuxPropID.ToString() + "," + HSourceQty.ToString() + "," + HQty.ToString() + "," + HMinQty.ToString() + "," + HOrgID.ToString() + ",'" + SourceQtyCtl + "'", "h_p_Gy_BarCodeBill_AddCheck"); 
 | 
                    if (oDsCheck == null && oDsCheck.Tables[0].Rows.Count == 0) 
 | 
                    { 
 | 
                        objJsonResult.code = "0"; 
 | 
                        objJsonResult.count = 0; 
 | 
                        objJsonResult.Message = "条码生成完整性判断错误"; 
 | 
                        return false; 
 | 
                    } 
 | 
                    else if (DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0][0]) == "1") 
 | 
                    { 
 | 
                        sHRemark = sHRemark + DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HRemark"]); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            if (sHRemark != "") 
 | 
            { 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = sHRemark; 
 | 
                return false; 
 | 
            } 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region[条码生成方法] 
 | 
        private object SaveBarCode(string msg2, string HSelectBarCodeType, string CampanyName,string HSourceBillTypeName) 
 | 
        { 
 | 
            int LSHlen = 6;             //流水号长度 
 | 
            int SumLen = 10;            //总长度 
 | 
            string TM = "";             //条码 
 | 
            string HNumber = "";        //物料内码 
 | 
            string HMaterNumber = "";   //物料代码 
 | 
            double HSumQty = 0;         //产品数量 
 | 
            double HMinQty = 0;         //最小包装数 
 | 
            int HBQty = 0;              //箱数 
 | 
            double HQty = 0;            //数量 
 | 
            string WeiShu = "";         //尾数 
 | 
            int LSH = 0;                //流水号 
 | 
            string LSH2 = "";           //流水号转换成字符 
 | 
            string sDate = "";          //日期 
 | 
            string sYear = "";          //年 
 | 
            string sPeriod = "";        //月 
 | 
            string sDay = "";           //日 
 | 
            string HBatchNo = "";       //批次 
 | 
            string HYasuoji = "";       //压缩机 
 | 
            string HModelName = "";       //机型 
 | 
            string HICMOBillNo = "";       //源单号 
 | 
            string HBarCodeBatchNo = "";       //条码批次号 
 | 
            string HBarCodeDate = "";         //条码日期 
 | 
            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 
 | 
            List<HSouceOrderList> ordrlist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HSouceOrderList>>(msg2); 
 | 
            List<HBarCodeList> ListRows = new List<HBarCodeList>(); 
 | 
            for (int j = 0; j < ordrlist.Count; j++) 
 | 
            { 
 | 
                if (ClsPub.isLong(ordrlist[j].HMaterID) != 0) 
 | 
                { 
 | 
                    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(); 
 | 
                    // 
 | 
                    if (HSelectBarCodeType == "仪器外购件条码普通规则" || HSelectBarCodeType == "仪器外购件条码容器规则") //单据日期(收料通知单) 
 | 
                    { 
 | 
                        sDate = DBUtility.ClsPub.isStrNull(ordrlist[j].HDate); 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "试剂成品条码规则")// 失效日期(生产订单) 
 | 
                    { 
 | 
                        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); 
 | 
                    } 
 | 
                    HYasuoji = DBUtility.ClsPub.isStrNull(ordrlist[j].HPinfan); //压缩机代码(夏宝电器) 
 | 
                    HModelName = DBUtility.ClsPub.isStrNull(ordrlist[j].HCusType); //机型(夏宝电器) 
 | 
                    HICMOBillNo = DBUtility.ClsPub.isStrNull(ordrlist[j].HSourceBillNo); //生产订单号(夏宝电器) 
 | 
                    HBarCodeBatchNo = DBUtility.ClsPub.isStrNull(ordrlist[j].HPinfanBarCode); //条码批次号(夏宝电器) 
 | 
                    HBarCodeDate = DBUtility.ClsPub.isStrNull(ordrlist[j].HSupNumber); //条码日期(夏宝电器) 
 | 
                    // 
 | 
                    sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); 
 | 
                    sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); 
 | 
                    sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); 
 | 
                    sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); 
 | 
                    sDay = sDay.Substring(sDay.Length - 2, 2); 
 | 
                    //================================== 
 | 
                    if (HSelectBarCodeType == "唯一条码") 
 | 
                    { 
 | 
                        if (CampanyName == "卓力") //系统参数  客户定制化名称 
 | 
                        { 
 | 
                            //条码前缀 = 物料代码 + 年 + 月 + 日 
 | 
                            sTMNumber = HNumber + sYear + sPeriod + sDay; 
 | 
                            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 == "飞龙") 
 | 
                        { 
 | 
                            string HWorksNumber = ""; 
 | 
                            HWorksNumber = CampanyName; 
 | 
                            if (HWorksNumber == "") 
 | 
                            { 
 | 
                                objJsonResult.code = "0"; 
 | 
                                objJsonResult.count = 0; 
 | 
                                objJsonResult.Message = "工厂代码不能为空!"; 
 | 
                                return objJsonResult; 
 | 
                            } 
 | 
                            //条码前缀 = 工厂代码 + 物料内码 + 日期 
 | 
                            sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay; 
 | 
                            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  //通用方法 
 | 
                        { 
 | 
                            //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 
 | 
                            sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay; 
 | 
                            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 (HSelectBarCodeType == "品种条码") 
 | 
                    { 
 | 
                        if (CampanyName == "五云") //系统参数  客户定制化名称 
 | 
                        { 
 | 
                            TM = HNumber + ";" + DBUtility.ClsPub.isStrNull(ordrlist[j].HMTONo); 
 | 
                        } 
 | 
                        else 
 | 
                        { 
 | 
                            TM = HOrgNumber + HNumber; 
 | 
                        } 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "批次条码") 
 | 
                    { 
 | 
                        TM = HOrgNumber + HNumber + HBatchNo; 
 | 
                    }//博日特殊处理 
 | 
                    else if (HSelectBarCodeType == "仪器外购件条码普通规则" || HSelectBarCodeType == "仪器外购件条码容器规则") 
 | 
                    { 
 | 
                        //物料编码+单据日期(YYMMDD)+流水4位  
 | 
                        sTMNumber = HMaterNumber + sYear + sPeriod + sDay; 
 | 
                        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]); 
 | 
                        LSHlen = 4; 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "仪器成品条码规则") //另外处理了 
 | 
                    { 
 | 
                        //物料编码+序列号+生产日期 
 | 
                        //sTMNumber = HMaterNumber + sYear + sPeriod + sDay; 
 | 
                        //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 (HSelectBarCodeType == "试剂成品条码规则") 
 | 
                    { 
 | 
                        //物料编码+生产批号+流水号6位- 
 | 
                        sTMNumber = HMaterNumber + HBatchNo; 
 | 
                        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]); 
 | 
                        LSHlen = 6; 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "内销机条码") 
 | 
                    { 
 | 
                        //制造本部1位(默认1)+机型代码5位()+年2位+月1位(A、B、C代替10月份) 
 | 
                        //+日2位+条码批次码2位+压缩机代码1位+00+流水号4位+校验码(默认0) 
 | 
                        sTMNumber = "1" + HModelName + HBarCodeDate + HBarCodeBatchNo + HYasuoji + "00"; 
 | 
                        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]); 
 | 
                        LSHlen = 5; 
 | 
                        if (sTMNumber.Length != 16) 
 | 
                        { 
 | 
                            objJsonResult.code = "0"; 
 | 
                            objJsonResult.count = 0; 
 | 
                            objJsonResult.Message = "条码长度不够16位,是否数据不全!制造本部1位:[0] + 机型代码5位:[" + HModelName + "] + 年月日5位:[" + HBarCodeDate + "] + 批次号2位:[" + HBarCodeBatchNo + "]+ 压缩机1位:[" + HYasuoji + "]+00 ; "; 
 | 
                            return objJsonResult; 
 | 
                        } 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "外销机条码") 
 | 
                    { 
 | 
                        //物料代码11位+年2位+月1位(A、B、C代替10月份)+日2位+批次2位+流水号4位 
 | 
                        //sTMNumber = HMaterNumber.Replace(Convert.ToChar("."),Convert.ToChar("")) + HBarCodeDate + HBarCodeBatchNo; 
 | 
                        sTMNumber = HMaterNumber.Replace(".", "") + HBarCodeDate + HBarCodeBatchNo; 
 | 
                        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]); 
 | 
                        LSHlen = 5; 
 | 
                        if (sTMNumber.Length != 18) 
 | 
                        { 
 | 
                            objJsonResult.code = "0"; 
 | 
                            objJsonResult.count = 0; 
 | 
                            objJsonResult.Message = "条码长度不够18位,是否数据不全!物料代码11位:[" + HMaterNumber.Replace(".", "") + "]+年月日5位:[" + HBarCodeDate + "]+批次号2位:[" + HBarCodeBatchNo + "];"; 
 | 
                            return objJsonResult; 
 | 
                        } 
 | 
                    } 
 | 
                    else if (HSelectBarCodeType == "半成品条码") 
 | 
                    { 
 | 
                        //生产订单号+4位流水号 
 | 
                        sTMNumber = HICMOBillNo; 
 | 
                        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]); 
 | 
                        LSHlen = 5; 
 | 
                    } 
 | 
                    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"; 
 | 
                        objJsonResult.count = 0; 
 | 
                        objJsonResult.Message = "错误的条码类型,不能生成条码!"; 
 | 
                        return objJsonResult; 
 | 
                    } 
 | 
  
 | 
                    HBQty = HBQty + ClsPub.isInt(ordrlist[j].HBQty); 
 | 
                    HMinQty = ClsPub.isDoule(ordrlist[j].HMinQty); 
 | 
                    HSumQty = ClsPub.isDoule(ordrlist[j].HQty); 
 | 
                    n = 0; 
 | 
                     
 | 
                    for (int i = k; i < HBQty; i++) 
 | 
                    { 
 | 
                        if (HSumQty - HMinQty > 0) 
 | 
                        { 
 | 
                            WeiShu = ""; 
 | 
                            HSumQty = HSumQty - HMinQty; 
 | 
                        } 
 | 
                        else 
 | 
                        { 
 | 
                            if (HSumQty == HMinQty) 
 | 
                            { 
 | 
                                WeiShu = ""; 
 | 
                            } 
 | 
                            else 
 | 
                            { 
 | 
                                WeiShu = "尾数"; 
 | 
                            } 
 | 
                            HMinQty = HSumQty; 
 | 
                        } 
 | 
                        // 
 | 
                        LSH = LSH + 1; 
 | 
                        LSH2 = LSH.ToString(); 
 | 
                        while (LSH2.Length < LSHlen)  //如果流水号小于6位数前面补0 
 | 
                        { 
 | 
                            LSH2 = "0" + LSH2; 
 | 
                        } 
 | 
                        if (HSelectBarCodeType == "唯一条码" || HSelectBarCodeType == "托盘条码") 
 | 
                        { 
 | 
                            //条码编号 = 条码前缀 + 流水号 
 | 
                            TM = sTMNumber + LSH2; 
 | 
                        } 
 | 
                        else if (HSelectBarCodeType == "仪器外购件条码普通规则" || HSelectBarCodeType == "仪器外购件条码容器规则" || HSelectBarCodeType == "试剂成品条码规则" 
 | 
                            || HSelectBarCodeType == "半成品条码" || HSelectBarCodeType == "外销机条码") 
 | 
                        { 
 | 
                            TM = sTMNumber + LSH2; 
 | 
  
 | 
                        } 
 | 
                        else if (HSelectBarCodeType == "内销机条码") 
 | 
                        { 
 | 
                            TM = sTMNumber + LSH2 + "0"; 
 | 
                        } 
 | 
                        // 
 | 
                        if (TM.Trim() == "") 
 | 
                        { 
 | 
                            objJsonResult.code = "0"; 
 | 
                            objJsonResult.count = 0; 
 | 
                            objJsonResult.Message = "条形码不能为空,不能生成条码!"; 
 | 
                            return objJsonResult; 
 | 
                        } 
 | 
                        HBarCodeList barcode = new HBarCodeList(); 
 | 
                        barcode.HBarCode2 = TM; 
 | 
                        barcode.HEntryID2 = ClsPub.isStrNull(j + 1); 
 | 
                        barcode.HMaterID2 = ordrlist[j].HMaterID; 
 | 
                        barcode.HMaterNumber2 = ordrlist[j].HMaterNumber; 
 | 
                        barcode.HMaterName2 = ordrlist[j].HMaterName; 
 | 
                        barcode.HMaterModel2 = ordrlist[j].HMaterModel; 
 | 
                        barcode.HPinfan2 = ordrlist[j].HPinfan; 
 | 
                        barcode.HPinfanBarCode2 = ordrlist[j].HPinfanBarCode; 
 | 
  
 | 
  
 | 
                        barcode.HAuxPropID2 = ordrlist[j].HAuxPropID; 
 | 
                        barcode.HAuxPropNumber2 = ordrlist[j].HAuxPropNumber; 
 | 
                        barcode.HAuxPropName2 = ordrlist[j].HAuxPropName; 
 | 
  
 | 
                        barcode.HUnitID2 = ordrlist[j].HUnitID; 
 | 
                        barcode.HUnitNumber2 = ordrlist[j].HUnitNumber; 
 | 
                        barcode.HUnitName2 = ordrlist[j].HUnitName; 
 | 
  
 | 
                        barcode.HQty2 = ClsPub.isStrNull(HMinQty); 
 | 
                        barcode.HBatchNo2 = ordrlist[j].HBatchNo; 
 | 
                        barcode.HSourceInterID2 = ordrlist[j].HMainID; 
 | 
                        barcode.HSourceEntryID2 = ordrlist[j].HSubID; 
 | 
                        barcode.HSourceBillNo2 = ordrlist[j].HBillNo; 
 | 
                        barcode.HSourceBillType2 = ordrlist[j].HBillType; 
 | 
                        barcode.HPrint = "0"; 
 | 
                        barcode.HWei = WeiShu; 
 | 
                        barcode.HBarcodeNo = ClsPub.isStrNull(n + 1); 
 | 
                        barcode.HBarcodeQtys = ordrlist[j].HBQty; 
 | 
                        barcode.HSupID2 = ordrlist[j].HSupID; 
 | 
                        barcode.HSupNumber2 = ordrlist[j].HSupNumber; 
 | 
                        barcode.HSupName2 = ordrlist[j].HSupName; 
 | 
                        barcode.HDeptID2 = ordrlist[j].HDeptID; 
 | 
                        barcode.HDeptNumber2 = ordrlist[j].HDeptNumber; 
 | 
                        barcode.HDeptName2 = ordrlist[j].HDeptName; 
 | 
                        barcode.HRemark2 = ordrlist[j].HRemark; 
 | 
                        barcode.HDate2 = ordrlist[j].HDate; 
 | 
                        barcode.HShowDate2 = ordrlist[j].HShowDate; 
 | 
                        barcode.HWhID2 = ordrlist[j].HWhID; 
 | 
                        barcode.HWhNumber2 = ordrlist[j].HWhNumber; 
 | 
                        barcode.HWhName2 = ordrlist[j].HWhName; 
 | 
                        barcode.HSPID2 = ordrlist[j].HSPID; 
 | 
                        barcode.HSPNumber2 = ordrlist[j].HSPNumber; 
 | 
                        barcode.HSPName2 = ordrlist[j].HSPName; 
 | 
                        barcode.HMTONo2 = ordrlist[j].HMTONo; 
 | 
                        barcode.HCusID2 = ordrlist[j].HCusID; 
 | 
                        barcode.HCusNumber2 = ordrlist[j].HCusNumber; 
 | 
                        barcode.HCusName2 = ordrlist[j].HCusName; 
 | 
                        barcode.HCusType2 = ordrlist[j].HCusType; 
 | 
                        barcode.HSourceID2 = ordrlist[j].HSourceID; 
 | 
                        barcode.HSourceNumber2 = ordrlist[j].HSourceNumber; 
 | 
                        barcode.HSourceName2 = ordrlist[j].HSourceName; 
 | 
                        barcode.HEndDate2 = ordrlist[j].HEndDate; 
 | 
                        barcode.HSeOrderBillNo2 = ordrlist[j].HSeOrderBillNo; 
 | 
                        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; 
 | 
                        oCN.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            string HWei = "";      //尾数 
 | 
            string HBarCode = ""; 
 | 
            string HBarCodeType = ""; 
 | 
            Int64 HMaterID = 0; 
 | 
            Int64 HAuxPropID = 0; 
 | 
            Int64 HUnitID = 0; 
 | 
            double HQty2 = 0; 
 | 
            string HBatchNo2 = ""; 
 | 
            Int64 HSupID = 0; 
 | 
            Int64 HGroupID2 = 0; 
 | 
            int HPrintQty = 0; 
 | 
            Int64 HSourceInterID = 0; 
 | 
            Int64 HSourceEntryID = 0; 
 | 
            string HSourceBillNo = ""; 
 | 
            string HSourceBillType = ""; 
 | 
            Int64 HBarcodeNo = 0;       //托号 
 | 
            Int64 HBarcodeQtys = 0;     //总托数 
 | 
            Int64 HDeptID = 0; 
 | 
            Int64 HWhID = 0; 
 | 
            Int64 HSPID = 0; 
 | 
            string HRemark = ""; 
 | 
            string HMaterName = ""; 
 | 
            string HMaterModel = ""; 
 | 
            string HPinfan = ""; 
 | 
            string HMTONo = ""; 
 | 
            Int64 HCusID = 0; 
 | 
            string HCusType = ""; 
 | 
            DateTime HEndDate; 
 | 
            string HWorkLineName = ""; 
 | 
            string HSeOrderBillNo = ""; 
 | 
            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(); 
 | 
                for (int i = 0; i < ListRows.Count; i++) 
 | 
                { 
 | 
                    if (ClsPub.isLong(ListRows[i].HMaterID2) != 0) 
 | 
                    { 
 | 
                        HWei = ClsPub.isStrNull(ListRows[i].HWei); 
 | 
                        HBarCode = ClsPub.isStrNull(ListRows[i].HBarCode2); 
 | 
                        // 
 | 
                        HBarCodeType = ClsPub.isStrNull(HSelectBarCodeType); 
 | 
                        if (CampanyName == "博日科技" || CampanyName == "夏宝电器") 
 | 
                        { 
 | 
                            HBarCodeType = "唯一条码"; 
 | 
                        } 
 | 
                        // 
 | 
                        HMaterID = ClsPub.isLong(ListRows[i].HMaterID2); 
 | 
                        HEntryID = ClsPub.isLong(ListRows[i].HEntryID2); 
 | 
                        HAuxPropID = ClsPub.isLong(ListRows[i].HAuxPropID2); 
 | 
                        HUnitID = ClsPub.isLong(ListRows[i].HUnitID2); 
 | 
                        HQty2 = ClsPub.isDoule(ListRows[i].HQty2); 
 | 
                        HBatchNo2 = ClsPub.isStrNull(ListRows[i].HBatchNo2); 
 | 
                        HSourceInterID = ClsPub.isLong(ListRows[i].HSourceInterID2); 
 | 
                        HSourceEntryID = ClsPub.isLong(ListRows[i].HSourceEntryID2); 
 | 
                        HSourceBillNo = ClsPub.isStrNull(ListRows[i].HSourceBillNo2); 
 | 
                        HSourceBillType = ClsPub.isStrNull(ListRows[i].HSourceBillType2); 
 | 
                        HBarcodeQtys = ClsPub.isLong(ListRows[i].HBarcodeQtys); 
 | 
                        HBarcodeNo = ClsPub.isLong(ListRows[i].HBarcodeNo); 
 | 
                        HSupID = ClsPub.isLong(ListRows[i].HSupID2); 
 | 
                        HDeptID = ClsPub.isLong(ListRows[i].HDeptID2); 
 | 
                        HWhID = ClsPub.isLong(ListRows[i].HWhID2); 
 | 
                        HSPID = ClsPub.isLong(ListRows[i].HSPID2); 
 | 
                        HRemark = ClsPub.isStrNull(ListRows[i].HRemark2); 
 | 
                        HMaterName = ClsPub.isStrNull(ListRows[i].HMaterName2); 
 | 
                        HMaterModel = ClsPub.isStrNull(ListRows[i].HMaterModel2); 
 | 
                        HPinfan = ClsPub.isStrNull(ListRows[i].HPinfan2); 
 | 
                        HMTONo = ClsPub.isStrNull(ListRows[i].HMTONo2); 
 | 
                        HCusID = ClsPub.isLong(ListRows[i].HCusID2); 
 | 
                        HCusType = ClsPub.isStrNull(ListRows[i].HCusType2); 
 | 
                        HEndDate = ClsPub.isDate(ListRows[i].HEndDate2); 
 | 
                        HWorkLineName = ClsPub.isStrNull(ListRows[i].HSourceName2); 
 | 
                        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 " + 
 | 
                                    ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + 
 | 
                                    ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + 
 | 
                                    ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " + 
 | 
                                    ",HGiveAwayFlag " + 
 | 
                                    ",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() + "," + 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 + "','" + HCoilNO2 + "','" + HFurnaceNO2 + "','" + HFactory2 + "'," + HAuxQty2 + ",'" + HheatNO2 + "','" + HProduceDate + "','" + HExpiryDate + "'," + HEmpID2.ToString() + ",'" + HCusModel2 + "','" + HCusMaterName2 + "','" + HCheckEmpName2 + "'" + ")"); 
 | 
  
 | 
  
 | 
                        //HNumber = ClsPub.isStrNull(grdSub.Rows[i].Cells[HMaterID2Col].Value); 
 | 
                        //if (cmbHBarCodeType.Text == "唯一条码") 
 | 
                        //{ 
 | 
                        //    if (CampanyName == "卓力") //系统参数  客户定制化名称 
 | 
                        //    { 
 | 
                        //        //条码前缀 = 物料代码 + 年 + 月 + 日 
 | 
                        //        sTMNumber = HNumber + sYear + sPeriod + sDay;  
 | 
                        //    } 
 | 
                        //    else if (CampanyName == "飞龙") 
 | 
                        //    { 
 | 
                        //        string HWorksNumber = ""; 
 | 
                        //        HWorksNumber = cmbHWorksNumber.Text; 
 | 
                        //        if (HWorksNumber == "") 
 | 
                        //        { 
 | 
                        //            MessageBox.Show("工厂代码不能为空!"); 
 | 
                        //            return; 
 | 
                        //        } 
 | 
                        //        //条码前缀 = 工厂代码 + 物料内码 + 日期 
 | 
                        //        sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay;  
 | 
                        //    } 
 | 
                        //    else  //通用方法 
 | 
                        //    { 
 | 
                        //        //条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 
 | 
                        //        sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay;  
 | 
                        //    } 
 | 
                        //} 
 | 
                        //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'"); 
 | 
                    } 
 | 
                } 
 | 
                //增加 条码超过未生成功能控制 
 | 
  
 | 
                // 
 | 
  
 | 
  
 | 
                //条码生成时同步生成条码出入库记录 
 | 
                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 
 | 
                //获取生成的条码信息 
 | 
                string sql = string.Format(@"select * from h_v_IF_BarCodeBillList Where HinterID=" + HInterID.ToString() + " order by HItemID"); 
 | 
                ds = new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_IF_ICMOBillList_Table"); 
 | 
  
 | 
                if (ds.Tables[0].Rows.Count > 0) 
 | 
                { 
 | 
                    objJsonResult.code = "1"; 
 | 
                    objJsonResult.count = 1; 
 | 
                    objJsonResult.Message = "获取资源绑定数据成功!"; 
 | 
                    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; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 0; 
 | 
                    objJsonResult.Message = "没有返回任何结果,条码不存在!"; 
 | 
                    objJsonResult.data = null; 
 | 
                    objJsonResult.list = listobj; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                oCN.RollBack(); 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "条码生成失败!" + 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 
 | 
    } 
 | 
} 
 |