111
啊鑫
2025-09-24 4db3ba3f84456c27fdd9be76ff76c17101270914
111
已修改8个文件
319 ■■■■ 文件已修改
service/QC/LljService.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemBlManager.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemQtManager.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemQtrkManager.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WomdaaManager.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WwGdManager.cs 161 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/base/LoginService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/base/WmsBaseMangeer.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/QC/LljService.cs
@@ -342,8 +342,16 @@
            //合格的检验结果等于总检验数视为合格
            FcheckResu = "合格";
        var sysUser = Db.Queryable<SysUser>()
            .Where(s => s.Account == detail.CreateBy).First();
        SysUser sysUser;
        try
        {
            sysUser = Db.Queryable<SysUser>()
                .Where(s => s.Account == detail.CreateBy).First();
        }
        catch
        {
            throw new Exception($"用户账号 {detail.CreateBy} 不存在,无法完成检验操作!");
        }
        UseTransaction(db =>
        {
service/Warehouse/MesItemBlManager.cs
@@ -286,7 +286,17 @@
        // Get output parameters
        var outMsg = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_MSG")?.Value?.ToString();
        var outSum = Convert.ToInt32(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value ?? -1);
        int outSum;
        if (int.TryParse(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value?.ToString(), out outSum))
        {
            // 成功转换
        }
        else
        {
            outSum = -1;
        }
        var outCfBar = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_CF_BAR")?.Value?.ToString();
        // Handle the result
service/Warehouse/MesItemQtManager.cs
@@ -117,23 +117,33 @@
        if (existingBarcode) throw new Exception("此条码已经扫码出库,勿重复扫描!");
        // 获取条码信息
        var barcode = Db.Queryable<MesInvItemBarcodes>()
            .Where(it => it.ItemBarcode == p_item_barcode)
            .First();
        if (barcode == null)
            throw new Exception($"mes中不存在此条码,请核对!{p_item_barcode}");
        MesInvItemBarcodes barcode;
        try
        {
            barcode = Db.Queryable<MesInvItemBarcodes>()
                .Where(it => it.ItemBarcode == p_item_barcode)
                .First();
        }
        catch
        {
            throw new Exception($"MES中不存在此条码,条码号:{p_item_barcode},请核对!");
        }
        // 获取库存信息
        var stock = Db.Queryable<MesInvItemStocks>()
            .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0)
            .First();
        if (stock == null)
            throw new Exception($"库存中无此条码,请检查条码是否未入库或已出库!{p_item_barcode}");
        MesInvItemStocks stock;
        try
        {
            stock = Db.Queryable<MesInvItemStocks>()
                .Where(it => it.ItemBarcode == p_item_barcode && it.Quantity > 0)
                .First();
        }
        catch
        {
            throw new Exception($"库存中无此条码,条码号:{p_item_barcode},请检查条码是否未入库或已出库!");
        }
        if (string.IsNullOrEmpty(stock.DepotsCode))
service/Warehouse/MesItemQtrkManager.cs
@@ -93,10 +93,15 @@
             MES_DEPOTS b ON a.depot_guid = b.Guid
        WHERE a.depot_section_code = @sectionCode;";
        var depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
        if (depotInfo is  null)
        dynamic depotInfo;
        try
        {
            depotInfo = Db.Ado.SqlQuery<dynamic>(sql2, sqlParams).First();
        }
        catch
        {
            throw new Exception($"库位编码 {sectionCode} 不存在,请确认!");
        }
        // 5. 返回成功信息
        return depotInfo;
@@ -118,18 +123,23 @@
            throw new Exception("请扫库位条码!");
        // 2. 查询库位对应的仓库编码和仓库ID
        var depotInfo = Db.Queryable<MesDepotSections, MesDepots>(
                (a, b) =>
                    new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
            .Where((a, b) => a.DepotSectionCode == p_section_code)
            .Select((a, b) => new { b.DepotCode, b.DepotId })
            .First();
        if (depotInfo == null)
        var depotInfo2 = new { DepotCode = "", DepotId = (int?)0 }; // 匹配数据库返回的可空类型
        try
        {
            depotInfo2 = Db.Queryable<MesDepotSections, MesDepots>(
                    (a, b) =>
                        new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
                .Where((a, b) => a.DepotSectionCode == p_section_code)
                .Select((a, b) => new { b.DepotCode, b.DepotId })
                .First();
        }
        catch
        {
            throw new Exception($"库位编码 {p_section_code} 不存在,请确认!");
        }
        var c_depot_code = depotInfo.DepotCode;
        var c_depot_id = depotInfo.DepotId;
        var c_depot_code = depotInfo2.DepotCode;
        var c_depot_id = depotInfo2.DepotId;
        var sqlParams = new List<SugarParameter> { new("@barcode", p_item_barcode), new("@billNo", p_bill_no) };
@@ -145,8 +155,16 @@
        var mesDepost = Db.Queryable<MesDepots>()
        MesDepots mesDepost;
        try
        {
            mesDepost = Db.Queryable<MesDepots>()
                .Where(s => s.DepotId == c_depot_id).First();
        }
        catch
        {
            throw new Exception($"仓库ID {c_depot_id} 对应的仓库信息不存在,请确认!");
        }
        
service/Wom/WomdaaManager.cs
@@ -764,10 +764,13 @@
                        cmd.Parameters.Add(parameter);
                    
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[2].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
                    if (int.TryParse(parameters[3].Value?.ToString(), out int status))
                        _status = status;
                    else
                        _status = -1;
                    if (_status <= 0) throw new Exception(_strMsg);
    
                    return new { 
@@ -909,7 +912,10 @@
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[3].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[4].Value ?? -1);
                    if (int.TryParse(parameters[4].Value?.ToString(), out int status))
                        _status = status;
                    else
                        _status = -1;
                    if (_status <= 0) throw new Exception(_strMsg);
@@ -971,7 +977,10 @@
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[2].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
                    if (int.TryParse(parameters[3].Value?.ToString(), out int status))
                        _status = status;
                    else
                        _status = -1;
                    _weight = parameters[4].Value?.ToString() ?? "0";
                    if (_status <= 0) throw new Exception(_strMsg);
@@ -1178,7 +1187,10 @@
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[3].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[4].Value ?? -1);
                    if (int.TryParse(parameters[4].Value?.ToString(), out int status))
                        _status = status;
                    else
                        _status = -1;
                    if (_status <= 0) throw new Exception(_strMsg);
service/Wom/WwGdManager.cs
@@ -267,27 +267,40 @@
        if (p_section_code.IsNullOrEmpty()) throw new Exception("请扫库位条码!");
        // 获取库位信息
        var c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
                new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
            .Where((a, b) => a.DepotSectionCode == p_section_code)
            .Select((a, b) => b.DepotId).First();
        int? c_depot_code;
        try
        {
            c_depot_code = Db.Queryable<MesDepotSections, MesDepots>((a, b) =>
                    new JoinQueryInfos(JoinType.Inner, a.DepotGuid == b.Guid))
                .Where((a, b) => a.DepotSectionCode == p_section_code)
                .Select((a, b) => b.DepotId).First();
        }
        catch
        {
            throw new Exception($"库位编码 {p_section_code} 不存在,请确认!");
        }
        if (!c_depot_code.HasValue)
            throw new Exception("库位编码" + p_section_code + " 不存在,请确认!");
        MesDepotSections mesDepotSections;
        try
        {
            mesDepotSections = Db.Queryable<MesDepotSections>()
                .Where(a => a.DepotSectionCode == p_section_code).First();
        }
        catch
        {
            throw new Exception($"库位编码 {p_section_code} 不存在,请确认!");
        }
        // 获取库位分区信息
        var mesDepotSections = Db.Queryable<MesDepotSections>()
            .Where(a => a.DepotSectionCode == p_section_code).First();
        if (mesDepotSections == null)
            throw new Exception("库位编码" + p_section_code + " 不存在,请确认!");
        // 获取库位基础信息
        var c_mes_depots = Db.Queryable<MesDepots>()
            .Where(b => b.Guid == mesDepotSections.DepotGuid).First();
        if (c_mes_depots == null)
            throw new Exception("库位编码" + p_section_code + " 不存在,请确认!");
        MesDepots c_mes_depots;
        try
        {
            c_mes_depots = Db.Queryable<MesDepots>()
                .Where(b => b.Guid == mesDepotSections.DepotGuid).First();
        }
        catch
        {
            throw new Exception($"库位编码 {p_section_code} 对应的仓库不存在,请确认!");
        }
        // 检查条码是否已入库
        var c_num = Db.Queryable<MesInvItemIns, MesInvItemInCDetails>((a, b) =>
@@ -305,11 +318,16 @@
        if (c_num > 0) throw new Exception("此条码已扫入库,勿重复扫描!");
        // 获取条码信息
        var c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
            .Where(t => t.ItemBarcode == p_item_barcode).First();
        if (c_mes_inv_item_barcodes == null)
            throw new Exception("此条码不属于该退料单,请核对!");
        MesInvItemBarcodes c_mes_inv_item_barcodes;
        try
        {
            c_mes_inv_item_barcodes = Db.Queryable<MesInvItemBarcodes>()
                .Where(t => t.ItemBarcode == p_item_barcode).First();
        }
        catch
        {
            throw new Exception($"条码 {p_item_barcode} 不属于该退料单,请核对!");
        }
       
@@ -317,41 +335,90 @@
        //     throw new Exception("此条码不是生产退料条码,不可使用生产退料模块!");
        // 获取退料单信息
        var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
            .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
                        && (a.Tbl013 ?? 0) == 1).First();
        if (C_MES_ITEM_TBL == null) throw new Exception("申请单已撤回,无法扫码!");
        MesItemTbl C_MES_ITEM_TBL;
        try
        {
            C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
                .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
                            && (a.Tbl013 ?? 0) == 1).First();
        }
        catch
        {
            throw new Exception($"申请单 {c_mes_inv_item_barcodes.BillNo} 已撤回或不存在,无法扫码!");
        }
        if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("扫码完成,申请单已完结!");
        // 检查工单信息
        var wwgd = Db.Queryable<WwGd>()
            .Where(a => a.Id.ToString() == C_MES_ITEM_TBL.Tbl002)
            .First();
        WwGd wwgd;
        try
        {
            wwgd = Db.Queryable<WwGd>()
                .Where(a => a.Id.ToString() == C_MES_ITEM_TBL.Tbl002)
                .First();
        }
        catch
        {
            throw new Exception($"申请单对应的工单不存在或已删除,单据号:{C_MES_ITEM_TBL.Tbl002},无法扫码!");
        }
        if (wwgd == null) throw new Exception("申请单对应的工单不存在或已删除,无法扫码!");
        // 检查工单信息
        var WWRWD = Db.Queryable<ProductionOrder>()
            .Where(a => a.OrderNo == wwgd.Daa014)
            .First();
        // 检查生产订单信息
        ProductionOrder WWRWD;
        try
        {
            WWRWD = Db.Queryable<ProductionOrder>()
                .Where(a => a.OrderNo == wwgd.Daa014)
                .First();
        }
        catch
        {
            throw new Exception($"工单 {wwgd.Daa014} 对应的生产订单不存在,请确认!");
        }
        // 获取退料单明细
        var C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>()
            .Where(a => a.Tlid == c_mes_inv_item_barcodes.AboutGuid)
            .First();
        if (C_MES_ITEM_TBL_DETAIL == null)
            throw new Exception("条码不属于该申请单明细,无法扫码!");
        MesItemTblDetail C_MES_ITEM_TBL_DETAIL;
        try
        {
            C_MES_ITEM_TBL_DETAIL = Db.Queryable<MesItemTblDetail>()
                .Where(a => a.Tlid == c_mes_inv_item_barcodes.AboutGuid)
                .First();
        }
        catch
        {
            throw new Exception($"条码 {p_item_barcode} 不属于该申请单明细,无法扫码!");
        }
        //判断货主信息
        var CABerpid = Db.Queryable<WwGdDetail>().Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013).Select(womdab => womdab.Erpid).First();
        int? CABerpid;
        try
        {
            CABerpid = Db.Queryable<WwGdDetail>()
                .Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013)
                .Select(womdab => womdab.Erpid)
                .First();
        }
        catch
        {
            throw new Exception($"用料清单明细不存在,明细ID:{C_MES_ITEM_TBL_DETAIL.Tld013},请联系管理员!");
        }
        var WWCAB = Db.Queryable<ProductionOrderSub>().Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First();
        if (!CABerpid.HasValue)
            throw new Exception("用料清单ERP ID为空,请联系管理员!");
        ProductionOrderSub WWCAB;
        try
        {
            WWCAB = Db.Queryable<ProductionOrderSub>()
                .Where(womcab => womcab.ErpId == CABerpid.Value.ToString())
                .First();
        }
        catch
        {
            throw new Exception($"生产订单子项不存在,ERP ID:{CABerpid.Value},请联系管理员!");
        }
        if ( String.IsNullOrEmpty(WWCAB.Owner)) throw new Exception("用料清单货主信息不存在,无法扫码,请联系管理员!");
        if (string.IsNullOrEmpty(WWCAB.Owner))
            throw new Exception($"用料清单货主信息不存在,生产订单子项 ERP ID:{CABerpid.Value},无法扫码,请联系管理员!");
        //var owner_type = "";
        //if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
