| | |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Threading.Tasks.Dataflow; |
| | | using Masuit.Tools; |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | |
| | | if (wwgd?.Daa001 == null) throw new Exception("工单号不存在"); |
| | | |
| | | var womdabs = Db |
| | | .Queryable<WwGd, WwGdDetail, MesItems, ProductionOrderSub>( |
| | | (a, b, c, d) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, |
| | | a.Id == b.Pid, |
| | | JoinType.Inner, |
| | | c.Id == b.Dab003, |
| | | JoinType.Inner, b.Erpid.ToString() == d.ErpId |
| | | )) |
| | | .Queryable<WwGd, WwGdDetail, MesItems, ProductionOrderSub>((a, b, c, |
| | | d) => |
| | | new JoinQueryInfos( |
| | | JoinType.Left, |
| | | a.Id == b.Pid, |
| | | JoinType.Inner, |
| | | c.Id == b.Dab003, |
| | | JoinType.Inner, b.Erpid.ToString() == d.ErpId |
| | | )) |
| | | .Where((a, b, c, d) => |
| | | a.Daa001 == query.daa001 && d.IssuingMethod == "1") |
| | | a.Daa001 == query.daa001) |
| | | .Select((a, b, c, d) => new WwGdDetail |
| | | { |
| | | Pid = b.Pid, |
| | |
| | | if (c_mes_inv_item_barcodes == null) |
| | | throw new Exception("此条码不属于该退料单,请核对!"); |
| | | |
| | | |
| | | |
| | | // if (c_mes_inv_item_barcodes.Memo != "生产退料") |
| | | // throw new Exception("此条码不是生产退料条码,不可使用生产退料模块!"); |
| | |
| | | throw new Exception("条码不属于该申请单明细,无法扫码!"); |
| | | |
| | | //判断货主信息 |
| | | var CABerpid = Db.Queryable<WwGdDetail>().Where(womdab => womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013).Select(womdab => womdab.Erpid).First(); |
| | | var CABerpid = Db.Queryable<WwGdDetail>() |
| | | .Where(womdab => |
| | | womdab.Id.ToString() == C_MES_ITEM_TBL_DETAIL.Tld013) |
| | | .Select(womdab => womdab.Erpid).First(); |
| | | |
| | | var WWCAB = Db.Queryable<ProductionOrderSub>().Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First(); |
| | | var WWCAB = Db.Queryable<ProductionOrderSub>() |
| | | .Where(womcab => womcab.ErpId == CABerpid.Value.ToString()).First(); |
| | | |
| | | |
| | | if ( String.IsNullOrEmpty(WWCAB.Owner)) throw new Exception("用料清单货主信息不存在,无法扫码,请联系管理员!"); |
| | | if (string.IsNullOrEmpty(WWCAB.Owner)) |
| | | throw new Exception("用料清单货主信息不存在,无法扫码,请联系管理员!"); |
| | | |
| | | //var owner_type = ""; |
| | | //if (Db.Queryable<SysOrganization>().Any(x => x.Fid == ownerId)) |
| | |
| | | |
| | | // 检查是否存在于 MES_INV_ITEM_IN_C_ITEMS 表 |
| | | var existingCount = db.Queryable<MesInvItemInCItems>() |
| | | .Where(it => |
| | | it.ItemInId == c_id && |
| | | it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && |
| | | it.DepotId == c_depot_code.ToString()) |
| | | .Where(it => |
| | | it.ItemInId == c_id && |
| | | it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && |
| | | it.DepotId == c_depot_code.ToString()) |
| | | .Count(); |
| | | |
| | | if (existingCount == 0) |
| | |
| | | db.Updateable<MesInvItemInCItems>() |
| | | .SetColumns(it => new MesInvItemInCItems |
| | | { |
| | | Quantity = SqlFunc.IsNull(it.Quantity, 0) + c_mes_inv_item_barcodes.Quantity // 确保 Quantity 不为 null |
| | | Quantity = SqlFunc.IsNull(it.Quantity, 0) + |
| | | c_mes_inv_item_barcodes |
| | | .Quantity // 确保 Quantity 不为 null |
| | | }) |
| | | .Where(it => |
| | | it.ItemInId == c_id && |
| | | it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && |
| | | it.DepotId == c_depot_code.ToString()) |
| | | .Where(it => |
| | | it.ItemInId == c_id && |
| | | it.ItemId == C_MES_ITEM_TBL_DETAIL.Tld009 && |
| | | it.DepotId == c_depot_code.ToString()) |
| | | //.IgnoreColumns(true) // 保留 IgnoreColumns |
| | | .ExecuteCommand(); |
| | | |
| | |
| | | ReceiveOrgId = c_mes_depots.FSubsidiary, |
| | | EbelnK3id = c_mes_inv_item_barcodes.EbelnK3id, |
| | | LineK3id = c_mes_inv_item_barcodes.LineK3id, |
| | | Ischeck = true, |
| | | Ischeck = true |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | | |
| | | // 插入业务记录 |
| | |
| | | }) |
| | | .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id |
| | | && it.Tld009 == c_mes_inv_item_barcodes.ItemId) |
| | | //&& it.Tld010 == |
| | | //c_mes_inv_item_barcodes.WorkLine) |
| | | //&& it.Tld010 == |
| | | //c_mes_inv_item_barcodes.WorkLine) |
| | | .ExecuteCommand(); |
| | | } |
| | | // 作业不良退料 - 更新工单表和退料单明细表 |
| | |
| | | }) |
| | | .Where(it => it.Tlmid == C_MES_ITEM_TBL.Id |
| | | && it.Tld009 == c_mes_inv_item_barcodes.ItemId) |
| | | //&& it.Tld010 == |
| | | //c_mes_inv_item_barcodes.WorkLine) |
| | | //&& it.Tld010 == |
| | | //c_mes_inv_item_barcodes.WorkLine) |
| | | .ExecuteCommand(); |
| | | } |
| | | |
| | |
| | | .ExecuteCommand(); |
| | | |
| | | // 检查退料单是否所有明细都已完成 |
| | | var remainingCount = Db.Queryable<MesItemTbl, MesItemTblDetail>( |
| | | (a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) |
| | | var remainingCount = Db |
| | | .Queryable<MesItemTbl, MesItemTblDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Tlmid)) |
| | | .Where((a, b) => |
| | | a.BillNo == p_bill_no && |
| | | (b.Tld005 ?? 0) - (b.Tld006 ?? 0) > 0) |
| | |
| | | |
| | | // 创建 插入日志 |
| | | var logService = new LogService(); |
| | | var LogMsg = "[PDA]委外退料。条码【" + query.barcode + "】 退料单号【" + c_bill_no + "】"; |
| | | logService.CreateLog(db, query.userName, wwgd.Id.ToString(), "WW_GD", LogMsg, wwgd.Daa001); |
| | | var LogMsg = "[PDA]委外退料。条码【" + query.barcode + "】 退料单号【" + |
| | | c_bill_no + "】"; |
| | | logService.CreateLog(db, query.userName, wwgd.Id.ToString(), |
| | | "WW_GD", LogMsg, wwgd.Daa001); |
| | | |
| | | return totalResult; |
| | | }); |
| | |
| | | #region 委外补料 |
| | | |
| | | /// <summary> |
| | | /// 委外工单补料扫码 |
| | | /// 委外工单补料扫码 |
| | | /// 扫描条码 prc_rf_pda_scan_zout_barcode3 |
| | | /// </summary> |
| | | /// <param name="query">查询参数</param> |
| | |
| | | // 获取补料单明细并校验 |
| | | var blDetail = Db.Queryable<MesItemBlDetail>() |
| | | .Where(b => |
| | | b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId && b.Bld007 > b.Bld008) |
| | | b.Mid == mesItemBl.Id && b.Bld012 == stockBarcode.ItemId && |
| | | b.Bld007 > b.Bld008) |
| | | .First(); |
| | | |
| | | if (blDetail == null) |
| | |
| | | //query.Type = "委外补料"; |
| | | var outNoType = "WWBL(委外补料)"; |
| | | if (query.Type == "委外补料") |
| | | { |
| | | outNoType = "WWBL(委外补料)"; |
| | | } |
| | | else |
| | | { |
| | | outNoType = "WWCL(委外超领)"; |
| | | } |
| | | //outNoType = "WWBL(委外补料)"; |
| | | // 获取或创建出库单 |
| | | var outId = Guid.NewGuid(); |
| | |
| | | OutDate = DateTime.Now, |
| | | Status = 0, |
| | | DepotId = stockBarcode.DepotId, |
| | | THORGID = stockBarcode.StockOrgId, |
| | | THORGID = stockBarcode.StockOrgId |
| | | //BbillNo = query.billNo |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | | } |
| | |
| | | // 检查并更新出库单物料明细 |
| | | var itemCount = db.Queryable<MesInvItemOutItems>() |
| | | .Where(i => |
| | | i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString()) |
| | | i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && |
| | | i.ItemOutId == outId && |
| | | i.DepotId == stockBarcode.DepotsId.ToString()) |
| | | .Count(); |
| | | |
| | | if (itemCount > 0) |
| | |
| | | .SetColumns(i => |
| | | i.TlQty == i.TlQty + stockBarcode.Quantity) |
| | | .Where(i => |
| | | i.ItemOutId == outId && i.ItemId == stockBarcode.ItemId && i.ItemOutId == outId && i.DepotId == stockBarcode.DepotsId.ToString()) |
| | | i.ItemOutId == outId && |
| | | i.ItemId == stockBarcode.ItemId && |
| | | i.ItemOutId == outId && |
| | | i.DepotId == stockBarcode.DepotsId.ToString()) |
| | | .ExecuteCommand(); |
| | | else |
| | | // 插入新的物料明细记录 |
| | |
| | | PbillNo = query.billNo, |
| | | ItemId = blDetail.Bld012, |
| | | DepotId = stockBarcode.DepotId.ToString(), |
| | | ItemDabid = blDetail.Id, |
| | | ItemDabid = blDetail.Id |
| | | //AboutGuid = womdab.Id |
| | | // Unit = blDetail.Bld009, |
| | | // DepotId = (int)stockBarcode.DepotsId |
| | |
| | | |
| | | // 创建 插入日志 |
| | | var logService = new LogService(); |
| | | var LogMsg = "[PDA]"+query.Type + "。条码【" +query.barcode+"】 数量【"+ stockBarcode.Quantity.ToString() + "】 出库单号【"+ outNo +"】"; |
| | | logService.CreateLog(db,query.userName,wwgd.Id.ToString(), "WW_GD", LogMsg,wwgd.Daa001); |
| | | var LogMsg = "[PDA]" + query.Type + "。条码【" + query.barcode + |
| | | "】 数量【" + stockBarcode.Quantity + "】 出库单号【" + outNo + |
| | | "】"; |
| | | logService.CreateLog(db, query.userName, wwgd.Id.ToString(), |
| | | "WW_GD", LogMsg, wwgd.Daa001); |
| | | |
| | | return 1; |
| | | }); |
| | | |
| | | // 获取最终的待发料明细列表 |
| | | var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( |
| | | (a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | var finalPendingList = Db |
| | | .Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | .Where((a, b) => a.BlNo == query.blNo |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | .Select((a, b) => new MesItemBlDetail |