xiaojiao
2 天以前 4a6319fa5be9ef5f9741c3507825667f523d9b2b
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoService/Dt_MaterialInfoService.cs
@@ -1,9 +1,12 @@
using Microsoft.AspNetCore.Mvc;
using AutoMapper;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.StationEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
@@ -18,10 +21,16 @@
    {
        private readonly IDt_ContainerInfoRepository _ContainerInfoRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        public Dt_MaterialInfoService(IDt_MaterialInfoRepository BaseDal, IDt_ContainerInfoRepository dt_ContainerInfoRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        private readonly IDt_MaterialInfo_HtyRepository _MaterialInfo_HtyRepository;
        private readonly IMapper _mapper;
        private readonly IDt_StationManagerRepository _stationManagerRepository;
        public Dt_MaterialInfoService(IDt_MaterialInfoRepository BaseDal, IDt_ContainerInfoRepository dt_ContainerInfoRepository, IUnitOfWorkManage unitOfWorkManage, IDt_MaterialInfo_HtyRepository materialInfo_HtyRepository,IMapper mapper, IDt_StationManagerRepository stationManagerRepository) : base(BaseDal)
        {
            _ContainerInfoRepository = dt_ContainerInfoRepository;
            _unitOfWorkManage = unitOfWorkManage;
            _MaterialInfo_HtyRepository = materialInfo_HtyRepository;
            _mapper = mapper;
            _stationManagerRepository = stationManagerRepository;
        }
        /// <summary>
        /// æ–°å¢žç»„盘信息
@@ -39,16 +48,19 @@
                Dt_MaterialInfo dt_MaterialInfo = await BaseDal.QueryFirstAsync(x => x.ContainerCode == containerbindingDTO.VehicleNumber);
                if (dt_MaterialInfo != null) return content.Error("当前容器已绑定 è¯·å‹¿é‡å¤æäº¤");
                dt_MaterialInfo = await BaseDal.QueryFirstAsync(x => x.MaterialName == containerbindingDTO.materSn);
                if (dt_MaterialInfo != null) return content.Error("当前零件号已存在 è¯·å‹¿é‡å¤æäº¤");
                Dt_StationManager dt_StationManager = _stationManagerRepository.QueryFirst(
                x => x.StationLocation == containerbindingDTO.Position
                && x.StationStatus == ((int)StationEnum.Enable).ToString());
                if (dt_StationManager == null) return content.Error("当前站台未配置 æˆ–已停用");
                dt_MaterialInfo = new Dt_MaterialInfo();
                dt_MaterialInfo.MaterialName = containerbindingDTO.materSn;
                dt_MaterialInfo.ContainerCode = containerbindingDTO.VehicleNumber;
                dt_MaterialInfo.Position = containerbindingDTO.Position;
                dt_MaterialInfo.Carmodel = containerbindingDTO.Carmodel;
                string s = App.User.UserName;
                await BaseDal.AddDataAsync(dt_MaterialInfo);
                dt_MaterialInfo.Region = dt_StationManager.StationArea;
                // 2. æ‰§è¡Œä¸€å®šä¼šæŠ¥é”™çš„代码:除以零
                //int a = 1;
                //int b = 0;
@@ -59,10 +71,12 @@
                    containerInfo = new Dt_ContainerInfo();
                    containerInfo.RequestId = Guid.NewGuid().ToString().Replace("-", "");
                    containerInfo.ContainerCode = containerbindingDTO.VehicleNumber;
                    dt_MaterialInfo.IsNew = true;
                    await _ContainerInfoRepository.AddDataAsync(containerInfo);
                }
                await BaseDal.AddDataAsync(dt_MaterialInfo);
                _unitOfWorkManage.CommitTran();
                return content.OK();
                return content.OK(message:"物料绑定成功");
            }
            catch (Exception ex)
            {
@@ -72,5 +86,23 @@
            }
        }
        public async Task<WebResponseContent> DeleteGroupPlateAsync(string PalletCode)
        {
            WebResponseContent content = new WebResponseContent();
            // å…ˆæŸ¥è¯¢ç›¸åº”的组盘绑定信息 å¦‚果没有数据则返回
            Dt_MaterialInfo dt_MaterialInfo = await BaseDal.QueryFirstAsync(x => x.ContainerCode == PalletCode);
            if (dt_MaterialInfo == null) return content.Error("查询不到相关数据 æˆ–者已经解绑!");
            // è¿™é‡Œé¢è¦å†™ç‰©æ–™ç»„盘信息的状态改变例如已解绑
            dt_MaterialInfo.IsBind = false;
            Dt_MaterialInfo_Hty dt_MaterialInfo_Hty = _mapper.Map<Dt_MaterialInfo_Hty>(dt_MaterialInfo);
            await _MaterialInfo_HtyRepository.AddDataAsync(dt_MaterialInfo_Hty);
            await BaseDal.DeleteDataAsync(dt_MaterialInfo);
            // åˆ é™¤å½“前组盘数据添加进入历史记录
            return content.OK(message: "物料解绑成功");
        }
    }
}