Esempio n. 1
0
 public ResultMessage SubmitRglToErp(RglClass ParamRgl)
 {
     return(ErpBusiness.SubmitRglToErp(ParamRgl));
 }
Esempio n. 2
0
        /// <summary>
        /// 上架作业ERP回传【一般模式】
        /// </summary>
        /// <param name="paramRgl"></param>
        /// <returns></returns>
        public static ResultMessage SubmitRglToErp(RglClass paramRgl)
        {
            ResultMessage result;

            if (paramRgl.ItemCount != paramRgl.ItemList.Count)
            {
                result = new ResultMessage(false, "提交的数据行数不一致!", "提交的数据行数不一致!");
            }
            else
            {
                List <SqlItem> list = new List <SqlItem>();
                string         sql  = string.Format(@"   IF NOT EXISTS(SELECT * FROM WMS_SWAP_RGL WHERE PO_CODE = '{0}'
                                                INSERT INTO WMS_SWAP_RGL
                                                    (PO_CODE, WORK_BY_CODE, WORK_TIME, WH_ID, ITEM_COUNT, CR_DATE, LM_DATE,
                                                     STATUS_ID, WMSID, N_1, N_2, N_3, N_4, SHIP_CODE)
                                                SELECT
                                                    '{1}' PO_CODE,
                                                    '{2}' WORK_BY_CODE,
                                                    '{3}' WORK_TIME,
                                                    '{4}' WH_ID,
                                                    '{5}' ITEM_COUNT,
                                                    '{6}' CR_DATE,
                                                    '{7}' LM_DATE,
                                                    '{8}' STATUS_ID,
                                                    '{9}' WMSID,
                                                    '{10}' N_1,
                                                    '{11}' N_2,
                                                    '{12}' N_3,
                                                    '{13}' N_4,
                                                    '{14}' SHIP_CODE",
                                                    paramRgl.PoCode,
                                                    paramRgl.PoCode, (paramRgl.WorkByCode), paramRgl.WorkTime.ToString("yyyy-MM-dd HH:mm:ss"),
                                                    paramRgl.WhId.ToString(), paramRgl.ItemCount.ToString(), paramRgl.CrDate.ToString("yyyy-MM-dd HH:mm:ss"),
                                                    paramRgl.LmDate.ToString("yyyy-MM-dd HH:mm:ss"), paramRgl.StatusId.ToString(), paramRgl.WmsId.ToString(),
                                                    paramRgl.N_1.ToString(), paramRgl.N_2.ToString(), paramRgl.N_3.ToString(), paramRgl.N_4.ToString(),
                                                    paramRgl.ShipCode.ToString());
                list.Add(new SqlItem(sql, -1));

                foreach (RglItemClass item in paramRgl.ItemList)
                {
                    string itemSql = string.Format(@"   IF NOT EXISTS (SELECT * FROM WMS_SWAP_RGL_ITEM P WHERE P.WMSID = '{0}' AND P.PO_CODE = '{1}')
                                                        INSERT INTO WMS_SWAP_RGL_ITEM
                                                            (WMS_SWAP_RGL_ID, PO_ITEM_ID, PO_CODE, PO_ITEM_INDEX, GOODS_CODE, BATCH_NO,
                                                            EXP_DATE, MANU_DATE, UNIT_CODE, QTY, UNIT_QTY, WORK_BY_CODE,
                                                            WORK_TIME, WH_ID, WMSID, CR_DATE, N_1, N_2,
                                                            N_3, N_4, ERP_G_ID, FROM_LOC_CODE, TO_LOC_CODE, UNIT_PRICE, CHECK_QTY, REJECT_QTY, REJECT_REASON)
                                                        SELECT
                                                            (SELECT H.WMS_SWAP_RGL_ID FROM WMS_SWAP_RGL H WHERE H.PO_CODE = '{2}',
                                                            '{3}' PO_ITEM_ID,
                                                            '{4}' PO_CODE,
                                                            '{5}' PO_ITEM_INDEX,
                                                            '{6}' GOODS_CODE,
                                                            '{7}' BATCH_NO,
                                                            {8} EXP_DATE,
                                                            {9} MANU_DATE,
                                                            '{10}' UNIT_CODE,
                                                            '{11}' QTY,
                                                            '{12}' UNIT_QTY,
                                                            '{13}' WORK_BY_CODE,
                                                            '{14}' WORK_TIME,
                                                            '{15}' WH_ID,
                                                            '{16}' WMSID,
                                                            '{17}' CR_DATE,
                                                            '{18}' N_1,
                                                            '{19}' N_2,
                                                            '{20}' N_3,
                                                            '{21}' N_4,
                                                            '{22}' ERP_G_ID,
                                                            '{23}' FROM_LOC_CODE,
                                                            '{24}' TO_LOC_CODE,
                                                            '{25}' UNIT_PRICE,
                                                            '{26}' CHECK_QTY,
                                                            '{27}' REJECT_QTY,
                                                            '{28}' REJECT_REASON",
                                                   item.WmsId, paramRgl.PoCode, paramRgl.PoCode,
                                                   item.PoItemId.ToString(), paramRgl.PoCode.ToString(), item.PoItemIndex.ToString(), item.GCode.ToString(), item.BatchNo.ToString(),
                                                   !string.IsNullOrEmpty(item.ExpDate) && DateTime.TryParse(item.ExpDate, out DateTime tmpDt1) ? item.ExpDate : "NULL",
                                                   !string.IsNullOrEmpty(item.ManuDate) && DateTime.TryParse(item.ManuDate, out DateTime tmpDt2) ? item.ManuDate : "NULL",
                                                   item.GpCode.ToString(), item.Qty.ToString(), item.GpUnitQty.ToString(), item.WorkByCode.ToString(), item.WorkTime.ToString("yyyy-MM-dd HH:mm:ss"),
                                                   item.WhId, item.WmsId, item.CrDate.ToString("yyyy-MM-dd HH:mm:ss"), item.N_1.ToString(), item.N_2.ToString(), item.N_3.ToString(), item.N_4.ToString(),
                                                   item.ErpGoodsId == null ? "" : item.ErpGoodsId.ToString(),
                                                   item.FromLocCode == null ? "" : item.FromLocCode.ToString(),
                                                   item.ToLocCode == null ? "" : item.ToLocCode.ToString(),
                                                   item.UnitPrice.ToString(), item.CheckQty.ToString(), item.RejectQty.ToString(), item.RejectReason.ToString());
                    list.Add(new SqlItem(itemSql, -1));
                }
                try
                {
                    SqlItemResult sqlItemResultClass = Common.MsSqlDB.RunUpdateSqlBatchWithTran(list);
                    if (!sqlItemResultClass.SqlResult)
                    {
                        return(new ResultMessage(false, sqlItemResultClass.ErrorMessage.ToString(), sqlItemResultClass.ErrorMessage.ToString() + ";" + sqlItemResultClass.ErrorDescript.ToString()));
                    }
                }
                catch (Exception ex)
                {
                    Exception ex2 = ex;
                    result = new ResultMessage(false, "执行数据转换失败!", ex2.Message.ToString());
                    return(result);
                }
                if (paramRgl.ItemCount != Common.MsSqlDB.GetIntegerBySql("SELECT COUNT(*) ITEM_COUNT FROM WMS_SWAP_RGL_ITEM I WHERE I.PO_CODE = '" + paramRgl.PoCode.ToString() + "'"))
                {
                    result = new ResultMessage(false, "提交的数据行数不一致!", "提交的数据行数不一致!");
                }
                else
                {
                    List <DbParameter> parameterList = new List <DbParameter>();

                    SqlParameter paramPoCode = new SqlParameter("@PoCode", SqlDbType.NVarChar, 40)
                    {
                        Value = paramRgl.PoCode
                    };
                    SqlParameter paramWmsId = new SqlParameter("@WmsId", SqlDbType.NVarChar, 40)
                    {
                        Value = paramRgl.WmsId.ToString()
                    };
                    SqlParameter paramResultMsg = new SqlParameter("@ResultMsg", SqlDbType.NVarChar, 200)
                    {
                        Direction = ParameterDirection.Output,
                        Value     = String.Empty
                    };

                    parameterList.Add(paramPoCode);
                    parameterList.Add(paramWmsId);
                    parameterList.Add(paramResultMsg);

                    SqlItemResult sqlItemResultClass;
                    try
                    {
                        sqlItemResultClass = Common.MsSqlDB.RunProcParamWithTran("P_WMS_TO_RGL", parameterList);
                    }
                    catch (Exception ex)
                    {
                        return(new ResultMessage(false, "执行数据转换出错,", ex.Message.ToString()));
                    }
                    result = (sqlItemResultClass.SqlResult ? (
                                  paramResultMsg.Value.ToString() == "Success" ?
                                  new ResultMessage(true, String.Empty, String.Empty) :
                                  new ResultMessage(false, "执行数据转换失败;" + paramResultMsg.Value.ToString(), paramResultMsg.Value.ToString() + sqlItemResultClass.ErrorDescript.ToString()))
                        : new ResultMessage(false, "执行数据转换时未收到成功标识,", paramResultMsg.Value.ToString() + sqlItemResultClass.ErrorMessage.ToString() + sqlItemResultClass.ErrorDescript.ToString()));
                }
            }
            return(result);
        }