zjh
2025-11-10 5fa361102a4ffb184c311034f08fa2f21ce6e34e
首检代码提交
已修改4个文件
已添加3个文件
623 ■■■■■ 文件已修改
StandardPda/MES.Service/Dto/service/QsItem.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/SJPageResult.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MES_IQC_CONSISTENCY_SJ_CK.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MES_SJ_SCAN_ITEM.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MES_SJ_SCAN_ITEM_CK.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/QC/SJService.cs 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/QC/SJController.cs 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Dto/service/QsItem.cs
@@ -23,4 +23,6 @@
    public string? StatusUser { get; set; }
    public SJPageResult? Result { get; set; }
    public string? ItemNo { get; set; }
}
StandardPda/MES.Service/Dto/service/SJPageResult.cs
@@ -106,4 +106,22 @@
    /// </summary>
    [SugarColumn(ColumnName = "MOID_NUM")]
    public string? MoidNum { get; set; }
    /// <summary>
    ///     é¡¹ç›®
    /// </summary>
    [SugarColumn(ColumnName = "PROJECT_CODE")]
    public string? PROJECT_CODE { get; set; }
    /// <summary>
    ///     å·¥å•状态
    /// </summary>
    [SugarColumn(ColumnName = "DAA018")]
    public string? daa018 { get; set; }
    /// <summary>
    ///     é½å¥—状态
    /// </summary>
    [SugarColumn(ColumnName = "qtzt")]
    public string? DAA019 { get; set; }
}
StandardPda/MES.Service/Modes/MES_IQC_CONSISTENCY_SJ_CK.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using SqlSugar;
[SugarTable("MES_IQC_CONSISTENCY_SJ_CK")]
public class MES_IQC_CONSISTENCY_SJ_CK
{
    [SugarColumn(IsPrimaryKey = true, ColumnName = "ID")]
    public decimal ID { get; set; }
    [SugarColumn(ColumnName = "PID")]
    public decimal? PID { get; set; }
    [SugarColumn(ColumnName = "ITEMNAME")]
    public string? ItemName { get; set; }
    [SugarColumn(ColumnName = "ITEMMODE")]
    public string? ItemMode { get; set; }
    [SugarColumn(ColumnName = "SUPPNAME")]
    public string? SuppName { get; set; }
    [SugarColumn(ColumnName = "IMGID")]
    public string? ImgID { get; set; }
    [SugarColumn(ColumnName = "ISCHACK")]
    public decimal? ISCHACK { get; set; }
    [SugarColumn(ColumnName = "MULTI_SELECT")]
    public string? MULTI_SELECT { get; set; }
}
StandardPda/MES.Service/Modes/MES_SJ_SCAN_ITEM.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
// ==============================
// å®žä½“定义
// ==============================
using SqlSugar;
[SugarTable("MES_SJ_SCAN_ITEM")]
public class MES_SJ_SCAN_ITEM
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    public long ID { get; set; }
    [SugarColumn(ColumnName = "SCAN_ITEM", Length = 200, ColumnDescription = "扫码项目名称或编号")]
    public string SCAN_ITEM { get; set; }
    [SugarColumn(ColumnName = "MID", ColumnDescription = "主表ID,用于关联上层记录")]
    public long MID { get; set; }
    [SugarColumn(ColumnName = "CREATE_DATE", ColumnDescription = "创建时间")]
    public DateTime? CREATE_DATE { get; set; } = DateTime.Now;
}
StandardPda/MES.Service/Modes/MES_SJ_SCAN_ITEM_CK.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using SqlSugar;
[SugarTable("MES_SJ_SCAN_ITEM_CK")]
public class MES_SJ_SCAN_ITEM_CK
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    public long ID { get; set; }
    [SugarColumn(ColumnName = "SCAN_ITEM", Length = 200, ColumnDescription = "扫码项目名称或编号")]
    public string SCAN_ITEM { get; set; }
    [SugarColumn(ColumnName = "SN_NO", Length = 200, ColumnDescription = "SN编码")]
    public string SN_NO { get; set; }
    [SugarColumn(ColumnName = "MID", ColumnDescription = "主表ID,用于关联上层记录")]
    public long MID { get; set; }
    [SugarColumn(ColumnName = "CREATE_DATE", ColumnDescription = "创建时间")]
    public DateTime? CREATE_DATE { get; set; } = DateTime.Now;
}
StandardPda/MES.Service/service/QC/SJService.cs
@@ -3,6 +3,7 @@
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
using System.Data;
namespace MES.Service.service.QC;
@@ -241,27 +242,129 @@
    public QsItem SaveItem(QsItem item)
    {
        var qsItemIpiItems = item.Items;
        SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            qsItemIpiItems.ForEach(s => s.Pid = item.gid);
            return db.Insertable(qsItemIpiItems)
            // 1. åˆ é™¤æ—§çš„子项
            db.Deleteable<QsItemIpiItem>()
                .Where(s => s.Pid == item.gid)
                .ExecuteCommand();
            qsItemIpiItems.ForEach(s => s.Pid = item.gid);
            db.Insertable(qsItemIpiItems).ExecuteCommand();
            // 2. æŸ¥æ‰¾ MesQa å¯¹åº”主表ID(通过 item.ItemNo)
            var mesQa = db.Queryable<MesQa>()
                .Where(q => q.ItemNo == item.ItemNo)
                .Select(q => new { q.Id })
                .First();
            if (mesQa == null || mesQa.Id == null)
            {
                throw new Exception($"未找到物料编号 {item.ItemNo} å¯¹åº”çš„ MesQa ä¸»è¡¨è®°å½•。");
            }
            var mesQaId = mesQa.Id;
            var mid = item.gid;
            // 3. åŒæ­¥æ‰«ç æ£€éªŒé¡¹ç›®è¡¨ï¼ˆMES_SJ_SCAN_ITEM_CK)
            db.Deleteable<MES_SJ_SCAN_ITEM_CK>()
                .Where(s => s.MID == mid)
                .ExecuteCommand();
            var scanItems = db.Queryable<MES_SJ_SCAN_ITEM>()
                .Where(s => s.MID == mesQaId)
                .Select(s => new MES_SJ_SCAN_ITEM_CK
                {
                    SCAN_ITEM = s.SCAN_ITEM,
                    SN_NO = null,
                    MID = (long)mid,
                    CREATE_DATE = DateTime.Now
                })
                .ToList();
            foreach (var ck in scanItems)
            {
                ck.ID = (long)db.Ado.GetDecimal("SELECT SEQ_MES_SJ_SCAN_ITEM_CK.NEXTVAL FROM DUAL");
            }
            if (scanItems.Any())
            {
                db.Insertable(scanItems).ExecuteCommand();
            }
            // 4. ä¸€è‡´æ€§é¡¹ç›®åŒæ­¥é€»è¾‘(MES_IQC_CONSISTENCY_SJ_CK)
            // -------------------------------------------------------------
            // åˆ é™¤æ—§æ•°æ®
            db.Ado.ExecuteCommand(
                "DELETE FROM MES_IQC_CONSISTENCY_SJ_CK WHERE pid = :IMGID",
                new { IMGID = item.gid.ToString() });
            // æŸ¥è¯¢ä¸€è‡´æ€§é¡¹ç›®æºæ•°æ®
            var consistencyItems = db.SqlQueryable<MES_IQC_CONSISTENCY_SJ_CK>(@"
            SELECT
                a.ID AS PID,
                b.ItemName,
                b.ItemMode,
                b.SuppName,
                a.Item_No AS ImgID,
                0 AS IsChack,
                b.MULTI_SELECT
            FROM MES_QA a
            LEFT JOIN MES_IQC_CONSISTENCY_SJ_DT b ON a.ID = b.PID
            WHERE a.FSUBMIT = 1
              AND a.QS_TYPE = 1
              AND a.ITEM_NO = :ITEM_NO
              AND b.ItemName IS NOT NULL
        ").AddParameters(new { ITEM_NO = item.ItemNo }).ToList();
            foreach (var ci in consistencyItems)
            {
                db.Ado.ExecuteCommand(@"
                INSERT INTO MES_IQC_CONSISTENCY_SJ_CK
                    (ID, PID, ITEMNAME, ITEMMODE, SUPPNAME, IMGID, ISCHACK, MULTI_SELECT)
                VALUES (
                    F_GETSEQNEXTVALUE('MES_IQC_CONSISTENCY_SJ_CK'),
                    :PID,
                    :ITEMNAME,
                    :ITEMMODE,
                    :SUPPNAME,
                    :IMGID,
                    :ISCHACK,
                    :MULTI_SELECT
                )",
                    new
                    {
                        PID = item.gid,
                        ITEMNAME = ci.ItemName,
                        ITEMMODE = ci.ItemMode,
                        SUPPNAME = ci.SuppName,
                        IMGID = ci.ImgID,
                        ISCHACK = ci.ISCHACK,
                        MULTI_SELECT = ci.MULTI_SELECT
                    });
            }
            return 1;
        });
        // 5. é‡æ–°åŠ è½½æ£€éªŒé¡¹ç›®å¹¶å¤„ç†è‡ªåŠ¨åˆæ ¼é¡¹
        item.Items = getQSItems(item.gid, null);
        //没有上下限的检验项目自动盘点为合格
        item.Items.ForEach(s =>
        {
            if (s.MaxValue != null || s.StandardValue != null ||
                s.MinValue != null) return;
            var detail = new QsItemIpiItemDetail();
            detail.Pid = s.Id;
            detail.Gid = item.gid;
            detail.Fstand = "√";
            detail.FcheckResu = "1";
            detail.UpdateBy = item.StatusUser;
            detail.count = (int?)s.LevelNum;
            if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) return;
            var detail = new QsItemIpiItemDetail
            {
                Pid = s.Id,
                Gid = item.gid,
                Fstand = "√",
                FcheckResu = "1",
                UpdateBy = item.StatusUser,
                count = (int?)s.LevelNum
            };
            SetQSItemDetail(detail);
        });
