コード例 #1
0
        /// <summary>
        /// 设备业务数据点配置
        /// </summary>
        /// <param name="inputDtos"></param>
        /// <returns></returns>
        public async Task <OperationResult> Setting(params EquipmentBusinessNodeMapManageInputDto[] inputDtos)
        {
            inputDtos.CheckNotNull("inputDtos");
            OperationResult result  = new OperationResult();
            OperationResult result2 = new OperationResult();

            foreach (var inputDto in inputDtos)
            {
                int count = inputDto.DeviceNodeList.Count();
                if (count >= 0)
                {
                    ProductionProcessEquipmentBusinessNodeMapRepository.UnitOfWork.BeginTransaction();
                    var oldmaplist = ProductionProcessEquipmentBusinessNodeMapRepository.TrackEntities.Where(x => x.Equipment_Id == inputDto.Equipment_Id && x.BusinessNode.Id == inputDto.BusinessNode_Id && x.ProductionProcessInfo_Id == inputDto.ProductionProcessInfo_Id);
                    int count0     = oldmaplist.Count();
                    if (count0 > 0)
                    {
                        Guid[] mapIds = new Guid[count0];
                        mapIds  = oldmaplist.Select(x => x.Id).ToArray();
                        result2 = await ProductionProcessEquipmentBusinessNodeMapRepository.DeleteAsync(mapIds);
                    }
                    if (count == 0 && count0 > 0)
                    {
                        result = result2;
                    }
                    if ((result2.Successed || count0 == 0) && count > 0)
                    {
                        ProductionProcessEquipmentBusinessNodeMapInputDto[] map_dtos = new ProductionProcessEquipmentBusinessNodeMapInputDto[count];
                        for (int i = 0; i < count; i++)
                        {
                            ProductionProcessEquipmentBusinessNodeMapInputDto edto = new ProductionProcessEquipmentBusinessNodeMapInputDto();
                            edto.Equipment_Id = inputDto.Equipment_Id;
                            var id = inputDto.DeviceNodeList[i].Id;
                            edto.DeviceNode               = DeviceNodeRepository.TrackEntities.Where(m => m.Id == id).FirstOrDefault();
                            edto.BusinessNode             = BusinessNodeRepository.TrackEntities.Where(m => m.Id == inputDto.BusinessNode_Id).FirstOrDefault();
                            edto.ProductionProcessInfo_Id = inputDto.ProductionProcessInfo_Id;
                            edto.CreatorUserId            = inputDto.CreatorUserId;
                            edto.CreatedTime              = inputDto.CreatedTime;
                            edto.LastUpdatedTime          = inputDto.LastUpdatedTime;
                            edto.LastUpdatorUserId        = inputDto.LastUpdatorUserId;
                            if (Equals(edto.BusinessNode, null))
                            {
                                return(new OperationResult(OperationResultType.Error, "对应的通讯业务信息不存在,该组数据不被存储。"));
                            }
                            if (Equals(edto.DeviceNode, null))
                            {
                                return(new OperationResult(OperationResultType.Error, "对应的数据点不存在,该组数据不被存储。"));
                            }
                            //if (Equals(edto.ProductionProcessInfo_Id, Guid.Empty))
                            //{
                            //    return new OperationResult(OperationResultType.Error, "对应的工序为空,该组数据不被存储。");
                            //}
                            map_dtos[i] = edto;
                        }

                        result = await ProductionProcessEquipmentBusinessNodeMapRepository.InsertAsync(map_dtos);
                    }
                    ProductionProcessEquipmentBusinessNodeMapRepository.UnitOfWork.Commit();
                }
                else
                {
                    return(new OperationResult(OperationResultType.Error, $"设备业务点表数据异常,该组数据不被存储。"));
                }
            }
            return(result);
        }
        public async Task <IHttpActionResult> Update(ProductionProcessEquipmentBusinessNodeMapInputDto inputDto)
        {
            var result = await ProductionProcessEquipmentBusinessNodeMapContract.EditBusinessNodeMaps(inputDto);

            return(Json(result));
        }