wangxinhui
2026-03-17 89bccb9b8fb1070f7ac5f36510c868fecead9384
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs
@@ -60,12 +60,14 @@
                    {
                        return content.Error($"未找到条码{barCode}");
                    }
                    List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.QueryData();
                    List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.Db.Queryable<Dt_StationPackInfo>().ToList();
                    Dt_StationPackInfo? stationPackInfo = stationPackInfos.FirstOrDefault(x => x.PackType == packinfo.PackType && x.OrderNo == packinfo.OrderNo && x.AssignNum < x.PackNum);
                    Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask();
                    //如果订单相同、垛型一致并且分配数量少于码垛结托数量则分配到一起
                    _unitOfWorkManage.BeginTran();
                    if (stationPackInfo != null)
                    {
                        Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
                        packaxisTask = new Dt_PackaxisTask()
                        {
                            DeviceCode = deviceCode,
                            SourceAddress = "2421",
@@ -83,22 +85,21 @@
                        stationPackInfo.AssignNum += 1;
                        stationPackInfo.ExecutingNum += 1;
                        packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
                        _unitOfWorkManage.BeginTran();
                        //更新码垛执行工位
                        _stationPackInfoRepository.UpdateData(stationPackInfo);
                        //更新待码垛信息表
                        _packinfoRepository.UpdateData(packinfo);
                        //添加码垛任务
                        BaseDal.AddData(packaxisTask);
                        _unitOfWorkManage.CommitTran();
                        return content.OK(barCode, packaxisTask);
                    }
                    else//分配新工位
                    {
                        //获取当前空盘准备的码垛工位
                        List<string> stations = _stationMangerRepository.QueryData(x => x.StationDeviceCode == "CLC_CP" && x.IsOccupied == StationOccupiedEnum.None.ObjToInt()).Select(x => x.StationCode).ToList();
                        //获取码垛配置表查询可分配并已配置的码垛工位
                        List<Dt_Packaxis> packaxes = _packaxisRepository.QueryData(x => x.PackType == packinfo.PackType && stations.Contains(x.StationCode));
                        List<Dt_Packaxis> packaxes = _packaxisRepository.Db.Queryable<Dt_Packaxis>().Where(x => x.PackType == packinfo.PackType && stations.Contains(x.StationCode)).ToList();
                        if (packaxes.Count == 0)
                        {
                            return content.Error("未找到可分配码垛配置");
@@ -114,7 +115,7 @@
                        packInfoAssign.MakeCode = packinfo.MakeCode;
                        packInfoAssign.MaterielCode = packInfoAssign.MaterielCode;
                        packInfoAssign.PackNum = packaxes.FirstOrDefault(x => x.StationCode == packInfoAssign.StationCode).PackNum;
                        Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
                        packaxisTask = new Dt_PackaxisTask()
                        {
                            DeviceCode = deviceCode,
                            SourceAddress = "2421",
@@ -132,16 +133,15 @@
                        packInfoAssign.AssignNum += 1;
                        packInfoAssign.ExecutingNum += 1;
                        packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
                        _unitOfWorkManage.BeginTran();
                        //更新码垛执行工位
                        _stationPackInfoRepository.UpdateData(packInfoAssign);
                        //更新待码垛信息表
                        _packinfoRepository.UpdateData(packinfo);
                        //添加码垛任务
                        BaseDal.AddData(packaxisTask);
                        _unitOfWorkManage.CommitTran();
                        return content.OK(barCode, packaxisTask);
                    }
                    _unitOfWorkManage.CommitTran();
                    return content.OK(barCode, packaxisTask);
                }
                catch (Exception ex)
                {
@@ -263,7 +263,6 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                    Dt_PackaxisTask packaxisTask = BaseDal.QueryFirst(x => x.PackTaskNum == PackTaskNum);
                    if(packaxisTask == null)
                    {