南骏 池
6 天以前 b903237d13a6b62d3e9dc1a8e3381ace2f523ab3
service/Wom/WomdaaManager.cs
@@ -17,7 +17,7 @@
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomdaaManager.cs
    //获取工单号
    public List<string> GetProductionPickDaa001(WarehouseQuery query)
    public List<string> GetProductionPickDaa001(WarehouseQuery query, dynamic requestInfo)
    {
        var sql =
            "SELECT DAA001 FROM WOMDAA A LEFT JOIN (SELECT COUNT(1) UN_NUM, PID FROM WOMDAB  WHERE DAB006 > DAB007 GROUP BY DAB002) B ON A.GUID = B.daaGuid WHERE DAA001 = " +
@@ -28,9 +28,57 @@
    }
    //根据工单号返回产品型号和待领物料
    public ProductionPickDto GetItemsByDaa001(WarehouseQuery query)
    public dynamic GetItemsByDaa001(WarehouseQuery query, dynamic requestInfo)
    {
        return getDaa001(query);
        if (string.IsNullOrEmpty(query.daa001))
            throw new Exception("请选工单号!");
        if (query == null)
            throw new ArgumentNullException(nameof(query), "参数对象不能为null");
        if (string.IsNullOrEmpty(query.daa001?.ToString()))
            throw new ArgumentException("工单号不能为空", nameof(query.daa001));
        var orgId = requestInfo.OrgId;
        if (orgId == null)
            throw new Exception("组织不存在!");
        // 调用存储过程获取物料明细
        var parameters = new[]
        {
            new SugarParameter("@daa001", query.daa001),
            new SugarParameter("@pi_orgId",orgId),
            new SugarParameter("@inP1", null),
            new SugarParameter("@inP2", null),
            new SugarParameter("@inP3", null),
            new SugarParameter("@inP4", null)
        };
        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>("EXEC prc_pda_scll_detailList @daa001", parameters);
        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
        var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
        // 修复:补充获取 womdaa 对象
        var daa001Value = query.daa001?.ToString();
        var womdaa = Db.Queryable<Womdaa>().Where(s => s.Daa001 == daa001Value).First();
        var womcaa = Db.Queryable<Womcaa>().Where(s => s.Guid == womdaa.CaaGuid).First();
        if (womcaa == null)
        {
            throw new Exception("生产任务单不存在");
        }
        var dto = new ProductionPickDto
        {
            daa001 = query.daa001,
            PlanNo = womcaa.Caa020,
            items = DS_list,
            Ysitems = YS_list
        };
        return dto;
    }
    public ProductionPickDto ScanCode(WarehouseQuery query)
