コード例 #1
0
ファイル: WMS_To_ERPPresenter.cs プロジェクト: JobsLj/WMS
        /// <summary>
        /// 基础物料数据信息
        /// </summary>
        /// <param name="materialInfoJson">物料信息json串</param>
        /// <param name="operateType">操作类型:1增加、2更新、3删除</param>
        /// <returns></returns>
        public string MaterialInfo(string materialInfoJson, string operateType)
        {
            //materialInfoJson = GetMaterialTestJson();//测试

            ResponseData response = new ResponseData();

            try
            {
                MaterialInfo materialInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <MaterialInfo>(materialInfoJson);
                if (materialInfo == null)
                {
                    response.Describe = "物料基础数据格式错误!";
                    response.Status   = false;
                    MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                    return(response.ToJson());
                }
                if (materialInfo.material_class == "" || materialInfo.material_class == null)
                {
                    response.Describe = "物料基础数据的物料大类为空!";
                    response.Status   = false;
                    MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                    return(response.ToJson());
                }
                Goods_ClassModel gsClassModel = bllGoods_Class.GetModelByClassName(materialInfo.material_class);//物料大类型

                if (gsClassModel == null)
                {
                    gsClassModel = new Goods_ClassModel();
                    gsClassModel.Goods_Class_Name = materialInfo.material_class;
                    string gsClassMainID = Guid.NewGuid().ToString();
                    gsClassModel.Goods_Class_ID   = gsClassMainID;
                    gsClassModel.Goods_Class_Flag = "true";
                    bllGoods_Class.Add(gsClassModel);
                }
                else
                {
                    gsClassModel.Goods_Class_Name = materialInfo.material_class;
                    gsClassModel.Goods_Class_Flag = "true";
                    bllGoods_Class.Update(gsClassModel);
                }
                if (operateType != "1" && operateType != "2" && operateType != "3")
                {
                    response.Describe = "接口操作标识错误!operateType,1为增加,2为更新,3为删除!";
                    response.Status   = false;
                    MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                    return(response.ToJson());
                }
                switch (operateType)
                {
                case "1":    //增加
                {
                    GoodsModel existgoods = bllGoods.GetModelByCode(materialInfo.material_code);
                    if (existgoods != null)
                    {
                        response.Describe = "物料基础数据添加失败,已经存在此物料编码:" + materialInfo.material_code;
                        response.Status   = false;
                        MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                        return(response.ToJson());
                    }
                    GoodsModel goods = new GoodsModel();
                    goods.Goods_ID           = Guid.NewGuid().ToString();
                    goods.Goods_Code         = materialInfo.material_code;
                    goods.Goods_Class_ID     = gsClassModel.Goods_Class_ID;
                    goods.Goods_Suppier_Code = materialInfo.material_supplier_code;
                    goods.Goods_Category     = materialInfo.material_category;

                    goods.Goods_Name = materialInfo.material_name;
                    if (materialInfo.material_enabled == true)
                    {
                        goods.Goods_Flag = "1";
                    }
                    else
                    {
                        goods.Goods_Flag = "0";
                    }

                    goods.Goods_Type  = materialInfo.material_category;
                    goods.Goods_Unit  = materialInfo.material_unit;
                    goods.Goods_Model = materialInfo.material_model;
                    bllGoods.Add(goods);
                    GoodsPropertyOperate(goods.Goods_ID, "shelflife", "保质期", materialInfo.material_shelflife.ToString(), true);        //保质期

                    break;
                }

                case "2":    //更新
                {
                    GoodsModel goods = bllGoods.GetModelByCode(materialInfo.material_code);
                    if (goods == null)
                    {
                        response.Describe = "物料基础数据更新失败,不存此物料编码:" + materialInfo.material_code;
                        response.Status   = false;
                        MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                        return(response.ToJson());
                    }
                    goods.Goods_Code         = materialInfo.material_code;
                    goods.Goods_Class_ID     = gsClassModel.Goods_Class_ID;
                    goods.Goods_Suppier_Code = materialInfo.material_supplier_code;
                    goods.Goods_Name         = materialInfo.material_name;
                    if (materialInfo.material_enabled == true)
                    {
                        goods.Goods_Flag = "1";
                    }
                    else
                    {
                        goods.Goods_Flag = "0";
                    }

                    goods.Goods_Type  = materialInfo.material_category;
                    goods.Goods_Unit  = materialInfo.material_unit;
                    goods.Goods_Model = materialInfo.material_model;
                    bllGoods.Update(goods);
                    GoodsPropertyOperate(goods.Goods_ID, "shelflife", "保质期", materialInfo.material_shelflife.ToString(), false);        //保质期
                    break;
                }

                case "3":
                {
                    bllGoods.DeleteByCode(materialInfo.material_code);
                    bllGoodsProperty.DeleteByGoodsCode(materialInfo.material_code);
                    break;
                }

                default:
                {
                    response.Status   = false;
                    response.Describe = "操作类型错误,operateType,1为增加,2为更新,3为删除!";
                    return(response.ToJson());
                }
                }

                response.Describe = "物料基础数据导入成功!";
                response.Status   = true;
                MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                return(response.ToJson());
            }
            catch (Exception ex)
            {
                response.Describe = "物料基础数据导入失败!错误原因:" + ex.StackTrace.ToString();
                response.Status   = false;
                MainFrameHandler.GetMainFrame().WriteLog("WMS_To_ERP服务", "", "提示", response.Describe + "信息内容:" + materialInfoJson);
                return(response.ToJson());
            }
        }