huanghongfeng
3 天以前 5ffc36a1db18d3112a9b50a9cf3953d7fcf21bae
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs
@@ -9,14 +9,16 @@
using WIDESEA_Core.Helper;
using WIDESEA_DTO.WMS;
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.GZ_ZC.DistributeWheels;
using WIDESEA_StorageBasicRepository;
using WIDESEA_StorageBasicService;
namespace WIDESEA_StoragIntegrationServices
{
    public partial class ToAPPService
    {
        /// <summary>
        /// ä¿å­˜è½¦è½´æ•°æ®
        /// ä¿å­˜è½¦è½´æ•°æ®ï¼ˆè½¦è½®é€‰é…ï¼‰
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
@@ -149,7 +151,7 @@
                    if (string.IsNullOrEmpty(level)) throw new Exception("等级转换失败,请检查接口等级参数");
                    //level = leftLevel;
                }
                else if ("rihgt".Equals(wheelsPosition))
                else if ("right".Equals(wheelsPosition))
                {
                    level = LevelChangeHelper.LevelChangeType(rightLevel);
                    if (string.IsNullOrEmpty(level)) throw new Exception("等级转换失败,请检查接口等级参数");
@@ -160,6 +162,8 @@
                if (string.IsNullOrEmpty(rw)) throw new Exception("维修任务转换失败,请检查维修任务参数");
                if (rw != newOrOld) throw new Exception("选配失败:选配新旧轮与维修任务解析不一致");
                string wheelsProps = CheckTaskChangeHelper.CheckTaskwheelsProps(wxrw);
                Dt_SelectionStandards selectionStandards = _SelectionStandardsRepository.QueryFirst(x => x.CarType.Contains(Cartype) && x.mttype == mttype && x.neworold == newOrOld && level.Contains(x.gkdj));
                if (selectionStandards == null) throw new Exception($"此车型{Cartype}的选配标准异常,请核对选配标准信息!");
@@ -172,7 +176,7 @@
                    Creater = "admin",
                    CurrentStatue = "1",
                    CZH = czh,
                    CZXH = czxh,
                    CZXH = czxh,    //车轴型号
                    LDTM = ldtm,
                    MTTYPE = mttype,
                    ZLZA1 = zlzA1,
@@ -215,8 +219,32 @@
                var hourpara = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_Parameters, SysConfigConst.TempHour);
                int hour = hourpara.ConfigValue.ObjToInt();
                //找出所有符合条件的库存车轮
                var WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now);
                List<Dt_WheelsStock> WheelsList = null;
                //特殊车轴型号()
                //M1A  å¯¹åº” è½¦åž‹    CRH1A  CRH1A-200
                //M1B  å¯¹åº” è½¦åž‹    CRH1B  CRHA1A-250
                //M1C  å¯¹åº” è½¦åž‹    CRH1C  CRH1A-A
                if (czxh == "M1A")
                {
                    WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now && x.WheelsProps == wheelsProps && (x.Wheels_CarType == "CRH1A" || x.Wheels_CarType == "CRH1A-200") && x.Wheels_Statue==0);
                }
                else if(czxh == "M1B")
                {
                    WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now && x.WheelsProps == wheelsProps && (x.Wheels_CarType == "CRH1B" || x.Wheels_CarType == "CRHA1A-250") && x.Wheels_Statue == 0);
                }
                else if (czxh == "M1C")
                {
                    WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now && x.WheelsProps == wheelsProps && (x.Wheels_CarType == "CRH1C" || x.Wheels_CarType == "CRH1A-A") && x.Wheels_Statue == 0);
                }
                else
                {
                    //找出所有符合条件的库存车轮
                    WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now && x.WheelsProps == wheelsProps && x.Wheels_Statue == 0);
                }
                //x.Wheels_CarType  == CZInfo_Mes.CHEXING && x.Wheels_ldtm == CZInfo_Mes.LDTM && selectionStandards.CarType.Contains(x.Wheels_CarType)
                if (null != WheelsList && WheelsList.Count > 0)
                {
@@ -363,10 +391,20 @@
                    _unitOfWorkManage.BeginTran(); //开启事务
                    _CZInfo_MesRepository.AddData(CZInfo_Mes);          //添加车轴信息
                    _WheelsStockRepository.UpdateData(wheelsStocks);    //更新库存数据
                    _locationRepository.UpdateData(locationInfos);      //更新库位数据  
                    _taskRepository.AddData(listTask);                  //添加任务数据
                    if(leftContainer != null)
                    {
                        _AxleshelfService.AddAxleshe(leftContainer, CZInfo_Mes,clxh, wheelsPosition, newOrOld);    //添加车轴上架记录
                    }
                    if (rightContainer != null)
                    {
                        _AxleshelfService.AddAxleshe(rightContainer, CZInfo_Mes,clxh,wheelsPosition,newOrOld);   //添加车轴上架记录
                    }
                    //下发出库任务给WCS
                    var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
@@ -398,6 +436,9 @@
                        _unitOfWorkManage.RollbackTran();  //回滚事务
                        throw new Exception("WCS处理失败");
                    }
                    _unitOfWorkManage.CommitTran();  //提交事务
                    content.OK($"车轮出库任务下发给WCS成功.");
                    return content;
                }
                else
@@ -413,6 +454,9 @@
            }
        }
        private Dt_Task CreateOutTask(Dt_WheelsStock wheelsStock, string CZTM)
        {
            CheckInfo checkInfo = new CheckInfo()
@@ -453,5 +497,7 @@
            };
            return task;
        }
    }
}