service/base/LoginService.cs
@@ -96,7 +96,7 @@
                    var icoimg = "";
                    if (mesFile != null)
                        icoimg = "http://192.168.1.145:81/upload/" +
                        icoimg = "http://192.168.0.51:81/upload/" +
                                 mesFile.UrlPath;
                    groupObj.child.Add(new MesSysPageview
service/base/WmsBaseMangeer.cs
@@ -140,24 +140,28 @@
            if (string.IsNullOrEmpty(ownerId))
                return "BD_OwnerOrg"; // 默认为组织类型
            // 优先检查系统组织
            if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
            {
                return "BD_OwnerOrg";
            }
            else if (Db.Queryable<MesCustomer>().Any(x => x.Id == Convert.ToInt32(ownerId)))
            // 检查是否为客户或供应商(安全的数字转换)
            if (int.TryParse(ownerId, out int ownerIdInt))
            {
                return "BD_Customer";
                if (Db.Queryable<MesCustomer>().Any(x => x.Id == ownerIdInt))
                {
                    return "BD_Customer";
                }
                if (Db.Queryable<MesSupplier>().Any(x => x.Id == ownerIdInt))
                {
                    return "BD_Supplier";
                }
            }
            else if (Db.Queryable<MesSupplier>().Any(x => x.Id == Convert.ToInt32(ownerId)))
            {
                return "BD_Supplier";
            }
            else if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId))
            {
                return "BD_OwnerOrg";
            }
            throw new Exception("无法确定货主类型,请检查货主ID是否正确!");
            // 如果都无法匹配,返回默认组织类型而不是抛出异常
            return "BD_OwnerOrg";
        }