MaterialUpCict.cs 4.14 KB
using Hh.Mes.Common.config;
using Hh.Mes.Common.log;
using Hh.Mes.Pojo.System;
using Hh.Mes.POJO.ApiEntity;
using Hh.Mes.POJO.Entity;
using Hh.Mes.POJO.EnumEntitys;
using Hh.Mes.POJO.Response;
using Newtonsoft.Json;
using NPOI.POIFS.FileSystem;
using System;
using System.Collections.Generic;

namespace Hh.Mes.Service.ApiService
{
    public partial class UpstreamService
    {
        /// <summary>
        /// 信科物料数据反馈
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public Response MaterialUpCict(MaterialUpCictEntity materialEntity)
        {
            var response = new Response();

            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                var resultToken = GetCictToken();
                if (!resultToken.Item1) return response.ResponseError(resultToken.Item2);

                var urlDic = "UrlMaterialCict" + ConfigRead.GetInstance.GetAppsetConnection().AppCustomExtend1;//AppCustomExtend1:"_onLine/_off"
                var url = GetDictionaryDictValue(urlDic, "GetUrl");//获取配置的url
                //var url = "信科api url";

                #region 测试数据
                var sendData = new MaterialUpCictEntity();
                var item = new base_material()
                {
                    materialCode = "300181",
                    materialName = "压板111",
                    mtClassify = "elbow",
                    mtTypeCode = "material",
                    unitCode = "PCS",
                    plmeId = "",
                    isDelete = 1,
                    createTime = DateTime.Now,
                    createBy = "Cict"
                };
                sendData.materials.Add(item);
                var json = JsonConvert.SerializeObject(sendData);
                #endregion

                //var json = JsonConvert.SerializeObject(materialEntity);


                response = HttpMan(url, json, EnumLog.Cict物料信息反馈.ToString(), token: resultToken.Item2);
                if (response.Code == 200)
                {
                    return response.ResponseSuccess();
                }
                //Log4NetHelper.Instance.Error($"【返回结果】" + response.Result);
                CICTResult cictResult = JsonConvert.DeserializeObject<CICTResult>(response.Result);
                response.Message = $"【信科】PLMEID:{cictResult.PLMEID},错误原因:{cictResult.MSG},STATUS:{cictResult.STATUS}";
                response.Result = "";
                return response;
            });
        }


        private dynamic HandleData(List<base_material> list)
        {
            var response = new Response();
            return ExceptionsHelp.Instance.ExecuteT(() =>
            {
                foreach (var model in list)
                {
                    var isExist = Context.Queryable<base_material>().Where(i => i.id == model.id).ToList();
                    if (isExist.Count < 0)
                    {
                        var rate = new base_material_rate
                        {
                            materialCode = model.materialCode,
                            materialName = model.materialName,
                            mtClassify = model.mtClassify,
                            unitCode = model.unitCode,
                            specifications = model.specifications,
                            materialKeys = model.keys,
                            quantityRate = 1,
                            createBy = model.createBy,
                            createTime = DateTime.Now,//?
                        };
                        Context.Insertable<base_material>(model).AddQueue();
                        Context.Insertable<base_material_rate>(model).AddQueue();
                        Context.SaveQueues();
                    }
                    else
                    {
                        response.Status = Context.Updateable(model).Where(u => u.id == model.id).ExecuteCommand() > 0;
                        if (!response.Status) response.Message = "更新失败";
                    }
                }
                return response;
            });
        }
    }
}