fcx
12 小时以前 8827ee945f313bdafbe9fdab481c0a0660c551bd
1.巡检新增提交审核标识判断逻辑

2.新增是否必须上传图片逻辑以及不合格上传图片
已修改7个文件
432 ■■■■ 文件已修改
StandardPda/MES.Service/Modes/MesQualityStandard.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/QsQaItemXj.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/QsQaItemXj01.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/QC/SJService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/service/QC/XJService.cs 305 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/QC/SJController.cs 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MESApplication/Controllers/QC/XJController.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardPda/MES.Service/Modes/MesQualityStandard.cs
@@ -20,6 +20,18 @@
    public decimal Id { get; set; }
    /// <summary>
    ///     工序
    /// </summary>
    [SugarColumn(ColumnName = "PROCESS")]
    public string? PROCESS { get; set; }
    /// <summary>
    ///     创建人
    /// </summary>
    [Column("CREATE_BY")]
StandardPda/MES.Service/Modes/QsQaItemXj.cs
@@ -108,9 +108,15 @@
    public DateTime? FsubmitDate { get; set; }
    /// <summary>
    /// 提交标识
    /// </summary>
    [SugarColumn(ColumnName = "FSUBMIT")]
    public decimal? Fsubmit { get; set; }
    /// <summary>
    /// 审核标识
    /// </summary>
    [SugarColumn(ColumnName = "FSUBMIT1")]
    public decimal? Fsubmit1 { get; set; }
    /// <summary>
    ///     备注
@@ -124,6 +130,14 @@
    [SugarColumn(ColumnName = "ITEM_ID")]
    public decimal? ItemId { get; set; }
    /// <summary>
    ///     物料工序
    /// </summary>
    [SugarColumn(ColumnName = "PROCESS_LIST")]
    public string? PROCESS_LIST { get; set; }
    [SugarColumn(IsIgnore = true)] public string? Daa020 { get; set; }
    [SugarColumn(IsIgnore = true)] public decimal? PlanQty { get; set; }
StandardPda/MES.Service/Modes/QsQaItemXj01.cs
@@ -139,6 +139,13 @@
    [SugarColumn(IsIgnore = true)]
    public int? isCheck { get; set; }
    ///<summary>
    ///  新增是否必须上传图片
    ///</summary>
    [SugarColumn(ColumnName = "UP_FILE")]
   public decimal? UP_FILE { get; set; }
    /// <summary>
    ///     图片地址
    /// </summary>
StandardPda/MES.Service/service/QC/SJService.cs
@@ -4,6 +4,7 @@
using MES.Service.util;
using SqlSugar;
using System.Data;
using System.Runtime.InteropServices.JavaScript;
namespace MES.Service.service.QC;
@@ -292,7 +293,8 @@
                    Picture = b.Picture,
                    Picturename = b.Picturename,
                    result = "未检测",
                    isCheck = 0,UP_FILE=b.UP_FILE
                    isCheck = 0,
                    UP_FILE=b.UP_FILE
                }).ToList();
    }
@@ -412,7 +414,7 @@
            // 2. 查找 MesQa 对应主表ID(通过 item.ItemNo)
            var mesQa = db.Queryable<MesQa>()
                .Where(q => q.ItemNo == item.ItemNo)
                .Where(q => q.ItemNo == item.ItemNo && q.QsType== "1")
                .Select(q => new { q.Id })
                .First();
StandardPda/MES.Service/service/QC/XJService.cs
@@ -251,7 +251,7 @@
            var sql = string.Format(
                @"UPDATE QS_QA_ITEM_XJ
              SET FSUBMIT = 1,
              SET FSUBMIT = 1,FSUBMIT1 = 1,
                  FCHECK_RESU = '手动关闭'
              WHERE ID = '{0}'",
                dto.id);
