啊鑫
2025-07-10 ed05efdc17aab076146b134ebe105b6382f221d7
MES.Service/service/Warehouse/MesInvItemMovesManager.cs
@@ -50,8 +50,9 @@
        var iDepotCode = itemMoveQuery.InvDepotsCode;
        // 验证库区与仓库
        var depotValidationQuery = Db.Queryable<MesDepotSections, MesDepots>(
                (a, b) => new JoinQueryInfos(
        var depotValidationQuery = Db
            .Queryable<MesDepotSections, MesDepots>((a, b) =>
                new JoinQueryInfos(
                    JoinType.Inner, a.Zuid.ToString() == b.Zuid))
            .Where((a, b) => a.DepotSectionCode == query.sectionCode &&
                             b.DepotCode == iDepotCode)
@@ -171,7 +172,7 @@
    private List<MesInvItemOutItems> GetItemOutItems(WarehouseQuery query)
    {
        var sql = string.Format(
            "SELECT C.ITEM_NO,C.QUANTITY, C.REMARK,C.REMARK,S.ITEM_NAME, S.ITEM_MODEL, U.FNAME ITEM_UNIT, D.QUANTITY_OK,NVL(ST.QUANTITY, 0) WLKC  FROM MES_INV_ITEM_OUT_ITEMS C JOIN MES_ITEMS S ON C.ITEM_ID = S.ID LEFT JOIN MES_UNIT U  ON U.ID = S.ITEM_UNIT  LEFT JOIN MES_DEPOTS P ON P.DEPOT_CODE = C.DEPOT_CODE  LEFT JOIN MES_DEPOT_SECTIONS E ON E.DEPOT_SECTION_CODE = C.DEPOT_SECTION_CODE LEFT JOIN (SELECT ITEM_MOVE_ID, ITEM_NO, SUM(QUANTITY) QUANTITY_OK FROM MES_INV_ITEM_MOVES_C_DETAILS  GROUP BY ITEM_MOVE_ID, ITEM_NO) D ON D.ITEM_MOVE_ID = C.ITEM_OUT_ID AND D.ITEM_NO = C.ITEM_NO  LEFT JOIN MES_INV_ITEM_MOVES A ON A.ID = C.ITEM_OUT_ID left join (SELECT ITEM_ID, SUM(QUANTITY) QUANTITY, DEPOTS_CODE   FROM MES_INV_ITEM_STOCKS GROUP BY ITEM_ID, DEPOTS_CODE) ST ON C.ITEM_ID = ST.ITEM_ID AND ST.DEPOTS_CODE = A.FROM_DEPOTS_CODE where C.ITEM_OUT_ID = {0}",
            "SELECT C.ITEM_NO, C.QUANTITY, C.REMARK,         C.REMARK,         S.ITEM_NAME, S.ITEM_MODEL, U.FNAME ITEM_UNIT, D.QUANTITY_OK,         NVL(ST.QUANTITY, 0)      WLKC  FROM MES_INV_ITEM_OUT_ITEMS C           JOIN MES_ITEMS S ON C.ITEM_ID = S.ID           LEFT JOIN MES_UNIT U                     ON U.ID = S.ITEM_UNIT           LEFT JOIN MES_DEPOTS P ON P.DEPOT_CODE = C.DEPOT_CODE           LEFT JOIN MES_DEPOT_SECTIONS E ON E.DEPOT_SECTION_CODE = C.DEPOT_SECTION_CODE           LEFT JOIN (SELECT ITEM_MOVE_ID, ITEM_NO, SUM(QUANTITY) QUANTITY_OK                      FROM MES_INV_ITEM_MOVES_C_DETAILS                   GROUP BY ITEM_MOVE_ID, ITEM_NO) D ON D.ITEM_MOVE_ID = C.ITEM_OUT_ID AND D.ITEM_NO = C.ITEM_NO         LEFT JOIN MES_INV_ITEM_MOVES A         ON A.ID = C.ITEM_OUT_ID       left join (SELECT ITEM_ID, SUM(QUANTITY) QUANTITY, DEPOTS_CODE                 FROM MES_INV_ITEM_STOCKS GROUP BY ITEM_ID, DEPOTS_CODE) ST ON C.ITEM_ID = ST.ITEM_ID AND ST.DEPOTS_CODE = A.FROM_DEPOTS_CODE where C.ITEM_OUT_ID = {0}",
            query.id);
        return Db.Ado.SqlQuery<MesInvItemOutItems>(sql);
@@ -180,13 +181,14 @@
    private List<MesInvItemMovesCDetails> GetItemMovesCDetails(
        WarehouseQuery query)
    {
        return Db.Queryable<MesInvItemMovesCDetails, MesItems, MesSupplier>(
                (b, c, f) => new JoinQueryInfos(
                    JoinType.Left,
                    b.ItemNo == c.ItemNo && b.Company == c.Company &&
                    b.Factory == c.Factory,
                    JoinType.Left, b.SuppNo == f.SuppNo
                ))
        return Db
            .Queryable<MesInvItemMovesCDetails, MesItems,
                MesSupplier>((b, c, f) => new JoinQueryInfos(
                JoinType.Left,
                b.ItemNo == c.ItemNo && b.Company == c.Company &&
                b.Factory == c.Factory,
                JoinType.Left, b.SuppNo == f.SuppNo
            ))
            .Where((b, c, f) => b.ItemMoveId == query.id)
            .Select((b, c, f) => new MesInvItemMovesCDetails
            {
@@ -230,9 +232,9 @@
        if (mesInvItemMoves == null)
            throw new Exception("出库单 " + query.billNo + "不存在,请确认!");
        var count = Db.Queryable<MesInvItemMoves, MesInvItemMovesCDetails>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
        var count = Db
            .Queryable<MesInvItemMoves, MesInvItemMovesCDetails>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.Id == b.ItemMoveId))
            .Where((a, b) => b.ItemBarcode == query.barcode
                             && a.TransactionNo == TransctionNo &&
                             SqlFunc.IsNull(a.Status, 0) == 0).Count();