| | |
| | | using MES.Service.Dto.service; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | | using Newtonsoft.Json.Linq; |
| | | using SqlSugar; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | | |
| | |
| | | private readonly BaseService _baseService = new(); |
| | | |
| | | |
| | | private readonly string[] statusArray = ["开工", "待开工"]; |
| | | private readonly string[] statusArray = ["开工", "待开工","已开工" ,"未开工"]; |
| | | |
| | | //生成最新的检验单号 |
| | | public string getMaxReleaseNo() |
| | |
| | | return "XJN" + date + number; |
| | | } |
| | | |
| | | public List<Womdaa> getItem(string daa001) |
| | | public class DaaInfoDto |
| | | { |
| | | public decimal? Id { get; set; } |
| | | public string Daa001 { get; set; } |
| | | public string? Daa003 { get; set; } |
| | | public string? Daa004 { get; set; } |
| | | public decimal? Daa008 { get; set; } |
| | | public string? Daa015 { get; set; } |
| | | public string? Daa020 { get; set; } |
| | | public string? ItemNo { get; set; } // 来自关联表 |
| | | public string? ItemName { get; set; } |
| | | } |
| | | |
| | | public List<DaaInfoDto> getItem(string daa001) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | //in的写法 https://www.donet5.com/Home/Doc?typeId=1187 |
| | | |
| | | return db.Queryable<Womdaa>() |
| | | return db.Queryable<Womdaa,MesItems>((a, b) => new JoinQueryInfos( |
| | | JoinType.Inner, a.Daa002 == b.Id.ToString())) |
| | | .Where(a => |
| | | a.Daa001 == daa001 && |
| | | statusArray.Contains(a.Daa018)) |
| | | .Select((a, b) => new DaaInfoDto |
| | | { |
| | | Daa001= daa001, |
| | | Daa003=a.Daa003, |
| | | Daa004=a.Daa004, |
| | | Daa008=a.Daa008, |
| | | Daa015=a.Daa015, |
| | | Daa020=a.Daa020, |
| | | ItemNo=b.ItemNo, |
| | | ItemName = b.ItemName, |
| | | Id =a.Id |
| | | }) |
| | | .ToList(); |
| | | } |
| | | |
| | | public List<MesLine> getLineAll() |
| | | public List<QCUserLine> getLineAll(string UserNo) |
| | | { |
| | | 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 |
| | | |
| | | return db.Queryable<QCUserLine>() |
| | | .Where(a => a.UserCode == UserNo) |
| | | .Select(a => new QCUserLine |
| | | { |
| | | b.LineNo, b.LineName |
| | | }) |
| | | .Select((a, b) => new MesLine |
| | | { |
| | | LineNo = b.LineNo, |
| | | LineName = b.LineName |
| | | }).OrderBy("b.LINE_NO").ToList(); |
| | | LineNo = a.LineNo, |
| | | LineName = a.LineName |
| | | }).OrderBy("LINENO").ToList(); |
| | | } |
| | | |
| | | public List<Womdaa> getDaa001(string daa020, string item) |
| | | |
| | | |
| | | public List<Womdaa> getDaa001(JObject data) |
| | | { |
| | | var daa020 = data["daa020"]?.ToString(); |
| | | var item = data["item"]?.ToString(); |
| | | |
| | | 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)) |
| | | .WhereIF(!string.IsNullOrEmpty(daa020), (a, b) => a.Daa015 == daa020) |
| | | .WhereIF(!string.IsNullOrEmpty(item), (a, b) => b.ItemNo == item) |
| | | .Where((a, b) => statusArray.Contains(a.Daa018)) |
| | | .Select<Womdaa>(a => new Womdaa |
| | | { |
| | | Id = a.Id, |
| | |
| | | ItemName = b.ItemName, |
| | | ItemModel = b.ItemModel |
| | | }).ToList(); |
| | | } |
| | | |
| | | public List<string?> GetItemProj(string? itemNo) |
| | | { //获取物料所有的检验计划名称 |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var plans = db.Queryable<MesQa>().Where(a => a.ItemNo == itemNo && a.QsType == "2") |
| | | .Select(s => s.QaPlan) |
| | | .Distinct() |
| | | .ToList(); |
| | | |
| | | return plans; |
| | | } |
| | | |
| | | public (List<QsQaItemXj> items, int totalCount) getPage( |
| | |
| | | CheckResult = s.CheckResult, |
| | | Remarks = s.Remarks, |
| | | SaleOrder = ca.Caa015, |
| | | DepartName = d.Departmentname |
| | | DepartName = d.Departmentname, |
| | | PlanName = s.PlanName |
| | | |
| | | }).OrderBy(s => s.CreateDate, OrderByType.Desc); |
| | | var items = query.ToPageList(queryObj.PageIndex, queryObj.Limit, |
| | |
| | | } |
| | | |
| | | |
| | | public List<QsQaItemXj01> setJYItem(string itemNo) |
| | | public List<QsQaItemXj01> setJYItem(string itemNo, string planName) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var count = db.Queryable<MesQa>().Where(s => s.QsType == "2" |
| | | && s.ItemNo == itemNo && s.Fsubmit == 1).Count(); |
| | | && s.ItemNo == itemNo && s.Fsubmit == 1 && s.QaPlan == planName).Count(); |
| | | |
| | | if (count <= 0) return new List<QsQaItemXj01>(); |
| | | |
| | | decimal? QsId = db.Queryable<MesQa>() |
| | | .Where(s => s.QsType == "2" |
| | | && s.ItemNo == itemNo |
| | | && s.QaPlan == planName |
| | | && s.Fsubmit == 1) |
| | | .Select(s => s.Id) |
| | | .First(); |
| | | |
| | | return db |
| | | .Queryable<MesQualityStandard>() |
| | | .Where(b => b.QsType == "2" |
| | | && b.ItemNo == itemNo).Select(b => new QsQaItemXj01 |
| | | .Where(b => b.Pid== QsId).Select(b => new QsQaItemXj01 |
| | | { |
| | | ProjName = b.ProjName, |
| | | ItemMod = b.ItemMod, |
| | |
| | | .ExecuteCommand(); |
| | | }); |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | // 创建参数 |
| | | var FID = new SugarParameter("P_ID", rkjDto.gid); |
| | | |
| | | |
| | | var FRes = new SugarParameter("c_result", null, true); // 输出参数 |
| | | var FMsg = new SugarParameter("c_msg", null, true); |
| | | |
| | | // 执行存储过程 |
| | | db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_UPDATE_RES_JK", FID, FRes, FMsg); |
| | | |
| | | int result = int.Parse((string)FRes.Value); |
| | | string message = FMsg.Value == DBNull.Value ? string.Empty : (string)FMsg.Value; |
| | | if (result == 1) |
| | | { |
| | | //存储过程失败则事务进行回滚 |
| | | //db.Ado.RollbackTran(); |
| | | throw new Exception(message); |
| | | } |
| | | |
| | | |
| | | return useTransactionWithOracle > 0; |
| | | } |
| | | |
| | |
| | | { |
| | | var items = xjDto.items; |
| | | var userNo = xjDto.userNo; |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var del = db.Deleteable<QsQaItemXj01>() |
| | | .Where(s => s.Pid == xjDto.gid) |
| | | .ExecuteCommand(); |
| | | |
| | | //QsItemIpiItemDetail |
| | | var del1 = db.Deleteable<QsQaItemXj02>() |
| | | .Where(s => s.Gid == xjDto.gid) |
| | | .ExecuteCommand(); |
| | | |
| | | // 数据验证 |
| | | var validationResult = ValidateItemsData(items); |
| | |
| | | .ExecuteCommand(); |
| | | }); |
| | | } |
| | | |
| | | public List<XJBadReason>? GetReason(string billNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | |
| | | var count = db.Queryable<XJBadReason>().Where(s => s.BillNo == billNo).Count(); |
| | | |
| | | if (count <= 0) return null; |
| | | |
| | | var reason = db |
| | | .Queryable<XJBadReason>() |
| | | .Where(s => s.BillNo == billNo).Select( |
| | | b => new XJBadReason |
| | | { |
| | | Reason = b.Reason |
| | | }).ToList(); |
| | | |
| | | return reason; |
| | | } |
| | | |
| | | public decimal SavePlan(decimal pid, string PlanName) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var res = db.Updateable<QsQaItemXj>() |
| | | .SetColumns(a => a.PlanName == PlanName) |
| | | .Where(a => a.Id == pid) |
| | | .ExecuteCommand(); |
| | | |
| | | return res; |
| | | |
| | | } |
| | | |
| | | public (decimal?, string?, string?) CreateNew(string? DaaNo, string? userNo, string? planName) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | // 创建参数 |
| | | var FitemNo = new SugarParameter("P_DAA001", DaaNo); |
| | | var FuserNo = new SugarParameter("P_USER", userNo); |
| | | var FplanName = new SugarParameter("P_PLAN_NAME", planName); |
| | | |
| | | |
| | | var FRes = new SugarParameter("P_FLAG", null, true); // 输出参数 |
| | | var FMsg = new SugarParameter("P_TEXT", null, true); |
| | | var FBillNo = new SugarParameter("po_BILL_NO", null, true); |
| | | |
| | | // 执行存储过程 |
| | | db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_GENERATE_JK", FitemNo, FuserNo, FplanName, FRes, FMsg, FBillNo); |
| | | |
| | | // 获取输出结果 |
| | | var Res = Convert.ToInt32(FRes.Value); |
| | | var Msg = FMsg.Value?.ToString(); |
| | | var BillNo = FBillNo.Value?.ToString(); |
| | | |
| | | Console.WriteLine($"结果: {Res}, 返回消息: {Msg},单据号:{BillNo}"); |
| | | |
| | | return (Res, Msg, BillNo); |
| | | } |
| | | |
| | | } |