@@ -467,6 +570,8 @@
    
    public bool SJQaSubmit(LLJDto rkjDto)
    {
        var useTransactionWithOracle =
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
@@ -480,4 +585,190 @@
        return useTransactionWithOracle > 0;
    }
    public List<Component> getYzxBDlist(string id)
    {
        OracleSQLHelper SQLHelper = new();
        //查元器件
        //var sql1 =
        //    string.Format(
        //        @"select ITEMNAME from MES_IQC_CONSISTENCY_ck where PID='" +
        //        id + "' group by ITEMNAME order by ITEMNAME");
        var sql1 =
            string.Format(
                @"select CASE WHEN max(MULTI_SELECT) is null THEN ''ELSE '【'||max(MULTI_SELECT)||'】' END  as A,ITEMNAME as ITEMNAME   from MES_IQC_CONSISTENCY_SJ_ck where PID='" + id + "' group by ITEMNAME order by ITEMNAME");
        //查明细
        var sql2 =
            string.Format(@"select * from MES_IQC_CONSISTENCY_SJ_ck where PID='" +
                          id + "' order by ITEMNAME,ITEMMODE,SUPPNAME");
        var dataTable1 = SQLHelper.ExecuteQuery(sql1);
        var dataTable2 = SQLHelper.ExecuteQuery(sql2);
        var Components = new List<Component>();
        for (var i = 0; i < dataTable1.Rows.Count; i++)
        {
            var component = new Component();
            component.Name = dataTable1.Rows[i]["A"].ToString() + dataTable1.Rows[i]["ITEMNAME"].ToString();
            component.Specs = new List<string>();
            component.Manufacturers = new List<string>();
            component.Id = new List<string>();
            component.SelectedSpec = -1;
            component.SelectedMfg = -1;
            var index = 0;
            for (var j = 0; j < dataTable2.Rows.Count; j++)
                if (dataTable2.Rows[j]["ITEMNAME"].ToString() ==
                    dataTable1.Rows[i]["ITEMNAME"].ToString())
                {
                    component.Specs.Add(dataTable2.Rows[j]["ITEMMODE"]
                        .ToString());
                    component.Manufacturers.Add(dataTable2.Rows[j]["SUPPNAME"]
                        .ToString());
                    component.Id.Add(dataTable2.Rows[j]["ID"].ToString());
                    if (dataTable2.Rows[j]["ISCHACK"].ToString() == "1")
                    {
                        component.SelectedSpec = index;
                        component.SelectedMfg = index;
                    }
                    index++;
                }
            Components.Add(component);
        }
        return Components;
    }
    public DataTable getAllInspectors()
    {
        OracleSQLHelper SQLHelper = new();
        var sql =
            @"select a.USER_NAME label,U.FCODE value from IQC_BEFORE_FROM_SJ a JOIN SYS_USER U ON U.FID=A.SID";
        return SQLHelper.ExecuteQuery(sql);
    }
    /// <summary>
    ///     ä¸€è‡´æ€§é¡¹ç›®
    /// </summary>
    public class Component
    {
        public string Name { get; set; }
        public List<string> Specs { get; set; }
        public List<string> Manufacturers { get; set; }
        public List<string> Id { get; set; }
        public int SelectedSpec { get; set; }
        public int SelectedMfg { get; set; }
    }
    public void saveYzxBDlist(string id, DataTable DB)
    {
        OracleSQLHelper SQLHelper = new();
        //先把结果清空
        var sql1 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=0 where PID='" +
                id + "' ");
        SQLHelper.ExecuteQuery(sql1);
        var rowId = "";
        for (var i = 0; i < DB.Rows.Count; i++)
            rowId += "'" + DB.Rows[i]["id"] + "',";
        rowId = rowId.Substring(0, rowId.Length - 1);
        //修改结果
        var sql2 =
            string.Format(
                @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=1 where PID='" +
                id + "'and id in(" + rowId + ") ");
        SQLHelper.ExecuteQuery(sql2);
    }
    public string[] YzxImgVerify(string id)
    {
        var msgStr = new string[2];
        OracleSQLHelper SQLHelper = new();
        //修改结果
        //var sql2 = string.Format(
        //    @"select A.ITEMNAME from ( select 888||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_CK where pid='" +
        //    id + "' group by  ITEMNAME) A " +
        //    "left join MES_QS_IMAGE b on a.id=b.fid where B.id is null order by ITEMNAME");
        var sql2 = string.Format(
         @"select A.ITEMNAME from ( select 999||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid='" + id.ToString() + "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where PID='" + id.ToString() + "'  and MULTI_SELECT is not null)" +
         "group by  ITEMNAME) A" +
         " left join MES_QS_IMAGE b on a.id=b.fid where B.id is null" +
         " union" +
         " select  '分组:' || MULTI_SELECT as ITEMNAME      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" + id.ToString() + "'        and MULTI_SELECT is not null and MULTI_SELECT not in(select  A.MULTI_SELECT as ITEMNAME from (select 999 || min(id) id, MULTI_SELECT      from MES_IQC_CONSISTENCY_SJ_CK      where pid = '" + id.ToString() + "'       and MULTI_SELECT is not null      group by MULTI_SELECT,ITEMNAME) A        left join MES_QS_IMAGE b on a.id = b.fid where B.id is not null)     group by MULTI_SELECT");
        var db = SQLHelper.ExecuteQuery(sql2);
        if (db.Rows.Count > 0)
        {
            msgStr[1] = "元器件:";
            for (var i = 0; i < db.Rows.Count; i++)
                msgStr[1] += db.Rows[i]["ITEMNAME"] + ",";
            msgStr[1] += "未完成图片上传,请上传!";
            msgStr[0] = "1";
        }
        else
        {
            msgStr[0] = "0";
            msgStr[1] = "ok";
        }
        return msgStr;
    }
    /// <summary>
    ///     ä¿å­˜æ–°æ£€éªŒå‘˜
    /// </summary>
    /// <param name="NewStaffUserID">新检验员ID</param>
    /// <param name="userID">修改人</param>
    /// <param name="releaseNo">检验单号</param>
    /// <returns></returns>
    public string[] SaveCheckBy(string NewStaffUserID, string userID,
        string releaseNo)
    {
        // å®šä¹‰è¾“出参数
        var outputResult = new SugarParameter("o_Result", null,
            System.Data.DbType.Int32, ParameterDirection.Output,
            4000);
        var outputMessage = new SugarParameter("o_Msg", null,
            System.Data.DbType.String,
            ParameterDirection.Output, 4000);
        // å®šä¹‰è¾“入参数
        var parameters = new List<SugarParameter>
        {
            new("P_FCHECK_BY", NewStaffUserID,
                System.Data.DbType.String, ParameterDirection.Input),
            new("p_Release_No", releaseNo,
                System.Data.DbType.String, ParameterDirection.Input),
            new("p_User", userID,
                System.Data.DbType.String, ParameterDirection.Input),
            outputResult,
            outputMessage
        };
        var db = SqlSugarHelper.GetInstance();
        // ä½¿ç”¨ SqlSugar æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹
        db.Ado.ExecuteCommand(
            "BEGIN Prc_Mes_Pqc_SJ_Update_CheckBy(:P_FCHECK_BY,:p_Release_No,:p_User, :o_Result, :o_Msg); END;",
            parameters.ToArray());
        // èŽ·å–è¾“å‡ºå‚æ•°çš„å€¼
        var resultValue = outputResult.Value?.ToString();
        var messageValue = outputMessage.Value?.ToString();
        var msg = new string[2];
        msg[0] = resultValue;
        msg[1] = messageValue;
        return msg;
    }
}
StandardPda/MESApplication/Controllers/QC/SJController.cs
@@ -1,10 +1,14 @@
using System.Dynamic;
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.service.QC;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
namespace MESApplication.Controllers.QC;
@@ -326,6 +330,35 @@
    {
        try
        {
            OracleSQLHelper SQLHelper = new();
            var sql1 =
                string.Format(
                    @"select SCAN_ITEM from ZMZ_TEST.MES_SJ_SCAN_ITEM_CK where mid='" + rkjDto.gid + "' and sn_no is null");
            var dataTable1 = SQLHelper.ExecuteQuery(sql1);
            string msg = "";
            for (var i = 0; i < dataTable1.Rows.Count; i++)
            {
                msg = msg + "【"+dataTable1.Rows[i]["SCAN_ITEM"].ToString()+"】";
            }
            if (msg != null && msg != "")
            {
                return new ResponseResult
                {
                    status = 1,
                    message = msg+"未进行SN扫码确认!",
                    data = ""
                };
            }
            var msg1 = new SJService().YzxImgVerify(rkjDto.gid.ToString());
            if (msg1[0]=="1")
            {
                return new ResponseResult
                {
                    status = int.Parse(msg1[0]),
                    message = msg1[1],
                    data = ""
                };
            }
            dynamic resultInfos = new ExpandoObject();
            var tbBillList =
                new SJService().SJQaSubmit(rkjDto);
@@ -342,4 +375,186 @@
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–ä¸€è‡´æ€§æ ¸å¯¹é¡¹ç›®
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    [HttpPost("getYzxItem")]
    public ResponseResult getYzxItem([FromBody] JObject data)
    {
        var id = data["id"]?.ToString();
        try
        {
            var tbBillList = new SJService().getYzxBDlist(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = tbBillList
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿å­˜ä¸€è‡´æ€§æ ¸å¯¹é¡¹ç›®
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    [HttpPost("saveYzxItem")]
    public ResponseResult saveYzxItem([FromBody] JObject data)
    {
        var id = data["id"]?.ToString();
        var dataDt = data["data"]?.ToString();
        var dt = JsonConvert.DeserializeObject<DataTable>(dataDt);
        try
        {
            if (!dt.Columns.Contains("id"))
            {
                return new ResponseResult
                {
                    status = 1,
                    message = "请先选择数据再保存!",
                    data = "请先选择数据再保存!"
                };
            }
            new SJService().saveYzxBDlist(id, dt);
            var msg = new SJService().YzxImgVerify(id);
            return new ResponseResult
            {
                status = int.Parse(msg[0]),
                message = msg[1],
                data = ""
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    /// æ‰«ç é¡¹ç›®èŽ·å–
    /// </summary>
    /// <param name="mid"></param>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList([FromBody] JObject data)
    {
        var mid = data["mid"];
        var db = SqlSugarHelper.GetInstance();
        var list = db.Queryable<MES_SJ_SCAN_ITEM_CK>()
            .Where(x => x.MID == (long)mid)
            .Select(x => new {
                id = x.ID,
                scanItem = x.SCAN_ITEM,
                snNo = x.SN_NO
            })
            .ToList();
        return new ResponseResult
        {
            status = int.Parse("0"),
            message = "0",
            data = list
        };
    }
    /// <summary>
    /// æ‰«ç é¡¹ç›®ä¿å­˜
    /// </summary>
    /// <param name="dto"></param>
    /// <returns></returns>
    [HttpPost("SaveSn")]
    public ResponseResult SaveSn([FromBody] ScanItemSaveDto dto)
    {
        var db = SqlSugarHelper.GetInstance();
        foreach (var item in dto.Items)
        {
            db.Updateable<MES_SJ_SCAN_ITEM_CK>()
                .SetColumns(x => x.SN_NO == item.SnNo)
                .Where(x => x.ID == item.Id)
                .ExecuteCommand();
        }
        return new ResponseResult
        {
            status = int.Parse("0"),
            message = "ok",
            data = ""
        };
    }
    public class ScanItemSaveDto
    {
        public decimal Mid { get; set; }
        public List<ScanItemDto> Items { get; set; }
    }
    public class ScanItemDto
    {
        public decimal Id { get; set; }
        public string SnNo { get; set; }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰æ£€éªŒå‘˜ä¿¡æ¯
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    [HttpPost("getAllInspectors")]
    public ResponseResult getAllInspectors([FromBody] JObject data)
    {
        try
        {
            var tbBillList = new SJService().getAllInspectors();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = tbBillList
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("SaveCheckBy")]
    public ResponseResult SaveCheckBy([FromBody] JObject data)
    {
        try
        {
            var NewStaffName = data["NewStaffName"].ToString();
            var userID = data["userID"].ToString();
            var releaseNo = data["releaseNo"].ToString();
            var NewStaffUserID = data["NewStaffUserID"].ToString();
            var msg =
                new SJService().SaveCheckBy(NewStaffUserID, userID, releaseNo);
            return new ResponseResult
            {
                status = int.Parse(msg[0]),
                message = msg[1],
                data = msg[1]
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}