@@ -284,57 +284,266 @@
    public bool XJQaSubmit(LLJDto rkjDto)
    {
        var useTransactionWithOracle =
            SqlSugarHelper.UseTransactionWithOracle(db =>
            {
                return db.Updateable<QsQaItemXj>()
                    .SetColumns(s => s.Fsubmit == 1)
                    .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
                    .SetColumns(s => s.FsubmitDate == DateTime.Now)
                    .Where(s => s.Id == rkjDto.gid)
                    .ExecuteCommand();
            });
    //public bool XJQaSubmit(LLJDto rkjDto)
    //{
    //    var useTransactionWithOracle =
    //        SqlSugarHelper.UseTransactionWithOracle(db =>
    //        {
    //            return db.Updateable<QsQaItemXj>()
    //                .SetColumns(s => s.Fsubmit == 1)
    //                .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
    //                .SetColumns(s => s.FsubmitDate == DateTime.Now)
    //                .Where(s => s.Id == rkjDto.gid)
    //                .ExecuteCommand();
    //        });
        return useTransactionWithOracle > 0;
    //    return useTransactionWithOracle > 0;
    //}
    public ResponseResult XJQaSubmit(LLJDto rkjDto)
    {
        try
        {
            //------------------ 不合格图片是否上传校验 ------------------
            var sql2 =
                @"select A.id, A.PROJ_NAME, B.id as id2
                  from QS_QA_ITEM_XJ01 A
                  left join MES_QS_IMAGE B on 666 || A.ID = B.FID
                  where A.PID = '" + rkjDto.gid + @"'
                    and B.id is null
                    and IS_PASS = 0";
            var dt2 = SQLHelper.ExecuteQuery(sql2);
            if (dt2.Rows.Count > 0)
            {
                string err = "";
                for (int i = 0; i < dt2.Rows.Count; i++)
                {
                    err += "【" + dt2.Rows[i]["PROJ_NAME"].ToString() + "】";
                }
                return new ResponseResult
                {
                    status = 1,
                    message = err + "不合格图片未上传!",
                    data = ""
                };
            }
            //------------------ 必填项图片是否上传校验 ------------------
            var sql3 =
                @"select A.id, A.PROJ_NAME, B.id as id2
                  from QS_QA_ITEM_XJ01 A
                  left join MES_QS_IMAGE B on 666 || A.ID = B.FID
                  where A.PID = '" + rkjDto.gid + @"'
                    and B.id is null
                    and UP_FILE = 1";
            var dt3 = SQLHelper.ExecuteQuery(sql3);
            if (dt3.Rows.Count > 0)
            {
                string err = "";
                for (int i = 0; i < dt3.Rows.Count; i++)
                {
                    err += "【" + dt3.Rows[i]["PROJ_NAME"].ToString() + "】";
                }
                return new ResponseResult
                {
                    status = 1,
                    message = err + "必填项图片未上传!",
                    data = ""
                };
            }
            //------------------ 新增校验:检查是否存在未完成(IS_PASS is null) ------------------
            var sqlPass =
                @"select ID, PROJ_NAME
                  from QS_QA_ITEM_XJ01
                  where PID = '" + rkjDto.gid + @"'
                    and IS_PASS is null";
            var dtPass = SQLHelper.ExecuteQuery(sqlPass);
            if (dtPass.Rows.Count > 0)
            {
                string err = "";
                for (int i = 0; i < dtPass.Rows.Count; i++)
                {
                    err += "【" + dtPass.Rows[i]["PROJ_NAME"].ToString() + "】";
                }
                return new ResponseResult
                {
                    status = 1,
                    message = "",
                    data = err + "项目未完成,不允许提交检验!"
                };
            }
            var sqlPass1 =
     @"select FCHECK_RESU
      from QS_QA_ITEM_XJ
      where ID = '" + rkjDto.gid + "'";
            var dt = SQLHelper.ExecuteQuery(sqlPass1);
            if (dt.Rows.Count > 0)
            {
                var resu = dt.Rows[0]["FCHECK_RESU"]?.ToString();
                var fsubmit1 = resu == "合格" ? 1 : 0;
                var sqlUpdate =
                    @"update QS_QA_ITEM_XJ
          set FSUBMIT1 = " + fsubmit1 + @"
          where ID = '" + rkjDto.gid + "'";
                SQLHelper.ExecuteNonQuery(sqlUpdate);
            }
            var useTransactionWithOracle =
                SqlSugarHelper.UseTransactionWithOracle(db =>
                {
                    return db.Updateable<QsQaItemXj>()
                        .SetColumns(s => s.Fsubmit == 1)
                        .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
                        .SetColumns(s => s.FsubmitDate == DateTime.Now)
                        .Where(s => s.Id == rkjDto.gid)
                        .ExecuteCommand();
                });
            return new ResponseResult
            {
                status = 0,
                message = "提交成功",
                data = useTransactionWithOracle
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    public List<QsQaItemXj01> setJYItem(string itemNo)
    //public List<QsQaItemXj01> setJYItem(string itemNo,string releaseNo)
    //{
    //    var db = SqlSugarHelper.GetInstance();
    //    var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
    //        && s.ItemNo == itemNo && s.Fsubmit == 1).Count();
    //    if (count <= 0) return new List<QsQaItemXj01>();
    //    return db
    //        .Queryable<MesQualityStandard>()
    //        .Where(b => b.QsType == "2"
    //                    && b.ItemNo == itemNo).Select(b => new QsQaItemXj01
    //        {
    //            ProjName = b.ProjName,
    //            ItemMod = b.ItemMod,
    //            InspectionMethod = b.InspectionMethod,
    //            UsingInstruments = b.UsingInstruments,
    //            LevelNum = SqlFunc.IsNull(
    //                SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
    //                b.InspectionLevel),
    //            MaxValue = b.MaxValue,
    //            StandardValue = b.StandardValue,
    //            MinValue = b.MinValue,
    //            Notes = b.Notes,
    //            FcheckLevel = b.FcheckLevel,
    //            FacLevel = b.FacLevel,
    //            QsCode = b.QsCode,
    //            QsName = b.QsName,
    //            result = "未检测",
    //            isCheck = 0,
    //            Picture = b.Picture,
    //            Picturename = b.Picturename
    //        }).ToList();
    //}
    public List<QsQaItemXj01> setJYItem(string itemNo, string releaseNo)
{
    var db = SqlSugarHelper.GetInstance();
    var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
        && s.ItemNo == itemNo && s.Fsubmit == 1).Count();
    if (count <= 0) return new List<QsQaItemXj01>();
    // 根据巡检单号和物料编码获取PROCESS_LIST
    var processListQuery = db.Queryable<QsQaItemXj>()
        .Where(xj => xj.ReleaseNo == releaseNo && xj.ItemNo == itemNo)
        .Select(xj => xj.PROCESS_LIST)
        .ToList();
    // 如果没有找到对应的PROCESS_LIST,返回空列表
    if (processListQuery == null || processListQuery.Count == 0)
    {
        var db = SqlSugarHelper.GetInstance();
        var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
            && s.ItemNo == itemNo && s.Fsubmit == 1).Count();
        if (count <= 0) return new List<QsQaItemXj01>();
        return db
            .Queryable<MesQualityStandard>()
            .Where(b => b.QsType == "2"
                        && b.ItemNo == itemNo).Select(b => new QsQaItemXj01
            {
                ProjName = b.ProjName,
                ItemMod = b.ItemMod,
                InspectionMethod = b.InspectionMethod,
                UsingInstruments = b.UsingInstruments,
                LevelNum = SqlFunc.IsNull(
                    SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
                    b.InspectionLevel),
                MaxValue = b.MaxValue,
                StandardValue = b.StandardValue,
                MinValue = b.MinValue,
                Notes = b.Notes,
                FcheckLevel = b.FcheckLevel,
                FacLevel = b.FacLevel,
                QsCode = b.QsCode,
                QsName = b.QsName,
                result = "未检测",
                isCheck = 0,
                Picture = b.Picture,
                Picturename = b.Picturename
            }).ToList();
        return new List<QsQaItemXj01>();
    }
    return db
        .Queryable<MesQualityStandard>()
        .Where(b => b.QsType == "2"
                    && b.ItemNo == itemNo
                    && processListQuery.Contains(b.PROCESS))  // 过滤条件
        .Select(b => new QsQaItemXj01
        {
            ProjName = b.ProjName,
            ItemMod = b.ItemMod,
            InspectionMethod = b.InspectionMethod,
            UsingInstruments = b.UsingInstruments,
            LevelNum = SqlFunc.IsNull(
                SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
                b.InspectionLevel),
            MaxValue = b.MaxValue,
            StandardValue = b.StandardValue,
            MinValue = b.MinValue,
            Notes = b.Notes,
            FcheckLevel = b.FcheckLevel,
            FacLevel = b.FacLevel,
            QsCode = b.QsCode,
            QsName = b.QsName,
            result = "未检测",
            isCheck = 0,
            UP_FILE = b.UP_FILE
        }).ToList();
}
    public List<QsQaItemXj01> getJYItem(decimal? pid, decimal? id)
    {
@@ -466,7 +675,7 @@
        var items = xjDto.items;
        var userNo = xjDto.userNo;
        // ✅ 使用 lambda 返回插入条数,保证 Func<SqlSugarClient, int> 每条路径都有返回值
        int insertCount = SqlSugarHelper.UseTransactionWithOracle(db =>
        {
            // 1️⃣ 检查表里是否存在相同 gid 的数据
StandardPda/MESApplication/Controllers/QC/SJController.cs
@@ -338,8 +338,8 @@
            //------------------ SN扫码校验 ------------------
            var sql1 =
                @"select SCAN_ITEM 
              from ZMZ_TEST.MES_SJ_SCAN_ITEM_CK
              where mid='" + rkjDto.gid + "' and sn_no is null";
                  from ZMZ_TEST.MES_SJ_SCAN_ITEM_CK
                  where mid='" + rkjDto.gid + "' and sn_no is null";
            var dataTable1 = SQLHelper.ExecuteQuery(sql1);
            string msg = "";
@@ -373,11 +373,11 @@
            //------------------ 不合格图片是否上传校验 ------------------
            var sql2 =
                @"select A.id, A.PROJ_NAME, B.id as id2
              from QS_ITEM_IPI_ITEM A
              left join MES_QS_IMAGE B on 777 || A.ID = B.FID
              where A.PID = '" + rkjDto.gid + @"'
                and B.id is null
                and IS_PASS = 0";
                  from QS_ITEM_IPI_ITEM A
                  left join MES_QS_IMAGE B on 777 || A.ID = B.FID
                  where A.PID = '" + rkjDto.gid + @"'
                    and B.id is null
                    and IS_PASS = 0";
            var dt2 = SQLHelper.ExecuteQuery(sql2);
            if (dt2.Rows.Count > 0)
@@ -399,11 +399,11 @@
            //------------------ 必填项图片是否上传校验 ------------------
            var sql3 =
                @"select A.id, A.PROJ_NAME, B.id as id2
              from QS_ITEM_IPI_ITEM A
              left join MES_QS_IMAGE B on 777 || A.ID = B.FID
              where A.PID = '" + rkjDto.gid + @"'
                and B.id is null
                and UP_FILE = 1";
                  from QS_ITEM_IPI_ITEM A
                  left join MES_QS_IMAGE B on 777 || A.ID = B.FID
                  where A.PID = '" + rkjDto.gid + @"'
                    and B.id is null
                    and UP_FILE = 1";
            var dt3 = SQLHelper.ExecuteQuery(sql3);
            if (dt3.Rows.Count > 0)
@@ -425,9 +425,9 @@
            //------------------ 新增校验:检查是否存在未完成(IS_PASS is null) ------------------
            var sqlPass =
                @"select ID, PROJ_NAME 
              from QS_ITEM_IPI_ITEM
              where PID = '" + rkjDto.gid + @"'
                and IS_PASS is null";
                  from QS_ITEM_IPI_ITEM
                  where PID = '" + rkjDto.gid + @"'
                    and IS_PASS is null";
            var dtPass = SQLHelper.ExecuteQuery(sqlPass);
            if (dtPass.Rows.Count > 0)
@@ -451,38 +451,29 @@
            var tbBillList = new SJService().SJQaSubmit(rkjDto);
            resultInfos.tbBillList = tbBillList;
            //=================  判断检验合格生成巡检单 =========
            var sqlpass6 = $@"update QS_ITEM_IPI_REQ set FSUBMIT1 = 1 where ID = '{rkjDto.gid}' ";
            var sqlpass6 = $@"update QS_ITEM_IPI_REQ set FSUBMIT = 1 where ID = '{rkjDto.gid}' ";
            var dtPass7 = SQLHelper.ExecuteQuery(sqlpass6);
            var sqlPass1 = $@"
    SELECT
        IS_PASS
    FROM QS_ITEM_IPI_REQ
    WHERE  ID = '{rkjDto.gid}'
     ";
        SELECT
            IS_PASS
        FROM QS_ITEM_IPI_REQ
        WHERE  ID = '{rkjDto.gid}'
         ";
            var dtPass1 = SQLHelper.ExecuteQuery(sqlPass1);
            var sqlPass3 = $@"select C.ID from QS_ITEM_IPI_REQ A
LEFT JOIN  V_MES_SJ B on b.BILL_NO = A.BILL_NO
LEFT JOIN WOMDAA C on C.DAA001 = B.DAA001
WHERE A.ID = '{rkjDto.gid}'
";
    LEFT JOIN  V_MES_SJ B on b.BILL_NO = A.BILL_NO
    LEFT JOIN WOMDAA C on C.DAA001 = B.DAA001
    WHERE A.ID = '{rkjDto.gid}'
    ";
            var dtPass3 = SQLHelper.ExecuteQuery(sqlPass3);
            var value4 = dtPass3.Rows[0][0];
            int sqlPass2 = Convert.ToInt32(value4);
            bool isPass = false;
            if (dtPass1 != null && dtPass1.Rows.Count > 0)
@@ -492,13 +483,15 @@
                // 判断为合格(IS_PASS = 1)
                if (value == "1")
                {
                    var sqlpass4 = $@"update QS_ITEM_IPI_REQ set FSUBMIT1 = 1 where ID = '{rkjDto.gid}' ";
                    var dtPass5 = SQLHelper.ExecuteQuery(sqlpass4);
                    isPass = true;
                }
                else
                {
                    var sqlpass4 = $@"update QS_ITEM_IPI_REQ set FSUBMIT = 0 where ID = '{rkjDto.gid}' ";
                    var sqlpass4 = $@"update QS_ITEM_IPI_REQ set FSUBMIT1 = 0 where ID = '{rkjDto.gid}' ";
                    var dtPass5 = SQLHelper.ExecuteQuery(sqlpass4);
                }
@@ -518,16 +511,15 @@
                // ===== 输入参数 =====
                var parameters = new List<SugarParameter>
    {
        new SugarParameter("P_ID", sqlPass2, DbType.Int64, ParameterDirection.Input),
        new SugarParameter("P_USER", rkjDto.userNo, DbType.String, ParameterDirection.Input),
        new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
        {
            new SugarParameter("P_ID", sqlPass2, DbType.Int64, ParameterDirection.Input),
            new SugarParameter("P_USER", rkjDto.userNo, DbType.String, ParameterDirection.Input),
            new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
        // 输出参数必须带上
        outFlag,
        outText
    };
            // 输出参数必须带上
            outFlag,
            outText
        };
                // ===== 执行存储过程 =====
                db.Ado.ExecuteCommand(
                    "BEGIN PRC_XJ_GENERATE(:P_ID, :P_USER, :P_ISH, :P_FLAG, :P_TEXT); END;",
@@ -558,7 +550,8 @@
StandardPda/MESApplication/Controllers/QC/XJController.cs
@@ -188,11 +188,12 @@
    public ResponseResult setJYItem([FromBody] JObject data)
    {
        var itemNo = data["itemNo"].ToString();
        var releaseNo = data["releaseNo"].ToString();
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var tbBillList =
                new XJService().setJYItem(itemNo);
                new XJService().setJYItem(itemNo, releaseNo);
            resultInfos.tbBillList = tbBillList;
            return new ResponseResult
            {