yxj
2025-10-24 ae36a4639fff74935c27c8e7bb0ce6b39ad039a5
WebAPI/DLL/ClsGy_Material_Ctl.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Reflection;
using System.Linq;
namespace WebAPI.DLL
{
@@ -30,8 +32,8 @@
                    ",HMaterRuleType,HColorNo,HPieceMaxQty,HCommonUseFlag,HAvgStockPrice,HFootPrice,HTaxCost,HNoTaxCost,HOnceRightRate" +
                    ",HHeight_M,HInches_M,HAl1Long_M,HDensity_M,HTela_M,HUnderTela_M,HSizing_M,HQtyDec,HPriceDec,HMoneyDec,HTaxRate,HProfitRate" +
                    ",HLotcardQty" +
                    ",HProjectBillMainID,HDivisionID,HCubicleQty" +
                    ") " +
                    ",HProjectBillMainID,HDivisionID,HCubicleQty,HMakeEmp,HMaterRuleExternType, HMaterRuleExternType1, HCircularKnittingMachineCode,HBarCodePrintName" +
                    ",HQCSchemeID_POStockIn, HQCSchemeID_LastPiece, HQCSchemeID_OutComp) " +
                    " Values('" + oModel.HNumber + "','" + oModel.HName + "','" + oModel.HHelpCode + "','" + oModel.HShortNumber + "'," + oModel.HParentID.ToString() +
                    ", " + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark + "'" +
                    ",'" + oModel.HModel + "'," + oModel.HUnitID.ToString() + "," + oModel.HMaterClsID.ToString() + "," + oModel.HMaterTypeID.ToString() + "," + oModel.HUnitGroupID.ToString() +
@@ -57,6 +59,14 @@
                       ",'" + oModel.HProjectBillMainID +
                       "','" + oModel.HDivisionID +
                       "','" + oModel.HCubicleQty +
                       "','" + oModel.HMakeEmp +
                       "','" + oModel.HMaterRuleExternType +
                       "','" + oModel.HMaterRuleExternType1 +
                       "','" + oModel.HCircularKnittingMachineCode +
                       "','" + oModel.HBarCodePrintName +
                       "','" + oModel.HQCSchemeID_POStockIn +
                       "','" + oModel.HQCSchemeID_LastPiece +
                       "','" + oModel.HQCSchemeID_OutComp +
                       "')", ref DBUtility.ClsPub.sExeReturnInfo);
                //修改上级为非末级代码
                oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
@@ -103,8 +113,7 @@
                    oModel.HPieceMaxQty.ToString() + "','" + oModel.HCommonUseFlag.ToString() + "','" + oModel.HAvgStockPrice.ToString() + "','" + oModel.HFootPrice.ToString() + "','" + oModel.HTaxCost.ToString() + "','" + oModel.HNoTaxCost.ToString() + "'," +
                    oModel.HLength.ToString() + "," + oModel.HWidth.ToString() + "," + oModel.HHeight.ToString() + "," + oModel.HJQty.ToString() + "," + oModel.HPlanMode.ToString() + ",'" + oModel.HUseFlag.ToString() + "','" + oModel.HMakeTime.ToString() + "'," + oModel.HCHECKINCOMING.ToString() + "," + oModel.HAuxPropFlag.ToString() + "," +
                   oModel.HISKFPERIOD.ToString() + ",'" + oModel.HEXPUNIT.ToString() + "'," + oModel.HEXPPERIOD.ToString() + "," + oModel.HAuxUnitID.ToString() + "," + oModel.HSNUnitID.ToString() + "," + oModel.HBASEUNITID.ToString() + "," + oModel.HSALEUNITID.ToString() + "," +
                    oModel.HSALEPRICEUNITID.ToString() + "," + oModel.HPERUNITSTANDHOUR.ToString() + "," + oModel.HSTDLABORPREPARETIME.ToString() + "," + oModel.HSTDMACHINEPREPARETIME.ToString() + "," + oModel.HMASTERID.ToString()+ "," +
                    oModel.HQtyDec +"," + oModel.HPriceDec +"," + oModel.HMoneyDec + ")");
                    oModel.HSALEPRICEUNITID.ToString() + "," + oModel.HPERUNITSTANDHOUR.ToString() + "," + oModel.HSTDLABORPREPARETIME.ToString() + "," + oModel.HSTDMACHINEPREPARETIME.ToString() + "," + oModel.HMASTERID.ToString() +",'" + oModel.HQtyDec + "','" + oModel.HPriceDec + "','" + oModel.HMoneyDec + "')");
                oCn.RunProc("Insert into Gy_Material (" +
                    "HItemId,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                    ",HLevel,HEndFlag,HStopflag,HRemark" +
@@ -129,7 +138,7 @@
                    oModel.HPieceMaxQty.ToString() + "','" + oModel.HCommonUseFlag.ToString() + "','" + oModel.HAvgStockPrice.ToString() + "','" + oModel.HFootPrice.ToString() + "','" + oModel.HTaxCost.ToString() + "','" + oModel.HNoTaxCost.ToString() + "',"+
                    oModel.HLength.ToString() + "," +oModel.HWidth.ToString() + "," + oModel.HHeight.ToString() + "," + oModel.HJQty.ToString() + "," + oModel.HPlanMode.ToString() + ",'" + oModel.HUseFlag.ToString() + "','" + oModel.HMakeTime.ToString() + "'," + oModel.HCHECKINCOMING.ToString() + "," + oModel.HAuxPropFlag.ToString() + ","+
                   oModel.HISKFPERIOD.ToString() + ",'" + oModel.HEXPUNIT.ToString() + "'," + oModel.HEXPPERIOD.ToString() + "," + oModel.HAuxUnitID.ToString() + "," + oModel.HSNUnitID.ToString() + "," + oModel.HBASEUNITID.ToString() + "," + oModel.HSALEUNITID.ToString() + ","+
                    oModel.HSALEPRICEUNITID.ToString() + "," + oModel.HPERUNITSTANDHOUR.ToString() + "," + oModel.HSTDLABORPREPARETIME.ToString() + "," + oModel.HSTDMACHINEPREPARETIME.ToString() + "," + oModel.HMASTERID.ToString() + oModel.HQtyDec + "," + oModel.HPriceDec + "," + oModel.HMoneyDec + ")", ref DBUtility.ClsPub.sExeReturnInfo);
                    oModel.HSALEPRICEUNITID.ToString() + "," + oModel.HPERUNITSTANDHOUR.ToString() + "," + oModel.HSTDLABORPREPARETIME.ToString() + "," + oModel.HSTDMACHINEPREPARETIME.ToString() + "," + oModel.HMASTERID.ToString() + ",'" + oModel.HQtyDec + "','" + oModel.HPriceDec + "','" + oModel.HMoneyDec + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                sql = "set identity_insert gy_material off";
                oCn.RunProc(sql);
                //修改上级为非末级代码
@@ -229,7 +238,14 @@
                    ",HProjectBillMainID='" + oModel.HProjectBillMainID + "'" +
                    ",HDivisionID='" + oModel.HDivisionID + "'" +
                    ",HLotcardQty='" + oModel.HLotcardQty + "'" +
                    ",HCubicleQty='" + oModel.HCubicleQty + "'" +
                    ",HCubicleQty='" + oModel.HCubicleQty + "'" +
                    ",HMaterRuleExternType='" + oModel.HMaterRuleExternType + "'" +
                    ",HMaterRuleExternType1='" + oModel.HMaterRuleExternType1 + "'" +
                    ",HCircularKnittingMachineCode='" + oModel.HCircularKnittingMachineCode + "'" +
                    ",HBarCodePrintName='" + oModel.HBarCodePrintName + "'" +
                    ",HQCSchemeID_POStockIn='" + oModel.HQCSchemeID_POStockIn + "'" +
                    ",HQCSchemeID_LastPiece='" + oModel.HQCSchemeID_LastPiece + "'" +
                    ",HQCSchemeID_OutComp='" + oModel.HQCSchemeID_OutComp + "'" +
                    " Where HItemID=" + sItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                //修改子项目代码
                oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
@@ -245,6 +261,65 @@
                throw (e);
            }
        }
        /// <summary>
        /// 根据字段值动态更新数据库
        /// </summary>
        /// <param name="sItemID"></param>
        /// <returns></returns>
        public bool ModifyByIDDynamic(Int64 sItemID)
        {
            var sql = "Update " + MvarItemKey + " set ";
            string[] excludeNames = { "HErpclsID", "HEntryID", "HInterID", "HReadonly", "HItemID", "HModifyEmp"};
            foreach (var fInfo in oModel.GetType().GetFields()
                .Where(field => !excludeNames.Contains(field.Name))
                .ToArray())
            {
                string fieldName = fInfo.Name;
                var fieldValue = fInfo.GetValue(oModel);
                if (fieldValue != null)
                {
                    sql += (fieldName + "='" + fieldValue.ToString() + "',");
                }
            }
            sql = sql.Substring(0, sql.Length - 1);
            sql+= (" Where HItemID = " + sItemID);
            LogService.Write(sql);
            oCn.BeginTran();
            oCn.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
            //修改子项目代码
            oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + oModel.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
            //将上级 为非末级
            oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + oModel.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
            //
            oCn.Commit();
            return true;
        }
        public bool ModifyByIDListDynamic(string HItemID_List, string paramStr, List<Models.ClsGy_Material_Model> models)
        {
            var sql = "Update " + MvarItemKey + " set ";
            sql += paramStr;
            sql += (" Where HItemID in " + HItemID_List);
            // 输出 修改语句到日志文件
            LogService.Write("Update: " + sql);
            oCn.BeginTran();
            oCn.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
            foreach (var model in models)
            {
                // 输出 修改前对象 到 日志文件
                LogService.Write(model);
                //修改子项目代码
                oCn.RunProc("exec h_p_Gy_UpdateNumber '" + MvarItemKey + "','" + model.HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
                //将上级 为非末级
                oCn.RunProc("Update " + MvarItemKey + " set HEndflag=0 where HItemID=" + model.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
            }
            oCn.Commit();
            return true;
        }
        //根据代码判断信息
        public override bool HavParentCode(string sCode, Int64 sItemID)
        {