Beispiel #1
0
        public Result PostRawMaterial([FromBody] RawMaterial rawMaterial)
        {
            var createUserId = Request.GetIdentityInformation();
            var time         = DateTime.Now;
            var cnt          = RawMaterialHelper.GetCount(rawMaterial.RawMaterialName);

            if (cnt > 0)
            {
                return(Result.GenError <Result>(Error.RawMaterialIsExist));
            }

            rawMaterial.CreateUserId   = createUserId;
            rawMaterial.MarkedDateTime = time;
            var index = RawMaterialHelper.Instance.AddBackId(rawMaterial);

            if (rawMaterial.Specifications.Any())
            {
                var specifications = rawMaterial.Specifications;
                foreach (var specification in specifications)
                {
                    specification.RawMaterialId  = index;
                    specification.CreateUserId   = createUserId;
                    specification.MarkedDateTime = time;
                }
                RawMaterialSpecificationHelper.Instance.Add(specifications);
            }
            return(Result.GenError <Result>(Error.Success));
        }
Beispiel #2
0
        public DataResult GetRawMaterial([FromQuery] bool menu, int qId, DateTime startTime, DateTime endTime)
        {
            var result = new DataResult();

            if (menu)
            {
                result.datas.AddRange(RawMaterialHelper.GetMenu(qId));
            }
            else
            {
                //if (!rawMaterialName.IsNullOrEmpty() && startTime != default(DateTime) && endTime != default(DateTime))
                //{
                //    sql =
                //        "SELECT * FROM `raw_material` WHERE MarkedDelete = 0 AND RawMaterialName = @RawMaterialName AND MarkedDateTime >= @StartTime AND MarkedDateTime <= @EndTime;";
                //}
                //else if (!rawMaterialName.IsNullOrEmpty())
                //{
                //    sql =
                //        "SELECT * FROM `raw_material` WHERE MarkedDelete = 0 AND RawMaterialName = @RawMaterialName;";
                //}
                //else if (startTime != default(DateTime) && endTime != default(DateTime))
                //{
                //    sql =
                //        "SELECT * FROM `raw_material` WHERE MarkedDelete = 0 AND MarkedDateTime >= @StartTime AND MarkedDateTime <= @EndTime;";
                //}
                //else
                //{
                //    sql =
                //        "SELECT * FROM `raw_material` WHERE MarkedDelete = 0;";
                //}

                //var rawMaterials = ServerConfig.ApiDb.Query<RawMateria>(sql, new
                //{
                //    RawMaterialName = rawMaterialName,
                //    StartTime = startTime,
                //    EndTime = endTime
                //}).OrderByDescending(x => x.MarkedDateTime);
                //var rawMaterialSpecifications = ServerConfig.ApiDb.Query<RawMaterialSpecification>("SELECT * FROM `raw_material_specification` WHERE MarkedDelete = 0;");
                //foreach (var rawMaterial in rawMaterials)
                //{
                //    var specifications = rawMaterialSpecifications.Where(x => x.RawMaterialId == rawMaterial.Id);
                //    rawMaterial.RawMaterialSpecifications.AddRange(specifications);
                //}
                var rawMaterials = RawMaterialHelper.GetDetail(qId, startTime, endTime);
                if (qId != 0 && rawMaterials.Any())
                {
                    var rawMaterial = rawMaterials.First();
                    rawMaterial.Specifications.AddRange(RawMaterialSpecificationHelper.Instance.GetFromParent <RawMaterialSpecification>(rawMaterial.Id));
                }
                result.datas.AddRange(rawMaterials);
            }
            if (qId != 0 && !result.datas.Any())
            {
                result.errno = Error.RawMaterialNotExist;
                return(result);
            }

            return(result);
        }
Beispiel #3
0
        public Result PutRawMaterial([FromBody] RawMaterial rawMaterial)
        {
            if (rawMaterial == null)
            {
                return(Result.GenError <Result>(Error.ParamError));
            }
            if (rawMaterial.RawMaterialName.IsNullOrEmpty())
            {
                return(Result.GenError <Result>(Error.RawMaterialNotExist));
            }

            var sames = new List <string> {
                rawMaterial.RawMaterialName
            };
            var ids = new List <int> {
                rawMaterial.Id
            };

            if (RawMaterialHelper.GetHaveSame(sames, ids))
            {
                return(Result.GenError <Result>(Error.RawMaterialIsExist));
            }

            var data = RawMaterialHelper.Instance.Get <RawMaterial>(rawMaterial.Id);

            if (data == null)
            {
                return(Result.GenError <Result>(Error.RawMaterialNotExist));
            }

            var createUserId = Request.GetIdentityInformation();
            var time         = DateTime.Now;
            var change       = false;

            //if (rawMaterial.RawMaterialSpecifications.Any())
            {
                var specifications = rawMaterial.Specifications;
                foreach (var specification in specifications)
                {
                    specification.RawMaterialId  = rawMaterial.Id;
                    specification.CreateUserId   = createUserId;
                    specification.MarkedDateTime = time;
                }
                if (specifications.Any(x => x.Id == 0))
                {
                    change = true;
                    RawMaterialSpecificationHelper.Instance.Add(specifications.Where(x => x.Id == 0));
                }

                var existSpecifications =
                    RawMaterialSpecificationHelper.Instance.GetFromParent <RawMaterialSpecification>(rawMaterial.Id);
                var updateSpecifications = specifications.Where(x => x.Id != 0 &&
                                                                existSpecifications.Any(y => y.Id == x.Id && (y.SpecificationName != x.SpecificationName || y.SpecificationValue != x.SpecificationValue))).ToList();
                updateSpecifications.AddRange(existSpecifications.Where(x => specifications.All(y => x.Id != y.Id)).Select(x =>
                {
                    x.MarkedDateTime = DateTime.Now;
                    x.MarkedDelete   = true;
                    return(x);
                }));

                if (updateSpecifications.Any())
                {
                    change = true;
                    RawMaterialSpecificationHelper.Instance.Update <RawMaterialSpecification>(updateSpecifications);
                }
            }

            if (change || ClassExtension.HaveChange(rawMaterial, data))
            {
                rawMaterial.MarkedDateTime = time;
                RawMaterialHelper.Instance.Update(rawMaterial);
            }
            return(Result.GenError <Result>(Error.Success));
        }