cnf
2025-09-10 1b3db8f5683373dd8e179b006e7314783dd1f9db
WebApi/Gs.Wom/WorkService/MesBackFlashController.cs
@@ -1,4 +1,5 @@
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
@@ -11,14 +12,14 @@
using Newtonsoft.Json.Linq;
using static Gs.Toolbox.UtilityHelper;
namespace Gs.Wom.WorkService;
namespace Gs.Wom.WorkService
{
[ApiGroup(ApiGroupNames.WOM)]
public class MesBackFlashController : IRomteService
{
    private readonly IHttpContextAccessor _http;
    private readonly string _userCode, _userGuid, _orgFids;
    public MesBackFlashController(IHttpContextAccessor httpContextAccessor)
    {
        _http = httpContextAccessor;
@@ -26,57 +27,32 @@
    }
    #region
    /// <summary>
    ///     读取列表,支持分页
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model)
        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
    {
        var currentPage = model.currentPage;
        var everyPageSize = model.everyPageSize;
        var sortName = string.IsNullOrEmpty(model.sortName)
            ? "org.FNumber"
            : model.sortName;
        var keyWhere = model.keyWhere;
        var _w = new StringBuilder();
        _w.Append(" from [dbo].[MES_BACK_FLASH] a");
        _w.Append(" left join MES_ITEMS i on a.ItemID=i.item_id  ");
        _w.Append(" left join MES_DEPOTS d on a.depotId=d.depot_id ");
        _w.Append(
            " left join SYS_DEPARTMENT m on a.departmentId=m.departmentid ");
        _w.Append(" left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID");
        _w.Append(" where 1=1 " + keyWhere);
        var sbSql = new StringBuilder();
        sbSql.Append("select * from ");
        sbSql.Append("( ");
        sbSql.Append("select top 100000 ROW_NUMBER() over(order by " +
                     sortName + " " + model.sortOrder +
                     ") as rowIndex,a.*,'('+org.FNumber+')'+org.NAME as orgName  ");
        sbSql.Append(
            ",i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel,d.depot_name as depotName,m.departmentname as bmName");
        sbSql.Append(_w);
        sbSql.Append(") as T ");
        sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" +
                     everyPageSize + " and  T.rowindex<=" + currentPage + "*" +
                     everyPageSize);
        sbSql.Append(" order by rowindex asc ");
        sbSql.Append(" select count(1) as intTotal ");
        sbSql.Append(_w);
            int currentPage = model.currentPage;
            int everyPageSize = model.everyPageSize;
            string sortName = model.sortName;
            string keyWhere = model.keyWhere;
            SqlParameter[] parameters =
            {
            new("@inCurrentPage", currentPage),
            new("@inEveryPageSize", everyPageSize),
            new("@inSortName", sortName),
            new("@inSortOrder", ""),
            new("@inQueryWhere", keyWhere),
            new("@inFid", ""),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
        var dset = new DataSet();
        try
        {
            dset = DbHelperSQL.Query(sbSql.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message);
            return ReturnDto<PageList<dynamic>>.QuickReturn(
                default(PageList<dynamic>), ReturnCode.Exception, "读取失败");
        }
        var _pglist = new PageList<dynamic>
        {
            total = 0,
@@ -84,6 +60,9 @@
            pages = 0,
            list = new List<dynamic>()
        };
            try
            {
                dset = DbHelperSQL.RunProcedure("prc_back_flash_lst", parameters, "0");
        if (dset != null && dset.Tables.Count > 0 &&
            dset.Tables[0].Rows.Count > 0) //有数据
        {
@@ -98,152 +77,245 @@
            var _dy = dset.Tables[0].TableToDynamicList();
            _pglist.list = _dy;
        }
            }
            catch (Exception ex)
            {
                LogHelper.Debug(ToString(), ex.Message);
                return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
              ReturnCode.Exception, ex.Message);
            }
        return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist,
            ReturnCode.Success, "读取成功");
    }
    /// <summary>
    ///     删除实体
        ///     读取
    /// </summary>
    /// <param name="model"></param>
        /// <param name="guid"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<int?> DeleteModel([FromBody] JArray guidList)
        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
    {
        var intArray = guidList.ToObject<string[]>();
        var guid = intArray[0];
        var rtnInt = (int)ReturnCode.Default;
        var cont = 0;
            string guid = model.guid.ToString();
            dynamic m = new ExpandoObject();
            m.list = new List<dynamic>();
            m.list2 = new List<dynamic>();
            SqlParameter[] parameters =
            {
            new("@inMainGuid", guid),
            new("@inP1", ""),
            new("@inP2", ""),
            new("@inP3", ""),
            new("@inP4", "")
        };
            var dset = new DataSet();
        try
        {
            cont = isChkOrUnChk(guid, 1);
            if (cont > 0)
                return ReturnDto<int>.QuickReturn(default(int?),
                    ReturnCode.Exception, "删除失败,该信息已被审核!");
            var strSql = new StringBuilder();
            strSql.Append(" delete from MES_BACK_FLASH ");
            strSql.Append(" where guid='" + guid + "'");
            var rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            rtnInt = rows;
                dset = DbHelperSQL.RunProcedure("[prc_back_flash_mx]", 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();
                }
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "DeleteModel error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
            return ReturnDto<int>.QuickReturn(default(int?),
                ReturnCode.Exception, "删除失败," + ex.Message);
                LogHelper.Debug(ToString(), ex.Message);
        }
        if (rtnInt > 0)
            return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success,
                "操作成功,共删除" + rtnInt + "条数据!");
        return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception,
            "删除失败,请重试!");
            if (m != null)
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "读取失败!");
    }
    /// <summary>
    ///     增加实体
        ///     增加或编辑实体
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
    {
            Guid? guid = model.guid; //主键
        string itemId = model.itemId;
        string departmentId = model.departmentId;
        string depotId = model.depotId;
        int? rtnInt = (int)ReturnCode.Default;
            string depotlocid = model.depotlocid;
        dynamic mObj = new ExpandoObject();
        mObj.outMsg = "";
        mObj.outSum = -1;
        mObj.outGuid = "";
        mObj.outNo = "";
        var strSql = new StringBuilder();
        var guid = Guid.NewGuid().ToString();
        strSql.Append(" insert into MES_BACK_FLASH");
        strSql.Append(
            " ([guid] ,[ItemId] ,[departmentId] ,[depotId],createBy,createDate,checkStatus)");
        strSql.Append(" values(");
        strSql.Append(" '" + guid + "','" + itemId + "','" + departmentId +
                      "'," + depotId + ",'" + _userCode + "',getdate(),0)");
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_back_flash_edt]", conn))
                {
        try
        {
            rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString());
            mObj.outMsg = "操作成功!";
            mObj.outSum = rtnInt;
            mObj.outGuid = guid;
            mObj.outNo = itemId;
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                        new SqlParameter("@outMsg", SqlDbType.NVarChar, 300),
                        new SqlParameter("@outSum", SqlDbType.Int),
                        new SqlParameter("@outGuid", SqlDbType.UniqueIdentifier),
                        new SqlParameter("@outNo", SqlDbType.NVarChar, 300),
                        new SqlParameter("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
                        new SqlParameter("@ItemId", string.IsNullOrEmpty(itemId) ? DBNull.Value : (object)long.Parse(itemId)),
                        new SqlParameter("@departmentId", string.IsNullOrEmpty(departmentId) ? DBNull.Value : (object)long.Parse(departmentId)),
                        new SqlParameter("@depotId", string.IsNullOrEmpty(depotId) ? DBNull.Value : (object)long.Parse(depotId)),
                        new SqlParameter("@remark", ""),
                        new SqlParameter("@inEdtUserGuid", _userGuid)
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        parameters[2].Direction = ParameterDirection.Output;
                        parameters[3].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        mObj.outMsg = parameters[0].Value.ToString();
                        mObj.outSum = int.Parse(parameters[1].Value.ToString());
                        mObj.outGuid = parameters[2].Value.ToString();
                        mObj.outNo = parameters[3].Value.ToString();
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "EditModel error:" + ex.Message);
            rtnInt = (int)ReturnCode.Exception;
                        LogHelper.Debug(ToString(),
                            "prc_back_flash_edt error:" + ex.Message);
            mObj.outMsg = ex.Message;
            mObj.outSum = -1;
        }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
        if (mObj.outSum <= 0)
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception,
                mObj.outMsg);
        return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success,
            mObj.outMsg);
                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
    }
    /// <summary>
    ///     读取实体
        ///     删除主表或明细
    /// </summary>
    /// <param name="guid"></param>
        /// <param name="model"></param>
    /// <returns></returns>
    [RequestMethod(RequestMethods.POST)]
    [AllowAnonymous]
    public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
        public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
    {
        dynamic m = new ExpandoObject();
        var sbSql = new StringBuilder();
        sbSql.Append(
            "select top 1 a.*,org.FID as orgId ,i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel from MES_BACK_FLASH a left join MES_ITEMS i on a.ItemID=i.item_id left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID where 1=1 and a.guid='" +
            model.guid.ToString() + "' ");
            int? rtnInt = (int)ReturnCode.Default;
            Guid? guid = model.guid; //到货单主键
            var _outMsg = "";
            var _outSum = -1;
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand("[prc_back_flash_del]", conn))
                {
        try
        {
            var dset = new DataSet();
            dset = DbHelperSQL.Query(sbSql.ToString());
            if (dset != null && dset.Tables.Count > 0 &&
                dset.Tables[0].Rows.Count > 0)
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
            {
                var dr = dset.Tables[0].Rows[0];
                m = dr.RowToDynamic();
                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
                    "读取成功!");
            }
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.Int),
                        new("@inOrderGuid",
                            CheckGuid(guid)
                                ? guid
                                : DBNull.Value),
                        new("@inEdtUserGuid", _userGuid)
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败!");
                        cmd.ExecuteNonQuery();
                        _outMsg = parameters[0].Value.ToString();
                        _outSum = int.Parse(parameters[1].Value.ToString());
        }
        catch (Exception ex)
        {
            LogHelper.Debug(ToString(), "GetModel error:" + ex.Message);
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                "读取失败!");
                        LogHelper.Debug(ToString(),
                            "prc_auto_rk_del error:" + ex.Message);
                        _outMsg = ex.Message;
                        _outSum = -1;
                    }
                    finally
                    {
                        conn.Close();
        }
    }
            }
            if (_outSum <= 0)
                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
                    _outMsg);
            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
        }
    /// <summary>
    ///     判断是否审核
        ///     提交检验
    /// </summary>
    /// <param name="guidList"></param>
    /// <param name="status"></param>
        /// <param name="mode"></param>
    /// <returns></returns>
    private int isChkOrUnChk(string guidList, int status)
        [RequestMethod(RequestMethods.POST)]
        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
    {
        var cont = 0;
        cont = int.Parse(DbHelperSQL
            .GetSingle("select count(1) from MES_BACK_FLASH where guid='" +
                       guidList + "' and isnull(checkstatus,0)=" + status + "")
            .ToString());
        return cont;
            string _guid = mode.guid;
            string _inFieldValue = mode.inFieldValue;
            string _chkOut = mode.chkOut;
            string _proName = "prc_back_flash_submit";
            dynamic m = new ExpandoObject();
            m.outSum = -1;
            m.outMsg = "";
            using (var conn = new SqlConnection(DbHelperSQL.strConn))
            {
                using (var cmd = new SqlCommand(_proName, conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.CommandType = CommandType.StoredProcedure;
                        SqlParameter[] parameters =
                        {
                         new("@outMsg", SqlDbType.NVarChar, 2500),
                        new("@outSum", SqlDbType.Int),
                        new("@inEdtUserGuid", _userGuid),
                        new("@inOrderGuid", _guid),
                        new("@inFieldValue", _inFieldValue),
                        new("@in1", _chkOut),
                        new("@in2", "")
                    };
                        parameters[0].Direction = ParameterDirection.Output;
                        parameters[1].Direction = ParameterDirection.Output;
                        foreach (var parameter in parameters)
                            cmd.Parameters.Add(parameter);
                        cmd.ExecuteNonQuery();
                        m.outMsg = parameters[0].Value.ToString();
                        m.outSum = int.Parse(parameters[1].Value.ToString());
    }
                    catch (Exception ex)
                    {
                        LogHelper.Debug(ToString(),
                            "prc_auto_rk_submit error:" + ex.Message);
                        m.outMsg = ex.Message;
                        return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default,
                            ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "操作成功!");
        }
    #endregion
}
}