cnf
7 天以前 aebd2d642e19ce9ccb253c671b239e7ed9fc91c6
WebApi/Gs.BaseInfo/Services/MesItemsManager.cs
@@ -1,8 +1,4 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.BaseInfo.Models;
using Gs.BaseInfo.Models;
using Gs.Entity.BaseInfo;
using Gs.Entity.Sys;
using Gs.Toolbox;
@@ -12,6 +8,10 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using SqlDataAdapter = System.Data.SqlClient.SqlDataAdapter;
namespace Gs.BaseInfo.Services;
@@ -42,25 +42,24 @@
        try
        {
            var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
            var _sbBy =
                new StringBuilder(query.sortName + " " + query.sortOrder);
            var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
            var totalCount = 0;
            var itemsList = Db
                .Queryable<MesItems, SysOrganization, MesUnit, MesUnit, MesUnit,
                    MesUnit, MesUnit, MesUnit, MesDepots, MesItemType>((a, org,
                    c, d, e, f, g, h, m, n) => new object[]
                {
                    JoinType.Left, a.FSubsidiary == org.Fid,
                    JoinType.Left, a.ItemUnit == c.Id.ToString(),
                    JoinType.Left, a.Fpurchaseunitid == d.Id.ToString(),
                    JoinType.Left, a.Saleunit == e.Id.ToString(),
                    JoinType.Left, a.Storeunit == f.Id.ToString(),
                    JoinType.Left, a.SubconUnit == g.Id.ToString(),
                    JoinType.Left, a.ProduceUnit == h.Id.ToString(),
                    JoinType.Left, a.DepotCode == m.DepotId.ToString(),
                    JoinType.Left, a.Fmaterialgroup == n.Id.ToString()
                })
                .Select((a, org, c, d, e, f, g, h, m, n) => new MesItems
                    MesUnit, MesUnit, MesUnit, MesDepots, MesItemType>(
                    (a, org, c, d, e, f, g, h, m,n) => new object[]
                    {
                        JoinType.Left, a.FSubsidiary == org.Fid,
                        JoinType.Left, a.ItemUnit == c.Id.ToString(),
                        JoinType.Left, a.Fpurchaseunitid == d.Id.ToString(),
                        JoinType.Left, a.Saleunit == e.Id.ToString(),
                        JoinType.Left, a.Storeunit == f.Id.ToString(),
                        JoinType.Left, a.SubconUnit == g.Id.ToString(),
                        JoinType.Left, a.ProduceUnit == h.Id.ToString(),
                        JoinType.Left, a.DepotCode == m.DepotId.ToString(),
                        JoinType.Left, a.Fmaterialgroup == n.Id.ToString()
                    })
                .Select((a, org, c, d, e, f, g, h, m,n) => new MesItems
                {
                    chkInt = false,
                    FSubsidiary = "(" + org.FNumber + ")" + org.Name,
@@ -71,21 +70,15 @@
                    SubconUnit = g.Fname,
                    ProduceUnit = h.Fname,
                    DepotCode = m.DepotName,
                    Fmaterialgroup = n.Tname,
                    Fforbidstatus = a.Fforbidstatus + ":" +
                                    (a.Fforbidstatus == "A" ? "正常" : "禁用"),
                    Fmaterialgroup=n.Tname,
                    Fforbidstatus = a.Fforbidstatus + ":" + (a.Fforbidstatus == "A" ? "正常" : "禁用"),
                    DataType = a.DataType + ":"
                                          + SqlFunc.IF(a.DataType == "Z")
                                              .Return("暂存")
                                              .ElseIF(a.DataType == "A")
                                              .Return("创建")
                                              .ElseIF(a.DataType == "B")
                                              .Return("审核中")
                                              .ElseIF(a.DataType == "C")
                                              .Return("已审核")
                                              .ElseIF(a.DataType == "D")
                                              .Return("重新审核")
                                              .End(a.DataType)
                        + SqlFunc.IF(a.DataType == "Z").Return("暂存")
                        .ElseIF(a.DataType == "A").Return("创建")
                        .ElseIF(a.DataType == "B").Return("审核中")
                        .ElseIF(a.DataType == "C").Return("已审核")
                        .ElseIF(a.DataType == "D").Return("重新审核")
                        .End(a.DataType)
                }, true)
                .Where(_sbWhere.ToString())
                .OrderBy(_sbBy.ToString())
@@ -117,13 +110,12 @@
        dynamic m = new ExpandoObject();
        SqlParameter[] parameters =
        {
            new("@inMainGuid", guid)
            new("@inMainGuid", guid),
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.RunProcedure("[prc_item_detail]", parameters,
                "0");
            dset = DbHelperSQL.RunProcedure("[prc_item_detail]", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
@@ -143,6 +135,7 @@
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
@@ -155,30 +148,25 @@
        SqlParameter[] parameters =
        {
            new("@inItemNo", itemNo),
            new("@inOrgId", orgId)
            new("@inOrgId", orgId),
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.RunProcedure("[prc_item_detailByOrg]",
                parameters, "0");
            dset = DbHelperSQL.RunProcedure("[prc_item_detailByOrg]", parameters, "0");
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
            {
                var dr = dset.Tables[0].Rows[0];
                m = dr.RowToDynamic();
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "读取成功!");
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败,找不到该物料!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败,找不到该物料!");
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败," + ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败," + ex.Message.ToString());
        }
    }
@@ -196,7 +184,7 @@
        string sortName = model.sortName;
        string keyWhere = model.keyWhere;
        string keyType = model.keyType;
        string keyWord = model.keyWord; //这个pguid,作为方案的主键
        string keyWord = model.keyWord;  //这个pguid,作为方案的主键
        var dset = new DataSet();
        try
        {
@@ -213,8 +201,7 @@
                        new("@inSortName", sortName),
                        new("@inSortOrder", ""),
                        new("@inQueryWhere", keyWhere),
                        new("@inP1",
                            keyType), //当为:检验项目,iqc,ipqc,fqc时,免检时 特别加上过滤条件
                        new("@inP1",keyType),//当为:检验项目,iqc,ipqc,fqc时,免检时 特别加上过滤条件
                        new("@inP2", keyWord) //这个pguid,作为方案的主键
                    };
                    foreach (var parameter in parameters)
@@ -224,15 +211,13 @@
                        dt.Fill(dset, "0");
                    }
                }
                conn.Close();
            }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(
                default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
@@ -260,6 +245,7 @@
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
@@ -272,36 +258,29 @@
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName)
            ? "a.staff_no"
            : model.sortName;
        var sortName = string.IsNullOrEmpty(model.sortName) ? "a.staff_no" : model.sortName;
        var keyWhere = model.keyWhere;
        var keyType = model.keyType;
        var sbJoin = new StringBuilder();
        string keyType = model.keyType;
        System.Text.StringBuilder sbJoin = new StringBuilder();
        sbJoin.Append(" FROM MES_ITEMS [a]");
        sbJoin.Append(
            " Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )");
        sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='" + keyType +
                      "' and b.aboutGuid=a.item_id and b.fType='物料分区')");
        sbJoin.Append(" Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )");
        sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='" + keyType + "' and b.aboutGuid=a.item_id and b.fType='物料分区')");
        sbJoin.Append(" where 1=1 ");
        sbJoin.Append(keyWhere);
        var sbSql = new StringBuilder();
        sbSql.Append("  SELECT * FROM ");
        sbSql.Append(
            " (SELECT N'(' +[Org].[FNumber] + N')'  +[Org].[NAME]  AS [FSubsidiary2]");
        sbSql.Append(
            " ,a.item_id,a.item_no,a.item_name,a.item_model,a.guid,ROW_NUMBER() OVER(ORDER BY org.FNumber asc ,a.item_no asc) AS RowIndex ");
        sbSql.Append(" (SELECT N'(' +[Org].[FNumber] + N')'  +[Org].[NAME]  AS [FSubsidiary2]");
        sbSql.Append(" ,a.item_id,a.item_no,a.item_name,a.item_model,a.guid,ROW_NUMBER() OVER(ORDER BY org.FNumber asc ,a.item_no asc) AS RowIndex ");
        //如果无关键字,无需找查绑定
        if (string.IsNullOrEmpty(keyType))
        {
            sbSql.Append(",cast(0 as bit) as chkInt");
        }
        else
            sbSql.Append(
                ",cast(  (case when  b.guid is null then 0 else 1 end) as bit) as chkInt ");
            sbSql.Append(",cast(  (case when  b.guid is null then 0 else 1 end) as bit) as chkInt ");
        sbSql.Append(sbJoin);
        sbSql.Append(") T");
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" +
                     everyPageSize + " and  T.rowindex<=" + currentPage + "*" +
                     everyPageSize);
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and  T.rowindex<=" + currentPage + "*" + everyPageSize);
        sbSql.Append(" select count(1) as intTotal ");
        sbSql.Append(sbJoin);
        var dset = new DataSet();
