| | |
| | | using MES.Service.DB; |
| | | using Masuit.Tools.Models; |
| | | using MES.Service.DB; |
| | | using MES.Service.Dto.service; |
| | | using MES.Service.Modes; |
| | | using MES.Service.util; |
| | |
| | | public List<RkDaa002> GetDaa001s(string lineNo) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | // return db.Queryable<RKJDaa001>() |
| | | // .Where(t => t.LineNo == lineNo) |
| | | // .OrderBy(t => t.BillNo, OrderByType.Desc) |
| | | // .ToList(); |
| | | return null; |
| | | return db.Queryable<RkDaa002>() |
| | | .Where(t => lineNo.Contains(t.Daa020)) |
| | | .OrderBy(t => t.BillNo, OrderByType.Desc) |
| | | .ToList(); |
| | | } |
| | | |
| | | //根据检验标准来计算检验个数 |
| | |
| | | |
| | | if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu)) |
| | | { |
| | | throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不运行修改结果"); |
| | | throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不允许修改结果"); |
| | | } |
| | | |
| | | var oracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | |
| | | /// womdaa 已生产量 DAA011加回条码报工数量 |
| | | /// MES_SCGD_GX 检验标识 CHECK_FLAG,('√','×') |
| | | /// 通过mes_inv_item_in_c_details2的MES_SCGD_GX_ID连接 |
| | | /// |
| | | /// 20250602更新 现在不合格不会更新工单生产数量,合格会增加对应工单生产数量 |
| | | ///</summary> |
| | | private void setBarCodes(string? FcheckResu, QsItemOqcItemDetail detail, |
| | | SqlSugarClient db) |
| | |
| | | var barCodes = mesInvItemInsList.Select(s => s.ItemBarcode).ToList(); |
| | | |
| | | var count = db.Queryable<MesInvItemBarcodes>() |
| | | .Where(s => barCodes.Contains(s.ItemBarcode) && s.WorkFlg == 0) |
| | | .Where(s => barCodes.Contains(s.ItemBarcode)) |
| | | .Count(); |
| | | |
| | | var gxId = mesInvItemInsList.Select(s => s.MesScgdGxId).ToList(); |
| | |
| | | |
| | | if (count <= 0) return; |
| | | |
| | | //取消mes_inv_item_barcodes 的报工标识 WORK_FLG 使用条码 |
| | | //更新mes_inv_item_barcodes 的报工标识 WORK_FLG 使用条码 |
| | | var executeCommand = db.Updateable<MesInvItemBarcodes>() |
| | | .SetColumns(a => a.WorkFlg == 1) |
| | | .Where(a => barCodes.Contains(a.ItemBarcode)) |
| | |
| | | |
| | | if (executeCommand > 0) |
| | | { |
| | | //womdaa 已生产量 DAA011加回条码报工数量 |
| | | //womdaa 已生产量 DAA011加上条码报工数量 |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == b.Daa011 + sumQty) |
| | | .SetColumns(b => b.Daa011 == SqlFunc.IsNull(b.Daa011, 0) + sumQty) |
| | | .Where(b => b.Daa001 == qsItemOqcReq.Daa001) |
| | | .ExecuteCommand(); |
| | | |
| | | //判断是否完工 |
| | | var complete = db.Queryable<Womdaa>() |
| | | .Where(a => a.Daa008 == a.Daa011 && a.Daa001== qsItemOqcReq.Daa001) |
| | | .Count(); |
| | | |
| | | var WqtQty = db.Queryable<Womdab>() |
| | | .Where(a => a.Dab001 == qsItemOqcReq.Daa001) |
| | | .Sum(a => a.Dab006- SqlFunc.IsNull(a.Dab007, 0)); |
| | | |
| | | if (complete > 0 && WqtQty == 0) //齐套且工单生产数量=工单数量,工单更改为完工 |
| | | { |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa018 == "完工") |
| | | .SetColumns(b => b.Daa017 == DateTime.Now) |
| | | .Where(b => b.Daa001 == qsItemOqcReq.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | } |
| | | } |
| | | else if ("不合格".Equals(FcheckResu)) |
| | |
| | | .Where(a => barCodes.Contains(a.ItemBarcode)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (executeCommand > 0) |
| | | /*if (executeCommand > 0) |
| | | { |
| | | //womdaa 已生产量 DAA011加回条码报工数量 |
| | | //womdaa 已生产量 DAA011扣除条码报工数量 |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == b.Daa011 - sumQty) |
| | | .Where(b => b.Daa001 == qsItemOqcReq.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | }*/ |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | var qsItemOqcReqs = db |
| | | .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, MesInvTransaction, |
| | | RKJDaa001, Womdaa, VLineUser>( |
| | | (a, b, c, ca, m, da, z) => new JoinQueryInfos( |
| | | RKJDaa001, Womdaa, VLineUser,MesDeptUser, Womcaa, ExZzCaaFiled>( |
| | | (a, b, c, ca, m, da, z,d, caa,zf) => new JoinQueryInfos( |
| | | JoinType.Left, a.ItemNo == b.ItemNo, |
| | | JoinType.Left, a.BillNo == c.BillNo, |
| | | JoinType.Left, |
| | |
| | | c.Factory == ca.Factory, |
| | | JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo, |
| | | JoinType.Left, da.Daa001 == c.RbillNo, |
| | | JoinType.Left, da.Daa015 == z.LineNo |
| | | JoinType.Left, da.Daa015 == z.LineNo, |
| | | JoinType.Left,c.Bgr == d.UserNo, |
| | | JoinType.Left, da.Daa021 == caa.Caa020, |
| | | JoinType.Left, caa.Erpid == zf.Erpid |
| | | )) |
| | | // .WhereIF(lineNo != null && lineNo.Length > 0, |
| | | // (a, b, c, ca, m, da) => lineNo.Contains(da.Daa015)) |
| | | .WhereIF(!"PL017".Equals(queryObj.createUser), |
| | | (a, b, c, ca, m, da, z) => lineNo.Contains(da.Daa015)) |
| | | (a, b, c, ca, m, da, z, d, caa, zf) => lineNo.Contains(da.Daa015)) |
| | | .WhereIF(!string.IsNullOrEmpty(queryObj.id), |
| | | (a, b, c, ca, m, da, z) => a.Id.ToString() == queryObj.id) |
| | | (a, b, c, ca, m, da, z, d, caa, zf) => a.Id.ToString() == queryObj.id) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | "未完成".Equals(queryObj.result), |
| | | (a, b, c, ca, m, da, z) => a.FcheckResu == null) |
| | | (a, b, c, ca, m, da, z, d, caa, zf) => a.FcheckResu == null) |
| | | .WhereIF( |
| | | StringUtil.IsNotNullOrEmpty(queryObj.result) && |
| | | !"未完成".Equals(queryObj.result), |
| | | (a, b, c, ca, m, da, z) => a.FcheckResu != null) |
| | | .Select((a, b, c, ca, m, da, z) => new QsItemOqcReq |
| | | (a, b, c, ca, m, da, z, d, caa, zf) => a.FcheckResu != null) |
| | | //加筛选条件,根据供应商,物料编码,物料名称搜索 |
| | | //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue ) |
| | | .WhereIF(queryObj.SearchValue != null && queryObj.SearchValue != "", |
| | | (a, b, c, ca, m, da, z, d, caa, zf) => b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) |
| | | || a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower())) |
| | | .Select((a, b, c, ca, m, da, z, d, caa, zf) => new QsItemOqcReq |
| | | { |
| | | BillNo = a.BillNo, |
| | | Fsubmit = a.Fsubmit, |
| | | Remarks = a.Remarks, |
| | | Id = a.Id, |
| | | CreateDate = a.CreateDate, |
| | |
| | | Daa015 = da.Daa015, |
| | | LineNo = c.LineNo, |
| | | Quantity = m.Quantity, |
| | | Bgr = c.Bgr |
| | | Caa015 = caa.Caa015, |
| | | cust = da.Cust == null ? zf.Cust : da.Cust, |
| | | Bgr = d.UserName |
| | | }) |
| | | .OrderBy(a => a.CreateDate, OrderByType.Desc) |
| | | .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount); |
| | |
| | | |
| | | if (!string.IsNullOrEmpty(qsItemOqcReq.FcheckResu)) |
| | | { |
| | | throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不运行修改结果"); |
| | | throw new Exception("该检验单已" + qsItemOqcReq.FcheckResu + ",不允许修改结果"); |
| | | } |
| | | |
| | | var withOracle = SqlSugarHelper.UseTransactionWithOracle(db => |
| | |
| | | }); |
| | | } |
| | | |
| | | public int saveItem(RKJDto rkjDto) |
| | | public int saveItem(RKJDto rkjDto) //自动生成合格的检验项 |
| | | { |
| | | var items = rkjDto.items; |
| | | var userNo = rkjDto.userNo; |
| | |
| | | SetQSItemDetail(detail); |
| | | }); |
| | | |
| | | //因为默认合格,在这里增加工单生产数量 |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | var oqcReqList = db.Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>( |
| | | (a, b, c) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.BillNo == b.BillNo, |
| | | JoinType.Left, c.Daa001 == b.RbillNo |
| | | )) |
| | | .Where(a => a.Id == rkjDto.gid) |
| | | .Select((a, b, c) => |
| | | new |
| | | { |
| | | a.Id, |
| | | a.BillNo, |
| | | c.Daa001 |
| | | }) |
| | | .First(); |
| | | |
| | | if (oqcReqList.Id is null or 0) return 0; |
| | | |
| | | //查询检验数量 |
| | | var sumQty = db |
| | | .Queryable<MesInvItemIns, MesInvItemInCDetails2>((a, b) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.Id == b.ItemInId)) |
| | | .Where((a, b) => a.BillNo == oqcReqList.BillNo) |
| | | .Select((a, b) => new {b.Quantity }) |
| | | .MergeTable().Sum( a=> a.Quantity); |
| | | |
| | | /* |
| | | //更新生产量 |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == SqlFunc.IsNull(b.Daa011, 0) + sumQty) |
| | | .Where(b => b.Daa001 == oqcReqList.Daa001) |
| | | .ExecuteCommand(); |
| | | |
| | | //判断是否完工 |
| | | var complete = db.Queryable<Womdaa>() |
| | | .Where(a => a.Daa008 == a.Daa011 && a.Daa001 == oqcReqList.Daa001) |
| | | .Count(); |
| | | |
| | | if (complete > 0) |
| | | { |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa018 == "完工") |
| | | .Where(b => b.Daa001 == oqcReqList.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | |
| | | */ |
| | | |
| | | return Convert.ToInt32(rkjDto.gid); |
| | | } |
| | | |
| | | public int cleanReqResult(RKJDto dto) |
| | | public int cleanReqResult(RKJDto dto) //清除检验结果 |
| | | { |
| | | if (isRk(dto.gid)) throw new Exception("已有条码入库,不允许清除检验结果"); |
| | | |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | //查询检验结果 |
| | | var oqcReqList = db.Queryable<QsItemOqcReq, MesInvItemIns, Womdaa>( |
| | | (a, b, c) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.BillNo == b.BillNo, |
| | | JoinType.Left, c.Daa001 == b.RbillNo |
| | | )) |
| | | .Where(a => a.Id == dto.gid) |
| | | .Select((a, b, c) => |
| | | new |
| | | { |
| | | a.FcheckResu, |
| | | a.Id, |
| | | a.BillNo, |
| | | c.Daa001 |
| | | }) |
| | | .First(); |
| | | |
| | | if (oqcReqList.Id is null or 0) return 0; |
| | | |
| | | var FcheckResu = oqcReqList.FcheckResu; //检验结果 |
| | | |
| | | //查询检验数量 |
| | | var mesInvItemInsList = db |
| | | .Queryable<MesInvItemIns, MesInvItemInCDetails2>((a, b) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, a.Id == b.ItemInId)) |
| | | .Where((a, b) => a.BillNo == oqcReqList.BillNo) |
| | | .Select((a, b) => new |
| | | { b.ItemBarcode, b.Quantity, b.MesScgdGxId }) |
| | | .ToList(); |
| | | |
| | | var barCodes = mesInvItemInsList.Select(s => s.ItemBarcode).ToList(); |
| | | |
| | | var count = db.Queryable<MesInvItemBarcodes>() |
| | | .Where(s => barCodes.Contains(s.ItemBarcode)) |
| | | .Count(); |
| | | |
| | | var gxId = mesInvItemInsList.Select(s => s.MesScgdGxId).ToList(); |
| | | |
| | | var sumQty = mesInvItemInsList.Sum(s => s.Quantity); |
| | | |
| | | |
| | | //根据工序id更新工序表的检验结果 |
| | | db.Updateable<MesScgdGx>() |
| | | .SetColumns(s => s.CheckFlag == "未检验") |
| | | .Where(s => gxId.Contains(s.Id)) |
| | | .ExecuteCommand(); |
| | | |
| | | if (count <= 0) return 0; |
| | | |
| | | //更新mes_inv_item_barcodes 的报工标识 WORK_FLG 为已报工(主要是针对不合格的检验结果) |
| | | var executeCommand = db.Updateable<MesInvItemBarcodes>() |
| | | .SetColumns(a => a.WorkFlg == 1) |
| | | .Where(a => barCodes.Contains(a.ItemBarcode)) |
| | | .ExecuteCommand(); |
| | | |
| | | |
| | | if ("合格".Equals(FcheckResu)) //检验合格的则回退生产数量 |
| | | { |
| | | //womdaa 已生产量 DAA011扣除条码报工数量 |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa011 == SqlFunc.IsNull(b.Daa011, 0) - sumQty) |
| | | .Where(b => b.Daa001 == oqcReqList.Daa001) |
| | | .ExecuteCommand(); |
| | | |
| | | //工单状态更改为开工 |
| | | db.Updateable<Womdaa>() |
| | | .SetColumns(b => b.Daa018 == "开工") |
| | | .SetColumns(b => b.Daa017 == null) |
| | | .Where(b => b.Daa001 == oqcReqList.Daa001) |
| | | .ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | return SqlSugarHelper.UseTransactionWithOracle(db => |
| | |
| | | private bool isRk(int? gid) |
| | | { |
| | | var db = SqlSugarHelper.GetInstance(); |
| | | return db.Queryable<QsItemOqcReq, MesInvItemIns, MesInvItemInCDetails2>( |
| | | (a, b, c) => new JoinQueryInfos( |
| | | return db.Queryable<QsItemOqcReq, MesInvItemIns, MesInvItemInCDetails2,MesInvItemStocks>( |
| | | (a, b, c,d) => new JoinQueryInfos( |
| | | JoinType.Inner, a.BillNo == b.BillNo, |
| | | JoinType.Inner, b.Id == c.ItemInId |
| | | JoinType.Inner, b.Id == c.ItemInId, |
| | | JoinType.Inner,c.ItemBarcode == d.ItemBarcode |
| | | )) |
| | | .Where((a, b, c) => a.Id == gid) |
| | | .Where((a, b, c,d) => a.Id == gid) |
| | | .Count() > 0; |
| | | } |
| | | } |