From a619299816f2f632c7c6ba3a1bb869e2c212797d Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期五, 19 十二月 2025 14:12:33 +0800
Subject: [PATCH] 对添加巡检单物料编码进行去重
---
StandardPda/MES.Service/service/QC/XJService.cs | 1090 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,090 insertions(+), 0 deletions(-)
diff --git a/StandardPda/MES.Service/service/QC/XJService.cs b/StandardPda/MES.Service/service/QC/XJService.cs
new file mode 100644
index 0000000..09fa801
--- /dev/null
+++ b/StandardPda/MES.Service/service/QC/XJService.cs
@@ -0,0 +1,1090 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+using System.Data;
+using System.Dynamic;
+using DbType = System.Data.DbType;
+
+namespace MES.Service.service.QC;
+
+public class XJService
+{
+ private static readonly OracleSQLHelper SQLHelper = new();
+
+ private readonly BaseService _baseService = new();
+
+
+ private readonly string[] statusArray = ["宸插紑宸�", "寰呭紑宸�"];
+
+ //鐢熸垚鏈�鏂扮殑妫�楠屽崟鍙�
+ public string getMaxReleaseNo()
+ {
+ var sql =
+ string.Format(
+ "select max(RELEASE_NO) from QS_QA_ITEM_XJ where RELEASE_NO like 'XJN%' and to_char(CREATE_DATE,'yyyy-mm-dd') = '{0}'",
+ DateTime.Now.ToString("yyyy-MM-dd"));
+
+ var executeScalar = SQLHelper.ExecuteScalar(sql);
+ var date = DateTime.Now.ToString("yyMMdd");
+ var number = "0001";
+ var olReleaseNo = executeScalar.ToString();
+ //鍒ゆ柇浠婂ぉ鏄惁鐢熸垚浜嗗贰妫�鍗�
+ if (string.IsNullOrEmpty(olReleaseNo)) return "XJN" + date + number;
+ //鎴彇鍚庡洓浣嶇殑娴佹按鍙风疮鍔�
+ var substring = Convert.ToInt32(olReleaseNo.Substring(10));
+ substring += 1;
+ number = substring.ToString("D4");
+
+ //濡傛灉涓虹┖鐩存帴杩斿洖0001
+ return "XJN" + date + number;
+ }
+
+ public List<Womdaa> getItem(string daa001)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ //in鐨勫啓娉� https://www.donet5.com/Home/Doc?typeId=1187
+
+ return db.Queryable<Womdaa>()
+ .Where(a =>
+ a.Daa001 == daa001 &&
+ statusArray.Contains(a.Daa018))
+ .ToList();
+ }
+
+ public List<MesLine> getLineAll()
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ return db.Queryable<Womdaa, MesLine>((a, b) =>
+ new JoinQueryInfos(JoinType.Left, a.Daa015 == b.LineNo))
+ .Where((a, b) => b.LineName != null &&
+ statusArray.Contains(a.Daa018))
+ .GroupBy((a, b) => new
+ {
+ b.LineNo,
+ b.LineName
+ })
+ .Select((a, b) => new MesLine
+ {
+ LineNo = b.LineNo,
+ LineName = b.LineName
+ }).OrderBy("b.LINE_NO").ToList();
+ }
+
+ public List<Womdaa> getDaa001(string daa020, string item)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Queryable<Womdaa, MesItems>((a, b) =>
+ new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
+ .Where((a, b) =>
+ a.Daa015 == daa020 &&
+ b.ItemNo == item &&
+ statusArray.Contains(a.Daa018))
+ .Select<Womdaa>(a => new Womdaa
+ {
+ Id = a.Id,
+ Daa001 = a.Daa001,
+ Daa003 = a.Daa003,
+ Daa008 = a.Daa008
+ }).Distinct().ToList();
+ }
+
+ public List<MesItems> getBoardItem(string lineNo)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Queryable<Womdaa, MesItems>((a, b) =>
+ new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
+ .Where((a, b) => statusArray.Contains(a.Daa018) &&
+ a.Daa015 == lineNo)
+ .OrderBy((a, b) => b.ItemName)
+ .Select<MesItems>((a, b) =>
+ new MesItems
+ {
+ Id = b.Id,
+ ItemNo = b.ItemNo,
+ ItemName = b.ItemName,
+ ItemModel = b.ItemModel
+ }).Distinct().ToList();
+ }
+
+ //public (List<QsQaItemXj> item, int TotalCount) getPage(XJPageResult queryObj)
+ //{
+ // var db = SqlSugarHelper.GetInstance();
+
+ // var id = Convert.ToDecimal(queryObj.id);
+
+ // var totalCount = 0;
+
+ // string[]? lineNo = null;
+
+ // // if (StringUtil.IsNotNullOrEmpty(queryObj.createUser))
+ // // lineNo = _baseService.getUserLineNo(queryObj.createUser);
+
+ // var pageList = db
+ // .Queryable<QsQaItemXj, Womdaa,
+ // MesItems>((s, a, b) =>
+ // new JoinQueryInfos(
+ // JoinType.Inner, s.BillNo == a.Daa001,
+ // JoinType.Left, s.ItemId == b.Id
+ // )
+ // )
+
+ // .WhereIF(
+ // StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ // "鏈畬鎴�".Equals(queryObj.result),
+ // (s, a, b) => s.Fsubmit == null || s.Fsubmit == 0)
+ // // .WhereIF(
+ // // StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ // // !"鏈畬鎴�".Equals(queryObj.result),
+ // // (s, a, b) => s.FcheckResu != null)
+ // .WhereIF(
+ // StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ // !"鏈畬鎴�".Equals(queryObj.result),
+ // (s, a, b) => s.Fsubmit == 1)
+ // .WhereIF(id > 0, (s, a, b) => s.Id == id)
+ // .Select((s, a, b) => new QsQaItemXj
+ // {
+ // Id = s.Id,
+ // PlanQty = a.Daa008,
+ // CreateBy = s.CreateBy,
+ // CreateDate = s.CreateDate,
+ // ReleaseNo = s.ReleaseNo,
+ // ItemNo = s.ItemNo,
+ // BillNo = s.BillNo,
+ // ItemName = b.ItemName,
+ // ItemModel = b.ItemModel,
+ // FcheckBy = s.FcheckBy,
+ // FcheckResu = s.FcheckResu,
+ // Remarks = s.Remarks,
+ // Fsubmit = s.Fsubmit,
+ // FcheckDate = s.FcheckDate,
+ // FsubmitBy = s.FsubmitBy
+ // }).OrderBy(s => s.CreateDate, OrderByType.Desc)
+ // .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+ // return (pageList, totalCount);
+ //}
+
+ public (List<QsQaItemXj> item, int TotalCount) getPage(XJPageResult queryObj)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ var id = Convert.ToDecimal(queryObj.id);
+ var totalCount = 0;
+
+ var pageList = db
+ .Queryable<QsQaItemXj, Womdaa, MesItems>((s, a, b) =>
+ new JoinQueryInfos(
+ JoinType.Inner, s.BillNo == a.Daa001,
+ JoinType.Left, s.ItemId == b.Id
+ )
+ )
+
+ // 猸� 妯$硦鎼滅储锛圔illNo 鎴� ItemNo 鏂板
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.SearchValue),
+ (s, a, b) =>
+ s.BillNo.Contains(queryObj.SearchValue) ||
+ s.ItemNo.Contains(queryObj.SearchValue)
+ )
+
+ // 猸� 鐘舵�佺瓫閫夛細鏈畬鎴�
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ "鏈畬鎴�".Equals(queryObj.result),
+ (s, a, b) => s.Fsubmit == null || s.Fsubmit == 0
+ )
+
+ // 猸� 鐘舵�佺瓫閫夛細宸插畬鎴�
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ !"鏈畬鎴�".Equals(queryObj.result),
+ (s, a, b) => s.Fsubmit == 1
+ )
+
+ // 猸� ID 鏌ヨ锛堝崟鏉★級
+ .WhereIF(id > 0, (s, a, b) => s.Id == id)
+
+ // 猸� select 瀹炰綋杩斿洖
+ .Select((s, a, b) => new QsQaItemXj
+ {
+ Id = s.Id,
+ ReleaseNo = s.ReleaseNo,
+ FcheckDate = s.FcheckDate,
+ FcheckBy = s.FcheckBy,
+ ItemNo = s.ItemNo,
+ FcheckResu = s.FcheckResu,
+ CreateBy = s.CreateBy,
+ CreateDate = s.CreateDate,
+ LastupdateBy = s.LastupdateBy,
+ LastupdateDate = s.LastupdateDate,
+ Modify1By = s.Modify1By,
+ ItemUnit = s.ItemUnit,
+ BillNo = s.BillNo,
+ MoidNum = s.MoidNum,
+ FsubmitBy = s.FsubmitBy,
+ FsubmitDate = s.FsubmitDate,
+ Fsubmit = s.Fsubmit,
+ Remarks = s.Remarks,
+ ItemId = s.ItemId,
+
+ // 猸� 棰濆瀛楁锛堟潵鑷繛琛級
+ PlanQty = a.Daa008,
+ ItemName = b.ItemName,
+ ItemModel = b.ItemModel
+ })
+
+ .OrderBy(s => s.CreateDate, OrderByType.Desc)
+
+ .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+ return (pageList, totalCount);
+ }
+
+
+ public object CloseInspection(XJCloseInspectionDto dto)
+ {
+ try
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ var sql = string.Format(
+ @"UPDATE QS_QA_ITEM_XJ
+ SET FSUBMIT = 1,FSUBMIT1 = 1,
+ FCHECK_RESU = '鎵嬪姩鍏抽棴'
+ WHERE ID = '{0}'",
+ dto.id);
+
+ db.Ado.ExecuteCommand(sql);
+
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = "鍏抽棴鎴愬姛"
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //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;
+ //}
+
+
+ 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 = ""
+ };
+ }
+
+ //------------------ 鏂板鏍¢獙锛氭鏌ユ槸鍚﹀瓨鍦ㄦ湭瀹屾垚锛圛S_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);
+
+
+
+
+ var sqlPass3 = $@"select ID from QS_QA_ITEM_XJ
+ WHERE ID = '{rkjDto.gid}'
+ ";
+ var dtPass3 = SQLHelper.ExecuteQuery(sqlPass3);
+
+ var value4 = dtPass3.Rows[0][0];
+ int sqlPass2 = Convert.ToInt32(value4);
+
+
+ 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 resu1 = dt.Rows[0]["FCHECK_RESU"]?.ToString();
+
+ var fsubmit2 = resu1 == "鍚堟牸" ? 1 : 0;
+
+
+ if (fsubmit2 == 0)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // ===== 杈撳嚭鍙傛暟 =====
+ var outFlag = new SugarParameter("P_FLAG", null,
+ DbType.Int32, ParameterDirection.Output, 10);
+
+ var outText = new SugarParameter("P_TEXT", null,
+ DbType.String, ParameterDirection.Output, 4000);
+
+ // ===== 杈撳叆鍙傛暟 =====
+ 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_RELEASE_NO",rkjDto.releaseNo,DbType.String,ParameterDirection.Input),
+
+ // 杈撳嚭鍙傛暟蹇呴』甯︿笂
+ outFlag,
+ outText
+ };
+ // ===== 鎵ц瀛樺偍杩囩▼ =====
+ db.Ado.ExecuteCommand(
+ "BEGIN PRC_XJ_GENERATE_two(:P_ID, :P_USER, :P_ISH,:P_RELEASE_NO, :P_FLAG, :P_TEXT); END;",
+ parameters);
+
+ // ===== 璇诲彇杈撳嚭鍙傛暟骞惰浆鎹㈡垚 ResponseResult =====
+ var result = new ResponseResult
+ {
+ status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 琛ㄧず鎴愬姛锛�1 琛ㄧず澶辫触
+ message = outText.Value?.ToString()
+ };
+
+ var useTransactionWithOracle1 =
+ 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 = useTransactionWithOracle1
+ };
+ }
+
+
+ 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,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>();
+
+ // 鏍规嵁宸℃鍗曞彿鍜岀墿鏂欑紪鐮佽幏鍙朠ROCESS_LIST
+ var processListQuery = db.Queryable<QsQaItemXj>()
+ .Where(xj => xj.ReleaseNo == releaseNo && xj.ItemNo == itemNo)
+ .Select(xj => xj.PROCESS_LIST)
+ .ToList();
+
+ // 濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨凱ROCESS_LIST,杩斿洖绌哄垪琛�
+ if (processListQuery == null || processListQuery.Count == 0)
+ {
+ 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)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ var qsQaItemXj01s = db.Queryable<QsQaItemXj01>()
+ .WhereIF(pid > 0, a => a.Pid == pid)
+ .WhereIF(id > 0, a => a.Id == id)
+ .ToList();
+
+ var array = qsQaItemXj01s.Select(s => s.Id).ToArray();
+ var qsQaItemDetails = db.Queryable<QsQaItemXj02>()
+ .Where(s => array.Contains(s.Pid))
+ .GroupBy(s => s.Pid)
+ .Select(s => new
+ {
+ s.Pid,
+ count = SqlFunc.AggregateCount(s.Id)
+ }).ToList();
+
+ qsQaItemXj01s.ForEach(s =>
+ {
+ var find = qsQaItemDetails.Find(a => s.Id == a.Pid);
+ if (find == null)
+ {
+ s.isCheck = 0;
+ s.result = "鏈畬鎴�";
+ }
+ else
+ {
+ s.isCheck = find.count;
+ if (find.count == s.LevelNum && s.IsPass == 1)
+ s.result = "鍚堟牸";
+ else if (find.count == s.LevelNum && s.IsPass == 0)
+ s.result = "涓嶅悎鏍�";
+ else
+ s.result = "鏈畬鎴�";
+ }
+
+ //杩囨护鍑哄浘鐗噄d涓嶄负绌虹殑鏁版嵁杞负base64
+ if (s.Picture is { Length: > 0 })
+ s.imageData = Convert.ToBase64String(s.Picture);
+ });
+
+ //鎺掑簭锛屾湭瀹屾垚鐨勬帓鍦ㄥ墠闈�
+ qsQaItemXj01s = qsQaItemXj01s.OrderBy(s => s.isCheck).ToList();
+
+ return qsQaItemXj01s;
+ }
+
+
+ public int save(XJDto xjDto)
+ {
+ var xj = xjDto.from;
+ var items = xjDto.items;
+ var userNo = xjDto.userNo;
+
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+
+ xj.CreateBy = userNo;
+ xj.CreateDate = DateTime.Now;
+
+ var pid = db.Insertable(xj).ExecuteReturnIdentity();
+
+ xj.Id = pid;
+
+ xjDto.gid = pid;
+
+ foreach (var item in items) item.Pid = pid;
+
+ commit += db.Insertable(items).ExecuteCommand();
+
+ return commit;
+ });
+
+ xjDto.items = getJYItem(xj.Id, null);
+
+ xjDto.items.ForEach(s =>
+ {
+ if (s.MaxValue != null || s.StandardValue != null ||
+ s.MinValue != null) return;
+ var detail = new QsQaItemXj02();
+ detail.Pid = s.Id;
+ detail.Gid = xjDto.gid;
+ detail.Fstand = "鈭�";
+ detail.FcheckResu = "1";
+ detail.UpdateBy = xjDto.userNo;
+ detail.count = (int?)s.LevelNum;
+ SetQSItemDetail(detail);
+ });
+
+ return Convert.ToInt32(xj.Id);
+ }
+
+ //public int saveItem(XJDto xjDto)
+ //{
+ // var items = xjDto.items;
+ // var userNo = xjDto.userNo;
+
+ // SqlSugarHelper.UseTransactionWithOracle(db =>
+ // {
+ // foreach (var item in items) item.Pid = xjDto.gid;
+
+ // return db.Insertable(items).ExecuteCommand();
+ // });
+
+ // xjDto.items = getJYItem(xjDto.gid, null);
+
+ // xjDto.items.ForEach(s =>
+ // {
+ // if (s.MaxValue != null || s.StandardValue != null ||
+ // s.MinValue != null) return;
+ // var detail = new QsQaItemXj02();
+ // detail.Pid = s.Id;
+ // detail.Gid = xjDto.gid;
+ // detail.Fstand = "鈭�";
+ // detail.FcheckResu = "1";
+ // detail.UpdateBy = xjDto.userNo;
+ // detail.count = (int?)s.LevelNum;
+ // SetQSItemDetail(detail);
+ // });
+
+ // return Convert.ToInt32(xjDto.gid);
+ //}
+
+ public int saveItem(XJDto xjDto)
+ {
+ var items = xjDto.items;
+ var userNo = xjDto.userNo;
+
+
+ int insertCount = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ // 1锔忊儯 妫�鏌ヨ〃閲屾槸鍚﹀瓨鍦ㄧ浉鍚� gid 鐨勬暟鎹�
+ var existingCount = db.Queryable<QsQaItemXj01>()
+ .Count(s => s.Pid == xjDto.gid);
+
+ // 2锔忊儯 濡傛灉瀛樺湪锛屽垯鍏堝垹闄�
+ if (existingCount > 0)
+ {
+ db.Deleteable<QsQaItemXj01>()
+ .Where(s => s.Pid == xjDto.gid)
+ .ExecuteCommand();
+ }
+
+ // 3锔忊儯 缁欐瘡鏉℃槑缁嗚缃� Pid 骞舵彃鍏ワ紝杩斿洖鎻掑叆鏉℃暟
+ foreach (var item in items)
+ {
+ item.Pid = xjDto.gid;
+ }
+
+ return db.Insertable(items).ExecuteCommand();
+ });
+
+ // 4锔忊儯 閲嶆柊鑾峰彇鎻掑叆鍚庣殑鏄庣粏
+ xjDto.items = getJYItem(xjDto.gid, null);
+
+ // 5锔忊儯 瀵规病鏈� Max/Min/StandardValue 鐨勬槑缁嗙敓鎴愰粯璁ゆ娴嬬粨鏋�
+ foreach (var s in xjDto.items)
+ {
+ if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null)
+ continue;
+
+ var detail = new QsQaItemXj02
+ {
+ Pid = s.Id,
+ Gid = xjDto.gid,
+ Fstand = "鈭�",
+ FcheckResu = "1",
+ UpdateBy = xjDto.userNo,
+ count = (int?)s.LevelNum
+ };
+ SetQSItemDetail(detail);
+ }
+
+ // 6锔忊儯 杩斿洖鎻掑叆鏉℃暟
+ return insertCount;
+ }
+
+
+
+
+ public XJDto getXjDetail02ById(decimal? id)
+ {
+ var xjDto = new XJDto();
+
+ var db = SqlSugarHelper.GetInstance();
+ var qsQaItemXj01 =
+ db.Queryable<QsQaItemXj01>().Single(s => s.Id == id);
+
+ if (qsQaItemXj01.IsPass == 0)
+ qsQaItemXj01.result = "涓嶅悎鏍�";
+ else if (qsQaItemXj01.IsPass == 1)
+ qsQaItemXj01.result = "鍚堟牸";
+ else
+ qsQaItemXj01.result = "鏈畬鎴�";
+
+ if (qsQaItemXj01.Picture is { Length: > 0 })
+ qsQaItemXj01.imageData =
+ Convert.ToBase64String(qsQaItemXj01.Picture);
+
+ xjDto.ItemXj01 = qsQaItemXj01;
+
+
+ xjDto.ItemXj02s = db.Queryable<QsQaItemXj02>().Where(s => s.Pid == id)
+ .ToList();
+
+ return xjDto;
+ }
+
+ public int SetQSItemDetail(QsQaItemXj02 detail)
+ {
+ var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ List<QsQaItemXj02> result = new();
+ for (var i = 0; i < detail.count; i++)
+ {
+ var item = new QsQaItemXj02();
+ item.Gid = detail.Gid;
+ item.Pid = detail.Pid;
+ item.Fstand = detail.Fstand;
+ item.FcheckResu = detail.FcheckResu;
+ item.CreateBy = detail.UpdateBy;
+ item.CreateDate = DateTime.Now;
+ result.Add(item);
+ }
+
+ return db.Insertable(result).ExecuteCommand();
+ });
+
+ detail.CreateBy = detail.UpdateBy;
+
+ autoResult(detail);
+
+ return oracle;
+ }
+
+ private int autoResult(QsQaItemXj02 detail)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+ var QsQaItemXj01 = db.Queryable<QsQaItemXj01>()
+ .Single(s => s.Id == detail.Pid);
+
+ if (QsQaItemXj01 == null) return 0;
+
+ var count = db.Queryable<QsQaItemXj02>()
+ .Where(s => s.Pid == detail.Pid).Count();
+
+
+ var result = 0;
+
+ if (QsQaItemXj01.LevelNum != count) return 0;
+
+ var passCount = db.Queryable<QsQaItemXj02>()
+ .Where(s => s.Pid == detail.Pid && s.Fstand == "鈭�").Count();
+
+ if (count == passCount) result = 1;
+
+ var useTransactionWithOracle =
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+ commit += db.Updateable<QsQaItemXj01>()
+ .SetColumns(s => s.IsPass == result)
+ .Where(s => s.Id == detail.Pid)
+ .ExecuteCommand();
+
+ return commit;
+ });
+
+ //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩悊璁轰釜鏁�
+ var sum = db.Queryable<QsQaItemXj01>()
+ .Where(s => s.Pid == detail.Gid).Sum(it => it.LevelNum);
+
+ if (sum == null || sum == 0) return 1;
+
+ //鑾峰彇妫�楠屽崟涓嬬殑妫�楠岄」鐩疄闄呬釜鏁�
+ var icount = db.Queryable<QsQaItemXj02>()
+ .Where(s => s.Gid == detail.Gid).Count();
+
+ if (icount == 0) return 1;
+
+ //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾
+ if (sum == icount)
+ {
+ var FcheckResu = "涓嶅悎鏍�";
+
+ //鑾峰彇杩欎釜妫�楠屽崟涓嬬殑鎵�鏈夊悎鏍肩殑妫�楠岀粨鏋�
+ passCount = db.Queryable<QsQaItemXj02>()
+ .Where(s => s.Gid == detail.Gid && s.Fstand == "鈭�").Count();
+
+ //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸
+ if (icount == passCount) FcheckResu = "鍚堟牸";
+
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsQaItemXj>()
+ .SetColumns(s => s.FcheckResu == FcheckResu)
+ .SetColumns(s => s.FcheckDate == DateTime.Now)
+ .SetColumns(s => s.FcheckBy == detail.CreateBy)
+ .SetColumns(s => s.LastupdateBy == detail.CreateBy)
+ .SetColumns(s => s.LastupdateDate == DateTime.Now)
+ .Where(s => s.Id == detail.Gid)
+ .ExecuteCommand();
+ });
+ }
+
+ return useTransactionWithOracle;
+ }
+
+ public int UpdateQSItemDetail(QsQaItemXj02 detail)
+ {
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsQaItemXj02>()
+ .SetColumns(s => s.UpdateBy == detail.UpdateBy)
+ .SetColumns(s => s.UpdateDate == DateTime.Now)
+ .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand),
+ s => s.Fstand == detail.Fstand)
+ .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu),
+ s => s.FcheckResu == detail.FcheckResu)
+ .Where(s => s.Id == detail.Id)
+ .ExecuteCommand();
+ });
+
+ detail.CreateBy = detail.UpdateBy;
+
+ withOracle += autoResult(detail);
+
+ return withOracle;
+ }
+
+ //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛�
+ public int removeXJ(decimal? id)
+ {
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+ commit += db.Deleteable<QsQaItemXj>().Where(s => s.Id == id)
+ .ExecuteCommand();
+ commit += db.Deleteable<QsQaItemXj01>().Where(s => s.Pid == id)
+ .ExecuteCommand();
+ commit += db.Deleteable<QsQaItemXj02>().Where(s => s.Gid == id)
+ .ExecuteCommand();
+ return commit;
+ });
+
+ return withOracle;
+ }
+
+ //涓昏〃淇敼澶囨敞瀛楁
+ public int saveRemarksGid(XJDto dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsQaItemXj>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.gid)
+ .ExecuteCommand();
+ });
+ }
+
+ //瀛愯〃淇敼澶囨敞瀛楁
+ public int saveRemarksPid(XJDto dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsQaItemXj01>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.pid)
+ .ExecuteCommand();
+ });
+ }
+
+ /// <summary>
+ /// 鑾峰彇棣栨鍗曟墍鏈変笉鑹弿杩�
+ /// </summary>
+ /// <param name="id">妫�楠屽崟ID</param>
+ /// <returns>涓嶈壇鎻忚堪鏁版嵁琛�</returns>
+ public DataTable getBlmsItem1(string id)
+ {
+ OracleSQLHelper SQLHelper = new();
+ // 鏌ヨ棣栨妫�楠屽崟鐨勪笉鑹弿杩�
+ var sql1 = string.Format(
+ @"select PROJ_NAME, REMARKS
+ from QS_QA_ITEM_XJ01 f
+ where PID = '" + id + "' and REMARKS is not null order by PROJ_NAME");
+
+ return SQLHelper.ExecuteQuery(sql1);
+ }
+
+
+
+
+ //瀛欒〃淇敼澶囨敞瀛楁
+ public int saveRemarksById(XJDto dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsQaItemXj02>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.id)
+ .ExecuteCommand();
+ });
+ }
+
+ /// <summary>
+ /// 娣诲姞宸℃鍗�
+ /// </summary>
+ public ResponseResult createInspection(CreateInspectionDto data)
+ {
+ try
+ {
+
+
+ OracleSQLHelper SQLHelper = new();
+ var db = SqlSugarHelper.GetInstance();
+ // ===== 杈撳嚭鍙傛暟 =====
+ var outFlag = new SugarParameter("P_FLAG", null,
+ DbType.Int32, ParameterDirection.Output, 10);
+
+ var outText = new SugarParameter("P_TEXT", null,
+ DbType.String, ParameterDirection.Output, 4000);
+
+ // ===== 杈撳叆鍙傛暟 =====
+ var parameters = new List<SugarParameter>
+ {
+ new SugarParameter("P_line_type", data.LineNo, DbType.String, ParameterDirection.Input),
+ new SugarParameter("P_Work_order_number", data.Daa001, DbType.String, ParameterDirection.Input),
+ new SugarParameter("P_coding", data.ItemNo, DbType.String, ParameterDirection.Input),
+ new SugarParameter("P_USER", data.account, DbType.String, ParameterDirection.Input),
+ new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
+
+ // 杈撳嚭鍙傛暟蹇呴』甯︿笂
+ outFlag,
+ outText
+ };
+ // ===== 鎵ц瀛樺偍杩囩▼ =====
+ db.Ado.ExecuteCommand(
+ "BEGIN PRC_XJ_GENERATE_one(:P_line_type,:P_Work_order_number,:P_coding, :P_USER, :P_ISH, :P_FLAG, :P_TEXT); END;",
+ parameters);
+
+ // ===== 璇诲彇杈撳嚭鍙傛暟骞惰浆鎹㈡垚 ResponseResult =====
+ var result = new ResponseResult
+ {
+ status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 琛ㄧず鎴愬姛锛�1 琛ㄧず澶辫触
+ message = outText.Value?.ToString()
+ };
+
+
+ return result;
+ //return new ResponseResult
+ //{
+ // status = 0,
+ // message = "OK",
+ // data = result
+ //};
+
+
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.9.3