@@ -312,10 +291,8 @@
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage2 error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(
                default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
            return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
        {
            total = 0,
@@ -326,8 +303,7 @@
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
        {
            var intTotal =
                int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
            var pages = intTotal % everyPageSize != 0
                ? intTotal / everyPageSize + 1
                : intTotal / everyPageSize;
@@ -337,14 +313,13 @@
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    ///     批量设置提前到货日期
    /// 批量设置提前到货日期
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
@@ -354,29 +329,25 @@
        string guidList = model.guidList;
        string bz10 = model.bz10;
        string percent = model.percent;
        var rtnInt = (int)ReturnCode.Default;
        int rtnInt = (int)ReturnCode.Default;
        try
        {
            var strSql = new StringBuilder();
            strSql.Append(" update  MES_ITEMS set bz10=" + bz10.Trim() + " ," +
                          "loss_percent = " + percent.Trim() + " ");
            strSql.Append(" where guid in (select line from dbo.fn_split('" +
                          guidList + "',','))");
            var rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" update  MES_ITEMS set bz10=" + bz10.Trim() + " ," + "loss_percent = " + percent.Trim() + " ");
            strSql.Append(" where guid in (select line from dbo.fn_split('" + guidList + "',','))");
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            rtnInt = rows;
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "SetDays error:" + ex.Message);
            LogHelper.Debug(this.ToString(), "SetDays error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
            return ReturnDto<int>.QuickReturn(default(int?),
                ReturnCode.Exception, "操作失败," + ex.Message);
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败," + ex.Message);
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success,
                "操作成功!");
        return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception,
            "操作失败,请重试!");
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "操作成功!");
        else
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "操作失败,请重试!");
    }
}