public void Delete(AscmWmsMtlReturnMain ascmWmsMtlReturnMain)
 {
     try
     {
         YnDaoHelper.GetInstance().nHibernateHelper.Delete<AscmWmsMtlReturnMain>(ascmWmsMtlReturnMain);
     }
     catch (Exception ex)
     {
         YnBaseClass2.Helper.LogHelper.GetLog().Error("删除失败(Delete AscmWmsMtlReturnMain)", ex);
         throw ex;
     }
 }
Esempio n. 2
0
        public OracleParameter[] GetMaterialReturnParams(AscmWmsMtlReturnMain ascmWmsMtlReturnMain, List<AscmWmsMtlReturnDetail> listWmsMtlReturnDetail, string userId)
        {
            //注意MES存储过程中要求字符串数组长度一致,并且一一对应
            string[] itemCodeLst = listWmsMtlReturnDetail.Select(P => P.materialId.ToString()).ToArray();
            string[] locIdLst = new string[itemCodeLst.Length];
            string[] backQtyLst = listWmsMtlReturnDetail.Select(P => P.quantity.ToString()).ToArray();
            string[] moBatchNoLst = new string[itemCodeLst.Length];
            string[] labelIds = new string[itemCodeLst.Length];
            //为数组元素指定默认值
            for (int i = 0; i < itemCodeLst.Length; i++)
            {
                locIdLst[i] = "";
                moBatchNoLst[i] = "";
                labelIds[i] = "";
            }

            return new OracleParameter[] {
                //库存组织
                new OracleParameter{
                    ParameterName = "i_org_id",
                    OracleDbType = OracleDbType.Int32,
                    Value = orgId,
                    Direction = ParameterDirection.Input
                },
                //MES闭环单号
                new OracleParameter{
                    ParameterName = "i_bill_no",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.docNumber,
                    Direction = ParameterDirection.Input
                },
                //作业号
                new OracleParameter{
                    ParameterName = "i_mo_code",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.wipEntityId,
                    Direction = ParameterDirection.Input
                },
                //仓库
                new OracleParameter{
                    ParameterName = "i_inv_code",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.warehouseId,
                    Direction = ParameterDirection.Input
                },
                //退货区域
                new OracleParameter{
                    ParameterName = "i_return_area",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.returnArea,
                    Direction = ParameterDirection.Input
                },
                //交接人
                new OracleParameter{
                    ParameterName = "i_conn_user",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = "",
                    Direction = ParameterDirection.Input
                },
                //备注
                new OracleParameter{
                    ParameterName = "i_remark",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.memo,
                    Direction = ParameterDirection.Input
                },
                //领料交易取消上传
                new OracleParameter{
                    ParameterName = "i_chk_all_flag",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = "N",
                    Direction = ParameterDirection.Input
                },
                //用户名称
                new OracleParameter{
                    ParameterName = "i_user_code",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = userId,
                    Direction = ParameterDirection.Input
                },
                //物料编码(字符串数组)
                new OracleParameter{
                    ParameterName = "i_item_code_lst",
                    OracleDbType = OracleDbType.Varchar2,
                    Value = itemCodeLst,
                    Direction = ParameterDirection.Input,
                    CollectionType = OracleCollectionType.PLSQLAssociativeArray
                },
                //位置(字符串数组)
                new OracleParameter{
                    ParameterName = "i_loc_id_lst",
                    OracleDbType = OracleDbType.Varchar2,
                    Value = locIdLst,
                    Direction = ParameterDirection.Input,
                    CollectionType = OracleCollectionType.PLSQLAssociativeArray
                },
                //退料数量(字符串数组)
                new OracleParameter{
                    ParameterName = "i_back_qty_lst",
                    OracleDbType = OracleDbType.Varchar2,
                    Value = backQtyLst,
                    Direction = ParameterDirection.Input,
                    CollectionType = OracleCollectionType.PLSQLAssociativeArray
                },
                //生产批次(字符串数组)
                new OracleParameter{
                    ParameterName = "i_mo_batch_no_lst",
                    OracleDbType = OracleDbType.Varchar2,
                    Value = moBatchNoLst,
                    Direction = ParameterDirection.Input,
                    CollectionType = OracleCollectionType.PLSQLAssociativeArray
                },
                //标签号(字符串数组)
                new OracleParameter{
                    ParameterName = "i_label_id",
                    OracleDbType = OracleDbType.Varchar2,
                    Value = labelIds,
                    Direction = ParameterDirection.Input,
                    CollectionType = OracleCollectionType.PLSQLAssociativeArray
                },
                //退料原因
                new OracleParameter{
                    ParameterName = "i_reason_id",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 80,
                    Value = ascmWmsMtlReturnMain.reasonId,
                    Direction = ParameterDirection.Input
                },
                //返回参(值为0时表示成功)
                new OracleParameter{
                    ParameterName = "o_ret_code",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 4000,
                    Direction = ParameterDirection.Output
                },
                //返回参(错误信息)
                new OracleParameter{
                    ParameterName = "o_ret_msg",
                    OracleDbType = OracleDbType.Varchar2,
                    Size = 4000,
                    Direction = ParameterDirection.Output
                }
            };
        }
 public void Update(AscmWmsMtlReturnMain ascmWmsMtlReturnMain)
 {
     try
     {
         using (ITransaction tx = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession().BeginTransaction())
         {
             try
             {
                 YnDaoHelper.GetInstance().nHibernateHelper.Update<AscmWmsMtlReturnMain>(ascmWmsMtlReturnMain);
                 tx.Commit();//正确执行提交
             }
             catch (Exception ex)
             {
                 tx.Rollback();//回滚
                 YnBaseClass2.Helper.LogHelper.GetLog().Error("修改失败(Update AscmWmsMtlReturnMain)", ex);
                 throw ex;
             }
         }
     }
     catch (Exception ex)
     {
         YnBaseClass2.Helper.LogHelper.GetLog().Error("修改失败(Save AscmWmsMtlReturnMain)", ex);
         throw ex;
     }
 }
Esempio n. 4
0
        public void DoSysReturn(AscmWmsMtlReturnMain ascmWmsMtlReturnMain, List<AscmWmsMtlReturnDetail> listWmsMtlReturnDetail, string userId, AscmMesInteractiveLog ascmMesInteractiveLog)
        {
            try
            {
                OracleParameter[] stockTransParams = GetSysReturnParams(ascmWmsMtlReturnMain, listWmsMtlReturnDetail, userId);
                ISession session = YnDaoHelper.GetInstance().nHibernateHelper.GetCurrentSession();
                OracleCommand command = (OracleCommand)session.Connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "cux_mes_ascm_interface_pkg.ascm_do_sys_return";
                Array.ForEach<OracleParameter>(stockTransParams, P => command.Parameters.Add(P));
                command.ExecuteNonQuery();

                ascmMesInteractiveLog.returnCode = stockTransParams[stockTransParams.Length - 2].Value.ToString();
                ascmMesInteractiveLog.returnMessage = stockTransParams[stockTransParams.Length - 1].Value.ToString();

                if (ascmWmsMtlReturnMain != null)
                {
                    ascmWmsMtlReturnMain.returnCode = ascmMesInteractiveLog.returnCode;
                    ascmWmsMtlReturnMain.returnMessage = ascmMesInteractiveLog.returnMessage;
                    ascmWmsMtlReturnMain.uploadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }