22
schangxiang@126.com
2024-12-04 abf9b6bb33fcfad5b56a17a5d3e99b49782a7316
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -22,13 +22,16 @@
    private readonly SqlSugarRepository<SysConfig> _sysConfigRep;
    private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _mesBatchOrderUpiRep;
    private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep;
    private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep;
    private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep;
    public WmsOperationTaskService(SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep
        , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep
        , SqlSugarRepository<SysConfig> sysConfigRep
        , SqlSugarRepository<Mes_BatchOrderUPI_New> mesBatchOrderUpiRep
        , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep
        , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep
        , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep
        )
    {
        _sysConfigRep = sysConfigRep;
@@ -37,6 +40,8 @@
        _wmsStockQuanRep = wmsStockQuanRep;
        _mesBatchOrderUpiRep = mesBatchOrderUpiRep;
        _mesOrderGatherRep = mesOrderGatherRep;
        _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep;
        _wmsRecordPackageProcessRep = wmsRecordPackageProcessRep;
    }
@@ -49,6 +54,7 @@
    [HttpPost]
    [ApiDescriptionSettings(Name = "ForceOutbound")]
    [Description("WmsOperationTask/ForceOutbound")]
    [UnitOfWork]
    public async Task ForceOutbound(ForceOutboundInput input)
    {
        if (input == null || input.PackageCodeList?.Count == 0)
@@ -109,7 +115,7 @@
        {
            throw Oops.Oh($"没有配置 判断齐套 值");
        }
        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value != "无")
        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value.Trim() != "无")
        {
            throw Oops.Oh($"判断齐套值已经存在值{sysConfig.Value},不允许操作");
        }
@@ -133,10 +139,11 @@
            _QiTaoReuslt = "齐套";
        }
        //临时屏蔽
        /*
        sysConfig.Value = setValue;
        await _sysConfigRep.UpdateAsync(sysConfig);
        //*/
        var sysConfig_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper);
@@ -173,6 +180,7 @@
    [HttpPost]
    [ApiDescriptionSettings(Name = "ValdateLabel")]
    [Description("WmsOperationTask/ValdateLabel")]
    [UnitOfWork]
    public async Task<Mes_Package_Gather> ValdateLabel(ValidateLabelInput input)
    {
        if (input == null || input.PackageCode == null || input.Upi == null)
@@ -195,6 +203,21 @@
        {
            throw Oops.Oh($"没有找到包号{input.PackageCode}的汇总数据");
        }
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.CreateTime = DateTime.Now;
        wmsRecordPackage.Location = "BZ29";
        wmsRecordPackage.OperRemark = "核对标签";
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
        WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
        wmsRecordUpi = singleUpi.Adapt<WmsRecordUpiProcess>();
        wmsRecordUpi.CreateTime = DateTime.Now;
        wmsRecordUpi.Location = "BZ29";
        wmsRecordUpi.OperRemark = "核对标签";
        await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
        return singlePackage;
    }
@@ -207,41 +230,63 @@
    [HttpPost]
    [ApiDescriptionSettings(Name = "UnlineForNGPackage")]
    [Description("WmsOperationTask/UnlineForNGPackage")]
    [UnitOfWork]
    public async Task UnlineForNGPackage(UnlineForNGPackageInput input)
    {
        //if (input == null)
        //{
        //    throw Oops.Oh("参数不能为空");
        //}
        //if (string.IsNullOrEmpty(input.PackageCode))
        //{
        //    throw Oops.Oh("包号不能为空");
        //}
        //if (string.IsNullOrEmpty(input.Reason))
        //{
        //    throw Oops.Oh("原因不能为空");
        //}
        //List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>();
        //foreach (var item in input.PackageCodeList)
        //{
        //    var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync();
        //    var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.齐包待出库).Count();
        //    if (isExist > 0)
        //    {
        //        throw Oops.Oh($"包{item}中其中有板状态是'{StockStatusEnum.齐包待出库.ToString()}',不允许强制出库");
        //    }
        if (input == null)
        {
            throw Oops.Oh("参数不能为空");
        }
        if (string.IsNullOrEmpty(input.PackageCode))
        {
            throw Oops.Oh("包号不能为空");
        }
        if (string.IsNullOrEmpty(input.Reason))
        {
            throw Oops.Oh("原因不能为空");
        }
        //    更新状态
        //    foreach (var quan in quanList)
        //    {
        //        quan.StockStatus = StockStatusEnum.人工强制待出库;
        //        quan.UpdateTime = DateTime.Now;
        //        quan.OperReason = "人工强制待出库";
        //    }
        //    updateQuanList.AddRange(quanList);
        //}
        var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
        if (singlePackage == null)
        {
            throw Oops.Oh($"没有找到包号{input.PackageCode}的汇总数据");
        }
        //await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
        singlePackage.UpiFlag = UpiFlagEnum.NG;
        singlePackage.UpdateTime = DateTime.Now;
        singlePackage.UpiStatus = UpiStatusEnum.已下线;
        singlePackage.AreaCode = AreaCodeEnum.下线区域;
        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
        if (upiList == null)
        {
            throw Oops.Oh($"没有找到包号{input.PackageCode}的板件数据");
        }
        foreach (var item in upiList)
        {
            item.UpiFlag = UpiFlagEnum.NG;
            item.UpdateTime = DateTime.Now;
            item.UpiStatus = UpiStatusEnum.已下线;
            item.AreaCode = AreaCodeEnum.下线区域;
            WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess();
            wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>();
            wmsRecordUpi.CreateTime = DateTime.Now;
            wmsRecordUpi.Location = "";
            wmsRecordUpi.OperRemark = "NG下线";
            await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi);
        }
        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
        wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>();
        wmsRecordPackage.Location = "";
        wmsRecordPackage.OperRemark = "NG下线";
        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
        await _mesPackageGatherRep.UpdateAsync(singlePackage);
        await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
    }