南骏 池
4 天以前 81fae3c184966eeaa3081e456b1fb2d0e25a3456
1.调拨入库取消选择申请单号
已修改2个文件
119 ■■■■■ 文件已修改
Controllers/Warehouse/TransferOutController.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/TransferOutManager.cs 95 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/TransferOutController.cs
@@ -169,6 +169,30 @@
        }
    }
    [HttpPost("GetTransferInDetailListByBillNo")]
    public ResponseResult GetTransferInDetailListByBillNo(
    [FromBody] WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList =
                _manager.GetTransferInDetailListByBillNo(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     扫描条码进行调拨出库处理
    /// </summary>
service/Warehouse/TransferOutManager.cs
@@ -121,6 +121,79 @@
        return dto;
    }
    /// <summary>
    ///     根据单据号获取待处理的调拨出库明细列表
    /// </summary>
    /// <param name="query">查询参数,包含单据号</param>
    /// <returns>待处理的调拨出库明细列表</returns>
    public ProductionPickDto GetTransferInDetailListByBillNo(
        WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.billNo)) throw new Exception("调拨单号为空");
        var sql1 = string.Format(@"SELECT * FROM MES_DBCK WHERE FDocumentStatus = 'C' AND FBillNo = '{0}'", query.billNo);
        var dbck = Db.Ado.SqlQuery<ItemDetailModel>(sql1);
        if (dbck.Count < 1) throw new Exception("调拨单号不存在或未审核!");
        var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty ,
       dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw
    FROM MES_DBCK_DETAIL B
    LEFT JOIN MES_DBCK A ON A.ID = B.pid
    LEFT JOIN MES_ITEMS C ON  B.FMATERIALID = C.item_id
    LEFT JOIN WOMCAB D ON B.erpid = D.ERPID
    WHERE A.FBillNo = '{0}'  ORDER BY FSEQ", query.billNo);
        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql2);
        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
        var YS_list = womdabs.Where(s => s.RQty > 0).ToList();
        //var p_bill_no = query.billNo;
        //// 根据SQL查询条件获取待处理的出库明细
        //// 关联查询TransferOutDetail、TransferOut和MesItems三张表
        //// 筛选条件:未完成数量大于0且单据已审核
        //var result = Db.Queryable<MesDbckDetail, MesDbck, MesItems>(
        //        (b, a, s) => new JoinQueryInfos(
        //            JoinType.Left, b.Pid == a.Id,
        //            JoinType.Left, b.FMaterialId == s.Id.ToString()))
        //    .Where((b, a, s) =>
        //        !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0))
        //        && a.FBillNo == p_bill_no // 匹配单据号
        //        && a.FApproveStatus == 1) // 单据已审核
        //    .OrderBy((b, a, s) => s.ItemNo)
        //    .Select((b, a, s) => new ItemDetailModel
        //    {
        //        ItemNo = s.ItemNo,
        //        ItemName = s.ItemName,
        //        ItemModel = s.ItemModel,
        //        FQty = b.FQty, // 申请数量
        //        SQty = b.SQty, // 已扫数量
        //        RQty = b.RQty, // 已扫数量
        //        // 保留其他必要字段...
        //        Pid = b.Pid.ToString(),
        //        FMaterialId = b.FMaterialId,
        //        Id = b.Id.ToString()
        //    })
        //    .ToList();
        //if(result.Count < 1) throw new Exception("该调拨单不存在或已扫完,请重新扫描");
        var dto = new ProductionPickDto
        {
            items = DS_list,
            Ysitems = YS_list
            // yisao = mesInvItemOutCDetailsList
        };
        return dto;
    }
    public List<ItemDetailModel> GetDBCKDetal(
        WarehouseQuery query)
    {
@@ -270,14 +343,15 @@
            .Where(x => x.ItemBarcode == p_item_barcode)
            .First();
        // 验证单据号
        if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!");
        // 查询出库单并验证状态
        var transferOut = Db.Queryable<MesDbck>()
            .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
            .First();
        if (transferOut == null) throw new Exception("未找到调拨申请单或者调拨申请单没审核");
        //// 验证单据号
        //if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!");
        //// 查询出库单并验证状态
        //var transferOut = Db.Queryable<MesDbck>()
        //    .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
        //    .First();
        //if (transferOut == null) throw new Exception("未找到调拨申请单或者调拨申请单没审核");
        // 查询条码库存信息并验证
        var stock = Db.Queryable<MesDbckDetail>()
@@ -309,7 +383,7 @@
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.NVarChar, 300),
                        new("@barcode_num", SqlDbType.NVarChar, 300),
                        new("@split_num", SqlDbType.NVarChar, 300),
                        new("@outBillNo", SqlDbType.NVarChar, 300),
                        new("@c_user", query.userName),
                        new("@p_bill_no", p_bill_no),
                        new("@p_item_barcode", p_item_barcode),
@@ -326,14 +400,15 @@
                    _intSum = parameters[1].Value.ToString();
                    var barcodeNum = parameters[2].Value.ToString();
                    var splitNum = parameters[3].Value.ToString();
                    var outBillNo = parameters[3].Value.ToString();
                    
                    var result = Convert.ToInt32(_intSum);
                    if (result <= 0) throw new Exception(_strMsg);
                    query.itemNo = item.ItemNo;
                    query.Num = Convert.ToDecimal(barcodeNum);
                    query.Fum = Convert.ToDecimal(splitNum);
                    //query.Fum = Convert.ToDecimal(splitNum);
                    query.billNo = outBillNo;
                    // 返回更新后的表单和待处理明细
                    return (query, GetDBCKDetal(query));