/// <summary> /// 提交 /// </summary> /// <param name="rowsKeyValues"></param> /// <param name="loginUser"></param> /// <returns></returns> public bool SubmitInfos(List <string> rowsKeyValues, string loginUser) { ///状态必须已创建 List <PackageInboundInfo> info = dal.GetList("[ID] IN (" + string.Join(",", rowsKeyValues) + ")", string.Empty); if (info.Count == 0) { throw new Exception("MC:0x00000084");///数据有误 } string sql = string.Empty; List <PackageInboundDetailInfo> inboundDetailInfos = new PackageInboundDetailDAL().GetList(" [ORDER_FID] IN ('" + string.Join("','", info.Select(d => d.Fid).ToArray()) + "')", string.Empty); List <PackageApplianceInfo> PackageAppliance = new PackageApplianceDAL().GetList("[PACKAGE_NO] IN ('" + string.Join("','", inboundDetailInfos.Select(d => d.PackageModel).ToArray()) + "')", string.Empty); List <PartsStockInfo> partsStocks = new PartsStockDAL().GetList("[INBOUND_PACKAGE_MODEL] IN ('" + string.Join("','", inboundDetailInfos.Select(d => d.PackageModel).ToArray()) + "')", string.Empty); foreach (var item in info) { if (item == null) { throw new Exception("MC:0x00000084");///数据有误 } if (item.Status != (int)PackageInboundStatusConstants.Created) { throw new Exception("MC:0x00000128");///状态为10.已创建时可以进行提交,更新状态为20.已提交 } List <PackageInboundDetailInfo> packageInboundDetails = inboundDetailInfos.Where(d => d.OrderFid == item.Fid).ToList(); sql += "update [LES].[TT_PCM_PACKAGE_INBOUND] set [STATUS] = " + (int)PackageInboundStatusConstants.Published + " where [ID] = " + item.Id + ";"; ///根据器具入库单明细生成包装器具交易记录 foreach (var items in packageInboundDetails) { string packageCname = string.Empty; PackageApplianceInfo infos = PackageAppliance.FirstOrDefault(d => d.PackageNo == items.PackageModel); if (infos == null) { packageCname = "NULL"; } else { packageCname = infos.PackageCname; } PartsStockInfo stockInfo = partsStocks.FirstOrDefault(d => d.InboundPackageModel == items.PackageModel); string inboundPackage = string.Empty; if (stockInfo == null) { inboundPackage = "NULL"; } else { inboundPackage = stockInfo.InboundPackage.ToString(); } sql += "insert into [LES].[TT_PCM_PACKAGE_TRAN_DETAIL] ([FID],[PLANT],[TRAN_NO],[TRAN_TYPE],[PACKAGE_CNAME],[PACKAGE],[SUPPLIER_NUM],[PACKAGE_NO],[WM_NO],[ZONE_NO],[DLOC],[TARGET_WM],[TARGET_ZONE],[TARGET_DLOC],[PACKAGE_QTY],[STATUS],[COMMENTS],[VALID_FLAG],[CREATE_USER],[CREATE_DATE])" + "VALUES(newid()," + "N'" + item.Plant + "'," + "N'" + item.OrderNo + "'," + (int)PackageTranTypeConstants.EmptyInbound + "," + "N'" + packageCname + "'," + inboundPackage + "," + "N'" + items.SupplierNum + "'," + "N'" + items.PackageModel + "'," + "N'" + items.SWmNo + "'," + "N'" + items.SZoneNo + "'," + "N'" + items.SDloc + "'," + "N'" + items.TWmNo + "'," + "N'" + items.TZoneNo + "'," + "N'" + items.TDloc + "'," + "N'" + items.PackageQty + "'," + "N'" + items.PackageStatus + "'," + "N'" + items.Comments + "'," + "1," + "N'" + loginUser + "'," + "GETDATE()" + ");"; } } using (TransactionScope trans = new TransactionScope()) { CommonDAL.ExecuteNonQueryBySql(sql); trans.Complete(); } return(true); }