MES.Service/Modes/QsQaItemXj.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/Modes/VDab.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/QC/BaseService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/QC/XJService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Controllers/QC/BaseController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Controllers/QC/XJController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
MES.Service/Modes/QsQaItemXj.cs
@@ -21,108 +21,112 @@ public decimal? Id { get; set; } /// <summary> /// æ£éªåå· /// æ£éªåå· /// </summary> [SugarColumn(ColumnName = "RELEASE_NO")] [SugarColumn(ColumnName = "RELEASE_NO", Length = 100)] public string? ReleaseNo { get; set; } /// <summary> /// æ£éªæ¥æ /// æ£éªæ¥æ /// </summary> [SugarColumn(ColumnName = "FCHECK_DATE")] public DateTime? FcheckDate { get; set; } public DateTime? CheckDate { get; set; } /// <summary> /// æ£éªäººå /// æ£éªäººå /// </summary> [SugarColumn(ColumnName = "FCHECK_BY")] public string? FcheckBy { get; set; } [SugarColumn(ColumnName = "FCHECK_BY", Length = 100)] public string? CheckBy { get; set; } /// <summary> /// ç©æç¼ç /// ç©æç¼ç /// </summary> [SugarColumn(ColumnName = "ITEM_NO")] [SugarColumn(ColumnName = "ITEM_NO", Length = 100)] public string? ItemNo { get; set; } /// <summary> /// æ£éªç»æ /// æ£éªç»æ /// </summary> [SugarColumn(ColumnName = "FCHECK_RESU")] public string? FcheckResu { get; set; } [SugarColumn(ColumnName = "FCHECK_RESU", Length = 100)] public string? CheckResult { get; set; } /// <summary> /// å建人 /// å建人 /// </summary> [SugarColumn(ColumnName = "CREATE_BY")] [SugarColumn(ColumnName = "CREATE_BY", Length = 100)] public string? CreateBy { get; set; } /// <summary> /// åå»ºæ¥æ /// åå»ºæ¥æ /// </summary> [SugarColumn(ColumnName = "CREATE_DATE")] public DateTime? CreateDate { get; set; } /// <summary> /// æ´æ°äºº /// æ´æ°äºº /// </summary> [SugarColumn(ColumnName = "LASTUPDATE_BY")] public string? LastupdateBy { get; set; } [SugarColumn(ColumnName = "LASTUPDATE_BY", Length = 100)] public string? LastUpdateBy { get; set; } /// <summary> /// æ´æ°æ¥æ /// æ´æ°æ¥æ /// </summary> [SugarColumn(ColumnName = "LASTUPDATE_DATE")] public DateTime? LastupdateDate { get; set; } public DateTime? LastUpdateDate { get; set; } /// <summary> /// ä¿®æ¹äºº /// </summary> [SugarColumn(ColumnName = "MODIFY1_BY")] public string? Modify1By { get; set; } [SugarColumn(ColumnName = "MODIFY1_BY", Length = 100)] public string? ModifyBy { get; set; } /// <summary> /// åä½ /// ç©æåä½ /// </summary> [SugarColumn(ColumnName = "ITEM_UNIT")] [SugarColumn(ColumnName = "ITEM_UNIT", Length = 100)] public string? ItemUnit { get; set; } /// <summary> /// å·¥åå· /// å·¥åå· /// </summary> [SugarColumn(ColumnName = "BILL_NO")] [SugarColumn(ColumnName = "BILL_NO", Length = 50)] public string? BillNo { get; set; } /// <summary> /// æ¨¡å ·å· /// æ¨¡å ·å· /// </summary> [SugarColumn(ColumnName = "MOID_NUM")] public string? MoidNum { get; set; } [SugarColumn(ColumnName = "MOID_NUM", Length = 50)] public string? MoldNum { get; set; } /// <summary> /// æäº¤äºº /// </summary> [SugarColumn(ColumnName = "FSUBMIT_BY")] public string? FsubmitBy { get; set; } [SugarColumn(ColumnName = "FSUBMIT_BY", Length = 50)] public string? SubmitBy { get; set; } /// <summary> /// æäº¤æ¥æ /// </summary> [SugarColumn(ColumnName = "FSUBMIT_DATE")] public DateTime? FsubmitDate { get; set; } public DateTime? SubmitDate { get; set; } /// <summary> /// æäº¤ç¶æï¼0/1ï¼ /// </summary> [SugarColumn(ColumnName = "FSUBMIT")] public decimal? Fsubmit { get; set; } public int? SubmitStatus { get; set; } /// <summary> /// 夿³¨ /// 夿³¨ /// </summary> [SugarColumn(ColumnName = "REMARKS")] [SugarColumn(ColumnName = "REMARKS", Length = 200)] public string? Remarks { get; set; } /// <summary> /// ç©æID /// ç©æID /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; } public long? ItemId { get; set; } [SugarColumn(IsIgnore = true)] public string? Daa020 { get; set; } [SugarColumn(IsIgnore = true)] public decimal? PlanQty { get; set; } MES.Service/Modes/VDab.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ using SqlSugar; namespace MES.Service.Modes; [SugarTable("V_DAB")] public class VDab { /// <summary> /// å·¥å åæ®µ /// </summary> [SugarColumn(ColumnName = "DAB001")] public string? Dab001 { get; set; } /// <summary> /// åºå· åæ®µ /// </summary> [SugarColumn(ColumnName = "DAB002")] public decimal? Dab002 { get; set; } /// <summary> /// éé¢ç¨é åæ®µ /// </summary> [SugarColumn(ColumnName = "DAB006")] public string? Dab006 { get; set; } /// <summary> /// ææåç§° åæ®µ /// </summary> [SugarColumn(ColumnName = "DAB004")] public string? Dab004 { get; set; } /// <summary> /// ææè§æ ¼ åæ®µ /// </summary> [SugarColumn(ColumnName = "DAB005")] public string? Dab005 { get; set; } /// <summary> /// PID åæ®µ /// </summary> [SugarColumn(ColumnName = "PID")] public string? Pid { get; set; } /// <summary> /// ç©æç¼å· åæ®µ /// </summary> [SugarColumn(ColumnName = "ITEM_NO")] public string? ItemNo { get; set; } /// <summary> /// åä½ åæ®µ /// </summary> [SugarColumn(ColumnName = "FNUMBER")] public string? FNumber { get; set; } } MES.Service/service/QC/BaseService.cs
@@ -49,4 +49,13 @@ }); return mesQsImages; } public List<VDab> GetDabs(VDab queryObj) { var db = SqlSugarHelper.GetInstance(); return db.Queryable<VDab>() .Where(s => s.Dab001 == queryObj.Dab001) .OrderBy(s => s.Dab002) .ToList(); } } MES.Service/service/QC/XJService.cs
@@ -134,11 +134,11 @@ .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && "æªå®æ".Equals(queryObj.result), (s, a, c, b) => s.FcheckResu == null) (s, a, c, b) => s.SubmitStatus == 0 || s.SubmitStatus == null) .WhereIF( StringUtil.IsNotNullOrEmpty(queryObj.result) && !"æªå®æ".Equals(queryObj.result), (s, a, c, b) => s.FcheckResu != null) (s, a, c, b) => s.SubmitStatus == 1) .WhereIF(id > 0, (s, a, c, b) => s.Id == id) .Select((s, a, c, b) => new QsQaItemXj { @@ -152,8 +152,8 @@ BillNo = s.BillNo, ItemName = b.ItemName, ItemModel = b.ItemModel, FcheckBy = s.FcheckBy, FcheckResu = s.FcheckResu, CheckBy = s.CheckBy, CheckResult = s.CheckResult, Remarks = s.Remarks }).OrderBy(s => s.CreateDate, OrderByType.Desc); var items = query.ToPageList(queryObj.PageIndex, queryObj.Limit,ref totalCount); @@ -292,36 +292,180 @@ return Convert.ToInt32(xj.Id); } public bool XJQaSubmit(LLJDto rkjDto) { var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db => { return db.Updateable<QsQaItemXj>() .SetColumns(s => s.SubmitStatus == 1) .SetColumns(s => s.SubmitBy == rkjDto.userNo) .SetColumns(s => s.SubmitDate == DateTime.Now) .Where(s => s.Id == rkjDto.gid) .ExecuteCommand(); }); return useTransactionWithOracle > 0; } // 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; SqlSugarHelper.UseTransactionWithOracle(db => // æ°æ®éªè¯ var validationResult = ValidateItemsData(items); if (!validationResult.isValid) throw new Exception($"æ£éªé¡¹ç®éªè¯å¤±è´¥: {validationResult.errorMsg}"); return SqlSugarHelper.UseTransactionWithOracle(db => { // 设置å¤é®å ³èå¹¶æ¹éæå ¥å表 foreach (var item in items) item.Pid = xjDto.gid; db.Insertable(items).ExecuteCommand(); return db.Insertable(items).ExecuteCommand(); // è·åæ£éªé¡¹ç®æ°æ® var jyItems = getJYItemOptimized(db, xjDto.gid.Value); if (jyItems.Any()) { // å¤çä¸å¡é»è¾è®¡ç® var allDetails = PrepareDetailsData(jyItems, xjDto.gid.Value, userNo); if (allDetails.Count > 0) { // æ¹éæå ¥æ£éªè¯¦æ db.Insertable(allDetails).ExecuteCommand(); // 计ç®ç»æ var (pidResults, fcheckResu) = CalculateResults(allDetails, jyItems); // æ¹éæ´æ°æ£éªé¡¹ç®ç»æ foreach (var (pidValue, result) in pidResults) { db.Updateable<QsQaItemXj01>() .SetColumns(s => s.IsPass == result) .Where(s => s.Id == pidValue) .ExecuteCommand(); } // æ´æ°ä¸»è¡¨æ£éªç»æ var totalSum = jyItems.Where(x => x.MaxValue == null && x.StandardValue == null && x.MinValue == null) .Sum(x => x.LevelNum); if (totalSum == allDetails.Count) { db.Updateable<QsQaItemXj>() .SetColumns(s => s.CheckResult == fcheckResu) .SetColumns(s => s.CheckDate == DateTime.Now) .SetColumns(s => s.CheckBy == userNo) .SetColumns(s => s.LastUpdateBy == userNo) .SetColumns(s => s.LastUpdateDate == DateTime.Now) .Where(s => s.Id == xjDto.gid) .ExecuteCommand(); } } } return Convert.ToInt32(xjDto.gid); }); } private List<QsQaItemXj01> getJYItemOptimized(ISqlSugarClient db, decimal xjId) { return db.Queryable<QsQaItemXj01>() .Where(a => a.Pid == xjId) .ToList(); } private (bool isValid, string errorMsg) ValidateItemsData(List<QsQaItemXj01> items) { if (items == null || !items.Any()) return (false, "æ£éªé¡¹ç®ä¸è½ä¸ºç©º"); var invalidItems = items.Where(x => x.LevelNum <= 0 || string.IsNullOrEmpty(x.ProjName)).ToList(); if (invalidItems.Any()) return (false, $"åå¨{invalidItems.Count}ä¸ªæ æçæ£éªé¡¹ç®"); return (true, ""); } xjDto.items = getJYItem(xjDto.gid, null); xjDto.items.ForEach(s => private List<QsQaItemXj02> PrepareDetailsData(List<QsQaItemXj01> jyItems, decimal gid, string userNo) { var allDetails = new List<QsQaItemXj02>(); var now = DateTime.Now; foreach (var s in jyItems) { 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); }); if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) continue; return Convert.ToInt32(xjDto.gid); for (var i = 0; i < s.LevelNum; i++) { allDetails.Add(new QsQaItemXj02 { Gid = gid, Pid = s.Id, Fstand = "â", FcheckResu = "1", CreateBy = userNo, CreateDate = now }); } } return allDetails; } private (List<(decimal pid, int result)> pidResults, string fcheckResu) CalculateResults( List<QsQaItemXj02> allDetails, List<QsQaItemXj01> jyItems) { var pidGroups = allDetails.GroupBy(x => x.Pid).ToList(); var pidResults = new List<(decimal pid, int result)>(); foreach (var group in pidGroups) { var count = group.Count(); var passCount = group.Count(x => x.Fstand == "â"); var result = (count == passCount) ? 1 : 0; pidResults.Add((group.Key.Value, result)); } var totalSum = jyItems.Where(x => x.MaxValue == null && x.StandardValue == null && x.MinValue == null) .Sum(x => x.LevelNum); var totalCount = allDetails.Count; var totalPassCount = allDetails.Count(x => x.Fstand == "â"); var fcheckResu = (totalSum == totalCount && totalCount == totalPassCount) ? "åæ ¼" : "ä¸åæ ¼"; return (pidResults, fcheckResu); } @@ -442,11 +586,11 @@ 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) .SetColumns(s => s.CheckResult == FcheckResu) .SetColumns(s => s.CheckDate == DateTime.Now) .SetColumns(s => s.CheckBy == detail.CreateBy) .SetColumns(s => s.LastUpdateBy == detail.CreateBy) .SetColumns(s => s.LastUpdateDate == DateTime.Now) .Where(s => s.Id == detail.Gid) .ExecuteCommand(); }); MESApplication/Controllers/QC/BaseController.cs
@@ -1,5 +1,6 @@ using System.Dynamic; using MES.Service.Dto.service; using MES.Service.Modes; using MES.Service.service.QC; using MES.Service.util; using Microsoft.AspNetCore.Mvc; @@ -81,4 +82,29 @@ return ResponseResult.ResponseError(ex); } } // GetDabs(VDab queryObj) [HttpPost("getDabs")] public ResponseResult GetDabs(VDab queryObj) { try { dynamic resultInfos = new ExpandoObject(); var tbBillList = new BaseService().GetDabs(queryObj); resultInfos.tbBillList = tbBillList; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } } MESApplication/Controllers/QC/XJController.cs
@@ -442,4 +442,26 @@ return ResponseResult.ResponseError(ex); } } [HttpPost("XJQaSubmit")] public ResponseResult XJQaSubmit(LLJDto rkjDto) { try { dynamic resultInfos = new ExpandoObject(); var tbBillList = new XJService().XJQaSubmit(rkjDto); resultInfos.tbBillList = tbBillList; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } }