using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Runtime.Remoting.Messaging; using System.Web.Http; using WebAPI.Helpers; namespace WebAPI.Controllers { public class MaterialEntranceAndExitController : ApiController { //private string _connectionString = "Server=LAPTOP-J0FS0EFI;Database=pmms03;User Id=sa;Password=123456;"; private string _connectionString = "Server=47.104.102.122,14333;Database=pmms03;User Id=sa;Password=p@ssw0rd;"; //扫二维码接口获取材料明细 public Model.ResponeData GetMaterialsBySystemCode(string ProjectId,string SystemCode) { var responeData = new Model.ResponeData(); // 创建Material对象并赋值 Material material = new Material(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = "SELECT TOP 1 * FROM [dbo].[CL_B_Material] where 1=1"; using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection)) { if (!string.IsNullOrEmpty(ProjectId)) { // 如果ProjectId有值,则添加WHERE子句 sqlCommand.CommandText += " and ProjectId = @ProjectId"; sqlCommand.Parameters.AddWithValue("@ProjectId", ProjectId); } if (!string.IsNullOrEmpty(SystemCode)) { // 如果ProjectId有值,则添加WHERE子句 sqlCommand.CommandText += " and SystemCode = @SystemCode"; sqlCommand.Parameters.AddWithValue("@SystemCode", SystemCode); } using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader()) { while (sqlDataReader.Read()) { if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("MaterialID"))) { material.MaterialID = sqlDataReader.GetString(sqlDataReader.GetOrdinal("MaterialID")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("ProjectId"))) { material.ProjectId = sqlDataReader.GetString(sqlDataReader.GetOrdinal("ProjectId")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("SystemCode"))) { material.SystemCode = sqlDataReader.GetString(sqlDataReader.GetOrdinal("SystemCode")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("TechnicalConditions"))) { material.TechnicalConditions = sqlDataReader.GetString(sqlDataReader.GetOrdinal("TechnicalConditions")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("Unit"))) { material.Unit = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Unit")); } // 检查并获取MaterialName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("MaterialName"))) { material.MaterialName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("MaterialName")); } // 检查并获取Specificationtype字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("Specificationtype"))) { material.Specificationtype = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Specificationtype")); } // 检查并获取StandardSpecification字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("StandardSpecification"))) { material.StandardSpecification = sqlDataReader.GetString(sqlDataReader.GetOrdinal("StandardSpecification")); } // 检查并获取MaterialQuality字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("MaterialQuality"))) { material.MaterialQuality = sqlDataReader.GetString(sqlDataReader.GetOrdinal("MaterialQuality")); } // 检查并获取SpecialNote字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("SpecialNote"))) { material.SpecialNote = sqlDataReader.GetString(sqlDataReader.GetOrdinal("SpecialNote")); } // 检查并获取FirstpartyCode字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("FirstpartyCode"))) { material.FirstpartyCode = sqlDataReader.GetString(sqlDataReader.GetOrdinal("FirstpartyCode")); } // 检查并获取TheoryWeight字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("TheoryWeight"))) { material.TheoryWeight = sqlDataReader.GetDecimal(sqlDataReader.GetOrdinal("TheoryWeight")); } // 检查并获取SCName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("SCName"))) { material.SCName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("SCName")); } // 检查并获取IsCheck字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("IsCheck"))) { material.IsCheck = sqlDataReader.GetString(sqlDataReader.GetOrdinal("IsCheck"))[0]; // 假设IsCheck是char(1)类型,取第一个字符 } // 检查并获取NDTName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("NDTName"))) { material.NDTName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("NDTName")); } // 检查并获取NDTRName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("NDTRName"))) { material.NDTRName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("NDTRName")); } // 检查并获取RecordTableOptions字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("RecordTableOptions"))) { material.RecordTableOptions = sqlDataReader.GetString(sqlDataReader.GetOrdinal("RecordTableOptions")); } // 检查并获取ListType字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("ListType"))) { material.ListType = sqlDataReader.GetString(sqlDataReader.GetOrdinal("ListType")); } // 检查并获取TypeName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("TypeName"))) { material.TypeName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("TypeName")); } // 检查并获取SumTypeName字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("SumTypeName"))) { material.SumTypeName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("SumTypeName")); } // 检查并获取Spec字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("Spec"))) { material.Spec = sqlDataReader.GetString(sqlDataReader.GetOrdinal("Spec")); } // 检查并获取ISupload字段的值 if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("ISupload"))) { material.ISupload = sqlDataReader.GetString(sqlDataReader.GetOrdinal("ISupload"))[0]; // 假设ISupload是char(1)类型,取第一个字符 } } } } } } responeData.data = material; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } //新增入库主表 [HttpPost] public Model.ResponeData AddMaterialStorageM([FromBody] MaterialStorageM materialStorage) { var responeData = new Model.ResponeData(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = @" INSERT INTO [dbo].[Cl_W_MaterialStorageM] ( [ProjectId], [StorageSheetMID], [StorageSheetCode], [UserId], [UserTime], [Approval], [OutInMark], [IsOk], [acceptman], [accepttime], [APid], [UPid], [bj_weight], [bj_sp], [bj_pm], [bj_im], [bj_wt], [bj_ys], [bj_sb], [bj_cl], [bj_fy], [bj_zllr], [Specialityid], [InstallationId], [ISupload], [bj_uir], [YYPID] ) VALUES ( @ProjectId, @StorageSheetMID, @StorageSheetCode, @UserId, @UserTime, @Approval, @OutInMark, @IsOk, @acceptman, @accepttime, @APid, @UPid, @bj_weight, @bj_sp, @bj_pm, @bj_im, @bj_wt, @bj_ys, @bj_sb, @bj_cl, @bj_fy, @bj_zllr, @Specialityid, @InstallationId, @ISupload, @bj_uir, @YYPID )"; using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection)) { // 添加参数并赋值 sqlCommand.Parameters.AddWithValue("@ProjectId", materialStorage.ProjectId ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@StorageSheetMID", materialStorage.StorageSheetMID); sqlCommand.Parameters.AddWithValue("@StorageSheetCode", materialStorage.StorageSheetCode ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@UserId", materialStorage.UserId ?? (object)DBNull.Value); if (materialStorage.UserTime.HasValue) { sqlCommand.Parameters.AddWithValue("@UserTime", materialStorage.UserTime.Value); } else { sqlCommand.Parameters.AddWithValue("@UserTime", DateTime.Now); } sqlCommand.Parameters.AddWithValue("@Approval", materialStorage.Approval ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@OutInMark", materialStorage.OutInMark ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IsOk", "1"); sqlCommand.Parameters.AddWithValue("@acceptman", materialStorage.acceptman ?? (object)DBNull.Value); if (materialStorage.accepttime.HasValue) { sqlCommand.Parameters.AddWithValue("@accepttime", materialStorage.accepttime.Value); } else { sqlCommand.Parameters.AddWithValue("@accepttime", DBNull.Value); } sqlCommand.Parameters.AddWithValue("@APid", materialStorage.APid ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@UPid", materialStorage.UPid ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_weight", materialStorage.bj_weight ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_sp", materialStorage.bj_sp ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_pm", materialStorage.bj_pm ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_im", materialStorage.bj_im ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_wt", materialStorage.bj_wt ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_ys", materialStorage.bj_ys ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_sb", materialStorage.bj_sb ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_cl", materialStorage.bj_cl ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_fy", materialStorage.bj_fy ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_zllr", materialStorage.bj_zllr ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Specialityid", materialStorage.Specialityid ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@InstallationId", materialStorage.InstallationId ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ISupload", materialStorage.ISupload ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bj_uir", materialStorage.bj_uir ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@YYPID", materialStorage.YYPID ?? (object)DBNull.Value); // 执行插入操作 sqlCommand.ExecuteNonQuery(); } } } responeData.code = 1; responeData.message = "MaterialStorageM added successfully."; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } //新增入库明细表 [HttpPost] public Model.ResponeData AddMaterialStorageS([FromBody] MaterialStorageS materialStorageS) { var responeData = new Model.ResponeData(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = @" INSERT INTO [dbo].[Cl_W_MaterialStorageS] ( [ProjectId], [StorageSheetMID], [StorageSheetSID], [MaterialID], [Soft], [StorehouseName], [StorageQuantity], [Manufacturer], [TheoryWeight], [ActualWeight], [OutStockProof], [OutStockPrice], [SupplyChannel], [NeedMeters], [TheoryWeightT], [ActualMeters], [ActualWeight2], [WDRemarks], [CertificatesFactoryNo], [FurnaceBatchNo], [Warranty], [RecordTableOptions], [RecordTableExport], [ListType], [IsCheck], [ExportEntrustmentForm], [ReexaminationReportNo], [EmergencyReleaseNo], [AcceptanceResult], [CertificateNo], [TypeName], [SumTypeName], [SP_MaterialQualityNO], [SP_Thickness1], [SP_Thickness2], [SP_Thickness3], [SP_Thickness4], [SP_PipeDiameterIn], [SP_PipeDiameterOut], [SP_Length], [SP_Remarks], [PM_ContractNo], [PM_PipeDiameterOut], [PM_PipeDiameterIn], [PM_Thickness], [PM_Other], [PM_Appearance], [IM_SizeDeviation], [IM_OtherDeviation], [IM_Appearance], [IM_OtherCheck], [CheckMan], [CheckDate], [LiableMan], [Liabledate], [ME_NDTName], [ME_NDTStandard], [ME_NDTRName], [ME_QualifiedRequirement], [ME_CheckThingNO], [ME_HeatStatus], [ME_EntrustUnit], [ME_EntrustMan], [ME_EntrustDate], [ME_TestingUnit], [ME_TestingMan], [ME_TestingDate], [Isa_Unit], [Isa_soft], [Isa_Accept], [Isa_Mutilation], [Isa_DeliveryMan], [Isa_CheckMan], [Isa_Remarks], [Isa_RecordMan], [Isa_RecordDate], [PStCode], [SystemCode], [Wmaterialname], [Wspecificationtype], [Wstandardspecification], [WMaterialQuality], [Isa_hege], [W_lydw], [ISupload], [uir_tag], [uir_contractno], [uir_boxnum], [uir_boxcode], [uir_boxsheet], [shue], [bhsje] ) VALUES ( @ProjectId, @StorageSheetMID, @StorageSheetSID, @MaterialID, @Soft, @StorehouseName, @StorageQuantity, @Manufacturer, @TheoryWeight, @ActualWeight, @OutStockProof, @OutStockPrice, @SupplyChannel, @NeedMeters, @TheoryWeightT, @ActualMeters, @ActualWeight2, @WDRemarks, @CertificatesFactoryNo, @FurnaceBatchNo, @Warranty, @RecordTableOptions, @RecordTableExport, @ListType, @IsCheck, @ExportEntrustmentForm, @ReexaminationReportNo, @EmergencyReleaseNo, @AcceptanceResult, @CertificateNo, @TypeName, @SumTypeName, @SP_MaterialQualityNO, @SP_Thickness1, @SP_Thickness2, @SP_Thickness3, @SP_Thickness4, @SP_PipeDiameterIn, @SP_PipeDiameterOut, @SP_Length, @SP_Remarks, @PM_ContractNo, @PM_PipeDiameterOut, @PM_PipeDiameterIn, @PM_Thickness, @PM_Other, @PM_Appearance, @IM_SizeDeviation, @IM_OtherDeviation, @IM_Appearance, @IM_OtherCheck, @CheckMan, @CheckDate, @LiableMan, @Liabledate, @ME_NDTName, @ME_NDTStandard, @ME_NDTRName, @ME_QualifiedRequirement, @ME_CheckThingNO, @ME_HeatStatus, @ME_EntrustUnit, @ME_EntrustMan, @ME_EntrustDate, @ME_TestingUnit, @ME_TestingMan, @ME_TestingDate, @Isa_Unit, @Isa_soft, @Isa_Accept, @Isa_Mutilation, @Isa_DeliveryMan, @Isa_CheckMan, @Isa_Remarks, @Isa_RecordMan, @Isa_RecordDate, @PStCode, @SystemCode, @Wmaterialname, @Wspecificationtype, @Wstandardspecification, @WMaterialQuality, @Isa_hege, @W_lydw, @ISupload, @uir_tag, @uir_contractno, @uir_boxnum, @uir_boxcode, @uir_boxsheet, @shue, @bhsje )"; using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection)) { // 添加参数并赋值(示例,实际需根据materialStorageS对象属性来赋值) sqlCommand.Parameters.AddWithValue("@ProjectId", materialStorageS.ProjectId ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@StorageSheetMID", materialStorageS.StorageSheetMID ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@StorageSheetSID", Guid.NewGuid().ToString()); sqlCommand.Parameters.AddWithValue("@MaterialID", materialStorageS.MaterialID ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Soft", materialStorageS.Soft ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@StorehouseName", materialStorageS.StorehouseName ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@StorageQuantity", materialStorageS.StorageQuantity ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Manufacturer", materialStorageS.Manufacturer ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@TheoryWeight", materialStorageS.TheoryWeight ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ActualWeight", materialStorageS.ActualWeight ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@OutStockProof", materialStorageS.OutStockProof ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@OutStockPrice", materialStorageS.OutStockPrice ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SupplyChannel", materialStorageS.SupplyChannel ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@NeedMeters", materialStorageS.NeedMeters ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@TheoryWeightT", materialStorageS.TheoryWeightT ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ActualMeters", materialStorageS.ActualMeters ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ActualWeight2", materialStorageS.ActualWeight2 ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@WDRemarks", materialStorageS.WDRemarks ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@CertificatesFactoryNo", materialStorageS.CertificatesFactoryNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@FurnaceBatchNo", materialStorageS.FurnaceBatchNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Warranty", materialStorageS.Warranty ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@RecordTableOptions", materialStorageS.RecordTableOptions ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@RecordTableExport", materialStorageS.RecordTableExport ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ListType", materialStorageS.ListType ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IsCheck", materialStorageS.IsCheck ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ExportEntrustmentForm", materialStorageS.ExportEntrustmentForm ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ReexaminationReportNo", materialStorageS.ReexaminationReportNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@EmergencyReleaseNo", materialStorageS.EmergencyReleaseNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@AcceptanceResult", materialStorageS.AcceptanceResult ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@CertificateNo", materialStorageS.CertificateNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@TypeName", materialStorageS.TypeName ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SumTypeName", materialStorageS.SumTypeName ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_MaterialQualityNO", materialStorageS.SP_MaterialQualityNO ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Thickness1", materialStorageS.SP_Thickness1 ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Thickness2", materialStorageS.SP_Thickness2 ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Thickness3", materialStorageS.SP_Thickness3 ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Thickness4", materialStorageS.SP_Thickness4 ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_PipeDiameterIn", materialStorageS.SP_PipeDiameterIn ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_PipeDiameterOut", materialStorageS.SP_PipeDiameterOut ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Length", materialStorageS.SP_Length ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SP_Remarks", materialStorageS.SP_Remarks ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_ContractNo", materialStorageS.PM_ContractNo ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_PipeDiameterOut", materialStorageS.PM_PipeDiameterOut ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_PipeDiameterIn", materialStorageS.PM_PipeDiameterIn ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_Thickness", materialStorageS.PM_Thickness ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_Other", materialStorageS.PM_Other ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@PM_Appearance", materialStorageS.PM_Appearance ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IM_SizeDeviation", materialStorageS.IM_SizeDeviation ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IM_OtherDeviation", materialStorageS.IM_OtherDeviation ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IM_Appearance", materialStorageS.IM_Appearance ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@IM_OtherCheck", materialStorageS.IM_OtherCheck ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@CheckMan", materialStorageS.CheckMan ?? (object)DBNull.Value); // 对于可空日期字段,需要进行空值检查 if (materialStorageS.CheckDate.HasValue) { sqlCommand.Parameters.AddWithValue("@CheckDate", materialStorageS.CheckDate.Value); } else { sqlCommand.Parameters.AddWithValue("@CheckDate", DateTime.Now); } // 类似地处理其他可空日期字段... sqlCommand.Parameters.AddWithValue("@LiableMan", materialStorageS.LiableMan ?? (object)DBNull.Value); if (materialStorageS.Liabledate.HasValue) { sqlCommand.Parameters.AddWithValue("@Liabledate", materialStorageS.Liabledate.Value); } else { sqlCommand.Parameters.AddWithValue("@Liabledate", DBNull.Value); } sqlCommand.Parameters.AddWithValue("@ME_NDTName", materialStorageS.ME_NDTName ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_NDTStandard", materialStorageS.ME_NDTStandard ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_NDTRName", materialStorageS.ME_NDTRName ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_QualifiedRequirement", materialStorageS.ME_QualifiedRequirement ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_CheckThingNO", materialStorageS.ME_CheckThingNO ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_HeatStatus", materialStorageS.ME_HeatStatus ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_EntrustUnit", materialStorageS.ME_EntrustUnit ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_EntrustMan", materialStorageS.ME_EntrustMan ?? (object)DBNull.Value); // 对于可空日期字段,需要进行空值检查 if (materialStorageS.ME_EntrustDate.HasValue) { sqlCommand.Parameters.AddWithValue("@ME_EntrustDate", materialStorageS.ME_EntrustDate.Value); } else { sqlCommand.Parameters.AddWithValue("@ME_EntrustDate", DBNull.Value); } sqlCommand.Parameters.AddWithValue("@ME_TestingUnit", materialStorageS.ME_TestingUnit ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ME_TestingMan", materialStorageS.ME_TestingMan ?? (object)DBNull.Value); if (materialStorageS.ME_TestingDate.HasValue) { sqlCommand.Parameters.AddWithValue("@ME_TestingDate", materialStorageS.ME_TestingDate.Value); } else { sqlCommand.Parameters.AddWithValue("@ME_TestingDate", DBNull.Value); } sqlCommand.Parameters.AddWithValue("@Isa_Unit", materialStorageS.Isa_Unit ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_soft", materialStorageS.Isa_soft ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_Accept", materialStorageS.Isa_Accept ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_Mutilation", materialStorageS.Isa_Mutilation ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_DeliveryMan", materialStorageS.Isa_DeliveryMan ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_CheckMan", materialStorageS.Isa_CheckMan ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_Remarks", materialStorageS.Isa_Remarks ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_RecordMan", materialStorageS.Isa_RecordMan ?? (object)DBNull.Value); if (materialStorageS.Isa_RecordDate.HasValue) { sqlCommand.Parameters.AddWithValue("@Isa_RecordDate", materialStorageS.Isa_RecordDate.Value); } else { sqlCommand.Parameters.AddWithValue("@Isa_RecordDate", DBNull.Value); } sqlCommand.Parameters.AddWithValue("@PStCode", materialStorageS.PStCode ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@SystemCode", materialStorageS.SystemCode ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Wmaterialname", materialStorageS.Wmaterialname ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Wspecificationtype", materialStorageS.Wspecificationtype ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Wstandardspecification", materialStorageS.Wstandardspecification ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@WMaterialQuality", materialStorageS.WMaterialQuality ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@Isa_hege", materialStorageS.Isa_hege ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@W_lydw", materialStorageS.W_lydw ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@ISupload", materialStorageS.ISupload ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@uir_tag", materialStorageS.uir_tag ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@uir_contractno", materialStorageS.uir_contractno ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@uir_boxnum", materialStorageS.uir_boxnum ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@uir_boxcode", materialStorageS.uir_boxcode ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@uir_boxsheet", materialStorageS.uir_boxsheet ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@shue", materialStorageS.shue ?? (object)DBNull.Value); sqlCommand.Parameters.AddWithValue("@bhsje", materialStorageS.bhsje ?? (object)DBNull.Value); // last_modified 字段通常是自动生成的,这里赋值为 NULL //sqlCommand.Parameters.AddWithValue("@last_modified", DBNull.Value); // 执行插入操作 sqlCommand.ExecuteNonQuery(); } } } responeData.code = 1; responeData.message = "MaterialStorageS added successfully."; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } //新增出库主表 [HttpPost] public Model.ResponeData AddMaterialOutM([FromBody] MaterialOutM materialOutM) { var responeData = new Model.ResponeData(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = @" INSERT INTO [dbo].[Cl_W_MaterialOutM] ( [ProjectId], [PlanSheetMID], [UnitId], [OutSheetMID], [OutSheetCode], [RecordMan], [UserTime], [ApprovalMan], [ApprovalTime], [OkMan], [OkTime], [IsOk], [LC_ApprovalMan], [LC_OkMan], [StorageSheetMID], [ISupload], [UAid], [PC_GUID], [InstallationId], [Remarks], [YYPID] ) VALUES ( @ProjectId, @PlanSheetMID, @UnitId, @OutSheetMID, @OutSheetCode, @RecordMan, @UserTime, @ApprovalMan, @ApprovalTime, @OkMan, @OkTime, @IsOk, @LC_ApprovalMan, @LC_OkMan, @StorageSheetMID, @ISupload, @UAid, @PC_GUID, @InstallationId, @Remarks, @YYPID )"; using (SqlCommand command = new SqlCommand(sql, sqlConnection)) { // 添加参数并赋值 command.Parameters.AddWithValue("@ProjectId", materialOutM.ProjectId ?? (object)DBNull.Value); command.Parameters.AddWithValue("@PlanSheetMID", materialOutM.PlanSheetMID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@UnitId", materialOutM.UnitId ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutSheetMID", materialOutM.OutSheetMID); command.Parameters.AddWithValue("@OutSheetCode", materialOutM.OutSheetCode ?? (object)DBNull.Value); command.Parameters.AddWithValue("@RecordMan", materialOutM.RecordMan ?? (object)DBNull.Value); if (materialOutM.UserTime.HasValue) { command.Parameters.AddWithValue("@UserTime", materialOutM.UserTime.Value); } else { command.Parameters.AddWithValue("@UserTime", DateTime.Now); } command.Parameters.AddWithValue("@ApprovalMan", materialOutM.ApprovalMan ?? (object)DBNull.Value); command.Parameters.AddWithValue("@ApprovalTime", materialOutM.ApprovalTime ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OkMan", materialOutM.OkMan ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OkTime", materialOutM.OkTime ?? (object)DBNull.Value); command.Parameters.AddWithValue("@IsOk", "1"); command.Parameters.AddWithValue("@LC_ApprovalMan", materialOutM.LC_ApprovalMan ?? (object)DBNull.Value); command.Parameters.AddWithValue("@LC_OkMan", materialOutM.LC_OkMan ?? (object)DBNull.Value); command.Parameters.AddWithValue("@StorageSheetMID", materialOutM.StorageSheetMID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@ISupload", materialOutM.ISupload ?? (object)DBNull.Value); command.Parameters.AddWithValue("@UAid", materialOutM.UAid ?? (object)DBNull.Value); command.Parameters.AddWithValue("@PC_GUID", materialOutM.PC_GUID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@InstallationId", materialOutM.InstallationId ?? (object)DBNull.Value); command.Parameters.AddWithValue("@Remarks", materialOutM.Remarks ?? (object)DBNull.Value); command.Parameters.AddWithValue("@YYPID", materialOutM.YYPID ?? (object)DBNull.Value); // 执行插入操作 command.ExecuteNonQuery(); } } } responeData.code = 1; responeData.message = "MaterialOutM added successfully."; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } //新增出库明细表 [HttpPost] public Model.ResponeData AddMaterialOutS([FromBody] MaterialOutS materialOutS) { var responeData = new Model.ResponeData(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = @" INSERT INTO [dbo].[Cl_W_MaterialOutS] ( [ProjectId], [OutSheetMID], [OutSheetSID], [MaterialID], [Soft], [PlannedQuantity], [StoreQuantity], [OutQuantity], [OutQuantityY], [StorePQuantity], [CertificatesFactoryNo], [FurnaceBatchNo], [CertificateSelfNo], [Weight], [Price], [OutQuantityP], [OutQuantityO], [StorehouseName], [StorageSheetSID], [FirstpartyCode], [ISupload], [InstallationId], [shue], [bhsje] ) VALUES ( @ProjectId, @OutSheetMID, @OutSheetSID, @MaterialID, @Soft, @PlannedQuantity, @StoreQuantity, @OutQuantity, @OutQuantityY, @StorePQuantity, @CertificatesFactoryNo, @FurnaceBatchNo, @CertificateSelfNo, @Weight, @Price, @OutQuantityP, @OutQuantityO, @StorehouseName, @StorageSheetSID, @FirstpartyCode, @ISupload, @InstallationId, @shue, @bhsje )"; using (SqlCommand command = new SqlCommand(sql, sqlConnection)) { // 添加参数并赋值 command.Parameters.AddWithValue("@ProjectId", materialOutS.ProjectId ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutSheetMID", materialOutS.OutSheetMID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutSheetSID", Guid.NewGuid().ToString()); command.Parameters.AddWithValue("@MaterialID", materialOutS.MaterialID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@Soft", materialOutS.Soft ?? (object)DBNull.Value); command.Parameters.AddWithValue("@PlannedQuantity", materialOutS.PlannedQuantity ?? (object)DBNull.Value); command.Parameters.AddWithValue("@StoreQuantity", materialOutS.StoreQuantity ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutQuantity", materialOutS.OutQuantity ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutQuantityY", materialOutS.OutQuantityY ?? (object)DBNull.Value); command.Parameters.AddWithValue("@StorePQuantity", materialOutS.StorePQuantity ?? (object)DBNull.Value); command.Parameters.AddWithValue("@CertificatesFactoryNo", materialOutS.CertificatesFactoryNo ?? (object)DBNull.Value); command.Parameters.AddWithValue("@FurnaceBatchNo", materialOutS.FurnaceBatchNo ?? (object)DBNull.Value); command.Parameters.AddWithValue("@CertificateSelfNo", materialOutS.CertificateSelfNo ?? (object)DBNull.Value); command.Parameters.AddWithValue("@Weight", materialOutS.Weight ?? (object)DBNull.Value); command.Parameters.AddWithValue("@Price", materialOutS.Price ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutQuantityP", materialOutS.OutQuantityP ?? (object)DBNull.Value); command.Parameters.AddWithValue("@OutQuantityO", materialOutS.OutQuantityO ?? (object)DBNull.Value); command.Parameters.AddWithValue("@StorehouseName", materialOutS.StorehouseName ?? (object)DBNull.Value); command.Parameters.AddWithValue("@StorageSheetSID", materialOutS.StorageSheetSID ?? (object)DBNull.Value); command.Parameters.AddWithValue("@FirstpartyCode", materialOutS.FirstpartyCode ?? (object)DBNull.Value); command.Parameters.AddWithValue("@ISupload", materialOutS.ISupload ?? (object)DBNull.Value); command.Parameters.AddWithValue("@InstallationId", materialOutS.InstallationId ?? (object)DBNull.Value); command.Parameters.AddWithValue("@shue", materialOutS.shue ?? (object)DBNull.Value); command.Parameters.AddWithValue("@bhsje", materialOutS.bhsje ?? (object)DBNull.Value); // 执行插入操作 command.ExecuteNonQuery(); } } } responeData.code = 1; responeData.message = "MaterialOutS added successfully."; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } //获取单位unit列表 public Model.ResponeData GetUnitList() { var responeData = new Model.ResponeData(); List units = new List(); try { using (var dbHelper = new DatabaseHelper(_connectionString)) { using (SqlConnection sqlConnection = dbHelper.GetConnection()) { string sql = "SELECT UnitId,UnitCode,UnitName,ShortUnitName FROM [dbo].[Base_Unit]"; using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection)) { using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader()) { while (sqlDataReader.Read()) { Unit unit = new Unit(); if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("UnitId"))) { unit.UnitId = sqlDataReader.GetString(sqlDataReader.GetOrdinal("UnitId")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("UnitCode"))) { unit.UnitCode = sqlDataReader.GetString(sqlDataReader.GetOrdinal("UnitCode")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("UnitName"))) { unit.UnitName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("UnitName")); } if (!sqlDataReader.IsDBNull(sqlDataReader.GetOrdinal("ShortUnitName"))) { unit.ShortUnitName = sqlDataReader.GetString(sqlDataReader.GetOrdinal("ShortUnitName")); } units.Add(unit); } } } } } responeData.data = units; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } } // 定义一个材料类来表示查询结果 public class Material { // MaterialID为char(36)类型,且不可为空 public string MaterialID { get; set; } // ProjectId为nvarchar(50)类型,可为空 public string ProjectId { get; set; } // SystemCode为nvarchar(50)类型,可为空 public string SystemCode { get; set; } // TechnicalConditions为nvarchar(1000)类型,可为空 public string TechnicalConditions { get; set; } // Unit为nvarchar(50)类型,可为空 public string Unit { get; set; } // MaterialName为nvarchar(500)类型,可为空 public string MaterialName { get; set; } // Specificationtype为nvarchar(500)类型,可为空 public string Specificationtype { get; set; } // StandardSpecification为nvarchar(500)类型,可为空 public string StandardSpecification { get; set; } // MaterialQuality为nvarchar(500)类型,可为空 public string MaterialQuality { get; set; } // SpecialNote为nvarchar(50)类型,可为空 public string SpecialNote { get; set; } // FirstpartyCode为nvarchar(20)类型,可为空 public string FirstpartyCode { get; set; } // TheoryWeight为decimal(10,4)类型,可为空 public decimal? TheoryWeight { get; set; } // SCName为nvarchar(20)类型,可为空 public string SCName { get; set; } // IsCheck为char(1)类型,可为空。考虑到可能存储的是'Y'/'N'或'1'/'0'等,建议使用字符类型。 public char? IsCheck { get; set; } // NDTName为nvarchar(20)类型,可为空 public string NDTName { get; set; } // NDTRName为nvarchar(20)类型,可为空 public string NDTRName { get; set; } // RecordTableOptions为nvarchar(100)类型,可为空 public string RecordTableOptions { get; set; } // ListType为nvarchar(20)类型,可为空 public string ListType { get; set; } // TypeName为nvarchar(20)类型,可为空 public string TypeName { get; set; } // SumTypeName为nvarchar(20)类型,可为空 public string SumTypeName { get; set; } // Spec为nvarchar(50)类型,可为空 public string Spec { get; set; } // last_modified为timestamp类型,通常不需要在C#对象中显式表示 //public byte[] last_modified { get; set; } // 如需处理并发,请考虑其他方式,如ETag等 // ISupload为char(1)类型,可为空。字段名中的"IS"应改为小写的"is"以符合C#命名规范,但为保持一致性,这里保留原样。 public char? ISupload { get; set; } } //入库主表 public class MaterialStorageM { public string ProjectId { get; set; } public string StorageSheetMID { get; set; } public string StorageSheetCode { get; set; } public string UserId { get; set; } public DateTime? UserTime { get; set; } public char? Approval { get; set; } public char? OutInMark { get; set; } public char? IsOk { get; set; } public string acceptman { get; set; } public DateTime? accepttime { get; set; } public string APid { get; set; } public string UPid { get; set; } public char? bj_weight { get; set; } public char? bj_sp { get; set; } public char? bj_pm { get; set; } public char? bj_im { get; set; } public char? bj_wt { get; set; } public char? bj_ys { get; set; } public char? bj_sb { get; set; } public char? bj_cl { get; set; } public char? bj_fy { get; set; } public char? bj_zllr { get; set; } public string Specialityid { get; set; } public string InstallationId { get; set; } public byte[] last_modified { get; set; } // timestamp类型通常对应byte[] public char? ISupload { get; set; } public char? bj_uir { get; set; } public string YYPID { get; set; } } //入库明细表 public class MaterialStorageS { // 基本信息字段 public string ProjectId { get; set; } public string StorageSheetMID { get; set; } public string StorageSheetSID { get; set; } public string MaterialID { get; set; } public int? Soft { get; set; } public string StorehouseName { get; set; } public decimal? StorageQuantity { get; set; } public string Manufacturer { get; set; } // 重量与尺寸相关字段 public decimal? TheoryWeight { get; set; } public decimal? ActualWeight { get; set; } public decimal? TheoryWeightT { get; set; } public decimal? ActualWeight2 { get; set; } public decimal? NeedMeters { get; set; } public decimal? ActualMeters { get; set; } // 出库与价格相关字段 public string OutStockProof { get; set; } public decimal? OutStockPrice { get; set; } public string SupplyChannel { get; set; } // 质量与检测相关字段 public string CertificatesFactoryNo { get; set; } public string FurnaceBatchNo { get; set; } public decimal? Warranty { get; set; } public string RecordTableOptions { get; set; } public string RecordTableExport { get; set; } public string ListType { get; set; } public char? IsCheck { get; set; } public string ExportEntrustmentForm { get; set; } public string ReexaminationReportNo { get; set; } public string EmergencyReleaseNo { get; set; } public string AcceptanceResult { get; set; } public string CertificateNo { get; set; } // 管道与材料特性字段 public string TypeName { get; set; } public string SumTypeName { get; set; } public string SP_MaterialQualityNO { get; set; } public string SP_Thickness1 { get; set; } public string SP_Thickness2 { get; set; } public string SP_Thickness3 { get; set; } public string SP_Thickness4 { get; set; } public string SP_PipeDiameterIn { get; set; } public string SP_PipeDiameterOut { get; set; } public string SP_Length { get; set; } // 其他特性与备注字段 public string WDRemarks { get; set; } public string SP_Remarks { get; set; } // 采购与合同相关字段 public string PM_ContractNo { get; set; } public string PM_PipeDiameterOut { get; set; } public string PM_PipeDiameterIn { get; set; } public string PM_Thickness { get; set; } public string PM_Other { get; set; } public string PM_Appearance { get; set; } // 检测与测量字段 public string IM_SizeDeviation { get; set; } public string IM_OtherDeviation { get; set; } public string IM_Appearance { get; set; } public string IM_OtherCheck { get; set; } // 人员与日期字段 public string CheckMan { get; set; } public DateTime? CheckDate { get; set; } public string LiableMan { get; set; } public DateTime? Liabledate { get; set; } // 无损检测相关字段 public string ME_NDTName { get; set; } public string ME_NDTStandard { get; set; } public string ME_NDTRName { get; set; } public string ME_QualifiedRequirement { get; set; } public string ME_CheckThingNO { get; set; } public string ME_HeatStatus { get; set; } public string ME_EntrustUnit { get; set; } public string ME_EntrustMan { get; set; } public DateTime? ME_EntrustDate { get; set; } public string ME_TestingUnit { get; set; } public string ME_TestingMan { get; set; } public DateTime? ME_TestingDate { get; set; } // 其他杂项字段 public string Isa_Unit { get; set; } public string Isa_soft { get; set; } public string Isa_Accept { get; set; } public string Isa_Mutilation { get; set; } public string Isa_DeliveryMan { get; set; } public string Isa_CheckMan { get; set; } public string Isa_Remarks { get; set; } public string Isa_RecordMan { get; set; } public DateTime? Isa_RecordDate { get; set; } public string Isa_hege { get; set; } // 系统与编码字段 public string PStCode { get; set; } public string SystemCode { get; set; } public string Wmaterialname { get; set; } public string Wspecificationtype { get; set; } public string Wstandardspecification { get; set; } public string WMaterialQuality { get; set; } // 供应商与单位字段 public string W_lydw { get; set; } // 上传与标识字段 public char? ISupload { get; set; } public string uir_tag { get; set; } public string uir_contractno { get; set; } public string uir_boxnum { get; set; } public string uir_boxcode { get; set; } public string uir_boxsheet { get; set; } // 数量与金额字段 public decimal? shue { get; set; } public decimal? bhsje { get; set; } // 时间戳字段(通常不需要在实体类中显式包含) // public byte[] last_modified { get; set; } } //出库主表 public class MaterialOutM { public string ProjectId { get; set; } public string PlanSheetMID { get; set; } public string UnitId { get; set; } public string OutSheetMID { get; set; } public string OutSheetCode { get; set; } public string RecordMan { get; set; } public DateTime? UserTime { get; set; } public string ApprovalMan { get; set; } public DateTime? ApprovalTime { get; set; } public string OkMan { get; set; } public DateTime? OkTime { get; set; } public char? IsOk { get; set; } public string LC_ApprovalMan { get; set; } public string LC_OkMan { get; set; } public string StorageSheetMID { get; set; } public byte[] last_modified { get; set; } // timestamp 类型通常对应 byte[] public char? ISupload { get; set; } public string UAid { get; set; } public string PC_GUID { get; set; } public string InstallationId { get; set; } public string Remarks { get; set; } public string YYPID { get; set; } // 导航属性(如果有外键关联的话,这里可以添加对应的导航属性) // public BaseProject Project { get; set; } // public BaseUnit Unit { get; set; } } //出库明细表 public class MaterialOutS { public string ProjectId { get; set; } public string OutSheetMID { get; set; } public string OutSheetSID { get; set; } public string MaterialID { get; set; } public int? Soft { get; set; } public decimal? PlannedQuantity { get; set; } public decimal? StoreQuantity { get; set; } public decimal? OutQuantity { get; set; } public decimal? OutQuantityY { get; set; } public decimal? StorePQuantity { get; set; } public string CertificatesFactoryNo { get; set; } public string FurnaceBatchNo { get; set; } public string CertificateSelfNo { get; set; } public decimal? Weight { get; set; } public decimal? Price { get; set; } public decimal? OutQuantityP { get; set; } public decimal? OutQuantityO { get; set; } public string StorehouseName { get; set; } public string StorageSheetSID { get; set; } public string FirstpartyCode { get; set; } public byte[] last_modified { get; set; } // timestamp 类型通常对应 byte[] public char? ISupload { get; set; } public string InstallationId { get; set; } public decimal? shue { get; set; } public decimal? bhsje { get; set; } // 导航属性(如果有外键关联的话,这里可以添加对应的导航属性) // public CL_B_Material Material { get; set; } // public Cl_W_MaterialOutM MaterialOutM { get; set; } } //单位表 public class Unit { public string UnitId { get; set; } public string UnitCode { get; set; } public string UnitName { get; set; } public string ShortUnitName { get; set; } } }