@@ -265,32 +313,41 @@
    /// <returns></returns>
    public dynamic getZsBarInfo(dynamic query)
    {
        if (query == null)
            throw new ArgumentNullException(nameof(query), "参数对象不能为null");
        var sql = string.Format(@"SELECT TOP 1 A.barCode AS zsBarcode,
             D.name AS lineName,
             D.line_no,
             B.daa001,
             C.item_no,
             C.item_name,
             C.item_model,
             A.quantity as barQty,
             B.daa008 as sumQty,
             isnull((SELECT count(1) FROM WORK_COLLECT WHERE processNo = '{0}' AND ABOUT_GUID = A.ABOUT_GUID),0) AS finQty,
             isnull((SELECT TOP 1 processNo FROM WORK_COLLECT WHERE  WORK_COLLECT.barCode = '{1}' AND checkResult = '√' ORDER BY WORK_COLLECT.createDate DESC ),'') AS lastGx
FROM WORK_TRAC_CODE A
         LEFT JOIN WOMDAA B ON A.ABOUT_GUID = B.guid
         LEFT JOIN MES_ITEMS C ON B.daa002 = C.item_id
         LEFT JOIN MES_WORKSHOP_LINE D ON A.lineId = D.id
WHERE A.barCode = '{1}'", query.GX, query.Zsbarcode);
        if (string.IsNullOrEmpty(query.Zsbarcode?.ToString()))
            throw new ArgumentException("追溯码不能为空", nameof(query.Zsbarcode));
        var ZsBarInfo = Db.Ado.SqlQuery<dynamic>(sql);
        if (string.IsNullOrEmpty(query.GX?.ToString()))
            throw new ArgumentException("工序不能为空", nameof(query.GX));
        if (ZsBarInfo.Count < 1)
        var parameters = new[]
    {
        new SugarParameter("@pi_trac_barcode", query.Zsbarcode),
        new SugarParameter("@pi_gx", query.GX),
        new SugarParameter("@inP1", null),
        new SugarParameter("@inP2", null),
        new SugarParameter("@inP3", null),
        new SugarParameter("@inP4", null)
    };
        try
        {
            throw new Exception($"该追溯码{query.Zsbarcode}不存在不存在");
        }
            var ZsBarInfo = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_scll_selZsBarInfo @pi_trac_barcode,@pi_gx,@inP1,@inP2,@inP3,@inP4", parameters);
        return ZsBarInfo;
            if (ZsBarInfo.Count < 1)
            {
                throw new Exception($"该追溯码{query.Zsbarcode}不存在或已绑定");
            }
            return ZsBarInfo;
        }
        catch (Exception ex)
        {
            // 保留原有异常处理逻辑
            throw new Exception($"{ex.Message}");
        }
    }
    //获取生产
@@ -926,32 +983,43 @@
        }
    }
    public dynamic GetXcslDaa(dynamic unity)
    public dynamic GetXcslDaa(dynamic unity,dynamic RequestInfo)
    {
        var sqlParams = new List<SugarParameter> { };
        //var sqlParams = new List<SugarParameter> { };
        var sql2 = new StringBuilder(@"
        SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
        FROM WOMDAA
        WHERE daa018 <>'W:完工'");
        //var sql2 = new StringBuilder(@"
        //SELECT '['+DAA001+']['+DAA021+']' AS daaInfo,DAA001,DAA021
        //FROM WOMDAA
        //WHERE daa018 <>'W:完工'");
        if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
        //if (!string.IsNullOrWhiteSpace(unity.selectKey?.ToString()))
        //{
        //    sqlParams.Add(new("@selectKey", unity.selectKey));
        //    sql2.Append(@"
        //    AND (DAA001 LIKE '%' + @selectKey + '%'
        //    OR DAA021 LIKE '%' + @selectKey + '%')");
        //}
        //var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
        //if (XcslItem == null)
        //{
        //    throw new Exception("该条件下无对应工单信息,请重新输入!");
        //}
        var orgId = RequestInfo.OrgId;
        var parameters = new List<SugarParameter>
        {
            sqlParams.Add(new("@selectKey", unity.selectKey));
            sql2.Append(@"
            AND (DAA001 LIKE '%' + @selectKey + '%'
            OR DAA021 LIKE '%' + @selectKey + '%')");
        }
            new SugarParameter("@selectKey", unity.selectKey),
            new SugarParameter("@inP1", orgId), // 可选参数
            new SugarParameter("@inP2", null), // 可选参数
            // ...其他可选参数
        };
        var XcslItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);
        var result = Db.Ado.SqlQuery<dynamic>("EXEC prc_pda_getWorkOrderInfo @selectKey, @inP1, @inP2", parameters);
        if (XcslItem == null)
        {
            throw new Exception("该条件下无对应工单信息,请重新输入!");
        }
        return XcslItem;
        return result;
    }
@@ -1333,7 +1401,8 @@
        var sqlParams = new List<SugarParameter> { };
        var sql2 = new StringBuilder(@"SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
        var sql2 = new StringBuilder(@"
SELECT NAME,line_no FROM MES_WORKSHOP_LINE WHERE isAgv = 1 ORDER BY line_no");
        var XtItem = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams);