1
huanghongfeng
2 天以前 a34059e688e947a2ea079a0646872f1a21089940
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs
@@ -18,7 +18,7 @@
    public partial class ToAPPService
    {
        /// <summary>
        /// ä¿å­˜è½¦è½´æ•°æ®
        /// ä¿å­˜è½¦è½´æ•°æ®ï¼ˆè½¦è½®é€‰é…ï¼‰
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
@@ -138,6 +138,19 @@
                string wxrw = saveModel.MainData["wxrw"].ToString();
                if (string.IsNullOrEmpty(wxrw)) throw new Exception("选配失败:维修任务参数为空");
                int zuixiaoz = 0;
                int zuidaz = 0;
                if (newOrOld == "1")
                {
                    //最小值
                     zuixiaoz = int.Parse(saveModel.MainData["zuixiaoz"].ToString());
                    //最大值
                     zuidaz = int.Parse(saveModel.MainData["zuidaz"].ToString());
                }
                string level = string.Empty;
                //string rightlevel = string.Empty;
                if ("all".Equals(wheelsPosition))
@@ -163,6 +176,8 @@
                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}的选配标准异常,请核对选配标准信息!");
@@ -174,7 +189,7 @@
                    Creater = "admin",
                    CurrentStatue = "1",
                    CZH = czh,
                    CZXH = czxh,
                    CZXH = czxh,    //车轴型号
                    LDTM = ldtm,
                    MTTYPE = mttype,
                    ZLZA1 = zlzA1,
@@ -217,8 +232,54 @@
                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
                {
                    if (CZInfo_Mes.MTTYPE == "T")
                    {
                        //去掉了属性对比
                        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.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);
                    }
                }
                if(newOrOld=="1")
                {
                    foreach (var item in WheelsList)
                    {
                        decimal ygrjz = decimal.Parse(item.Wheels_ygljz);
                        if (ygrjz < zuixiaoz || ygrjz > zuidaz)
                        WheelsList.Remove(item);
                    }
                }
                //x.Wheels_CarType  == CZInfo_Mes.CHEXING && x.Wheels_ldtm == CZInfo_Mes.LDTM && selectionStandards.CarType.Contains(x.Wheels_CarType)
                if (null != WheelsList && WheelsList.Count > 0)
                {
@@ -226,37 +287,47 @@
                    {
                        if (null == leftContainer)
                        {
                            leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld);
                            leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld, 2);
                            if (null != leftContainer)
                                WheelsList.Remove(leftContainer);
                        }
                        if (null == rightContainer)
                        {
                            rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld);
                            rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld, 2);
                            if (null != rightContainer)
                                WheelsList.Remove(rightContainer);
                        }
                        //if (null == leftContainer || null == rightContainer)
                        if (null == leftContainer || null == rightContainer)
                            return content.Error("未找到两侧可匹配的出库车轮,车型:" + Cartype);
                        if(newOrOld == "1")
                        {
                            //此处判断两个预估值相减,是否在范围内
                            decimal difference = decimal.Parse(leftContainer.Wheels_ygljz) - decimal.Parse(rightContainer.Wheels_ygljz);
                            decimal absoluteDifference = Math.Abs(difference);
                            if (absoluteDifference > selectionStandards.Estimatedvalue)
                            {
                                return content.Error("未找到两侧可匹配的出库车轮,预估值不在范围内,车型:" + Cartype);
                            }
                        }
                    }
                    else if ("left".Equals(wheelsPosition))
                    {
                        leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld);
                        leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld , 1);
                        //if (null == leftContainer)
                    }
                    else if ("right".Equals(wheelsPosition))
                    {
                        rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld);
                        rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld ,1);
                        //if (null == rightContainer)
                    }
                }
                if ("all".Equals(wheelsPosition))
                {
                    if (null == leftContainer || null == rightContainer)
                        return content.Error("未找到两侧可匹配的出库车轮,车型:" + Cartype);
                }
                if (null != leftContainer || null != rightContainer)
                {
@@ -306,7 +377,8 @@
                            WheelsNewOrOld = leftContainer.Wheels_NewOrOld,
                            wheels_gkcc = leftContainer.Wheels_gkcc,
                            wheels_mttype = leftContainer.Wheels_mttype,
                            WheelsLX = leftContainer.Wheels_ldxh
                            WheelsLX = leftContainer.Wheels_ldxh,
                            axle_czh= czCode,
                        };
                        listTask.Add(leftTask);