Exemple #1
0
        /// <summary>
        /// 修改钢坯状态
        /// </summary>
        /// <param name="list">List<CommonKC>通用库存处理类</param>
        /// <param name="status">状态</param>
        /// <returns>0失败1成功</returns>
        public int UPSLABSTATUS(List <CommonKC> list, string fydh, string status)
        {
            TransactionHelper.BeginTransaction();
            foreach (CommonKC item in list)
            {
                StringBuilder strSql = new StringBuilder();
                strSql.Append("UPDATE TSC_SLAB_MAIN   SET C_MOVE_TYPE='" + status + "',C_FYDH='" + fydh + "' ,C_FYID='" + item.id + "' WHERE C_MOVE_TYPE='E'");
                if (item.mat.Trim() != "")
                {
                    strSql.Append(" and C_MAT_CODE='" + item.mat + "'");
                }
                if (item.ck.Trim() != "")
                {
                    strSql.Append(" and C_SLABWH_CODE='" + item.ck + "'");
                }

                if (item.batch.Trim() != "")
                {
                    strSql.Append(" and C_BATCH_NO='" + item.batch + "'");
                }
                if (item.stove.Trim() != "")
                {
                    strSql.Append(" and C_STOVE='" + item.stove + "'");
                }
                strSql.Append(" and ROWNUM<='" + item.num + "'");
                if (TransactionHelper.ExecuteSql(strSql.ToString()) != item.num)
                {
                    TransactionHelper.RollBack();
                    return(0);
                }
            }
            TransactionHelper.Commit();
            return(1);
        }
        public void SetFinish(Mod_TRC_ROLL_WW_MAIN model)
        {
            try
            {
                TransactionHelper.BeginTransaction();

                string sql = $"UPDATE TRC_ROLL_WW_MAIN SET N_WGT_REMOVE={model.N_WGT_REMOVE}" +
                             $",N_QUA_REMOVE={model.N_QUA_REMOVE}" +
                             $",N_STATUS={model.N_STATUS}" +
                             $",C_PRODUCE_GROUP='{model.C_PRODUCE_GROUP}'" +
                             $",C_CHECKSTATE_NAME='{model.C_CHECKSTATE_NAME}'" +
                             $",C_LINEWH_CODE='{model.C_LINEWH_CODE}'" +
                             $",C_LINEWH_NAME='{model.C_LINEWH_NAME}'" +
                             $",C_PRODUCE_EMP_ID='{model.C_PRODUCE_EMP_ID}'" +
                             $",C_PRODUCE_SHIFT='{model.C_PRODUCE_SHIFT}' WHERE C_ID='{model.C_ID}'";

                //                // 完工量不等于组批量,回写库存重量
                //                var amt = model.N_WGT_TOTAL - model.N_WGT_REMOVE;
                //                if (amt > 0)
                //                {
                //                    string whereSql = $@"
                //SELECT MAX(C_ID) FROM TRC_ROLL_PRODCUT
                //WHERE C_BATCH_NO='{model.C_XC_BATCH_NO}' AND C_LINEWH_CODE='{model.C_XC_LINEWH_CODE}'
                //AND C_MAT_CODE='{model.C_MAT_XC_CODE}' AND C_BZYQ='{model.C_XC_BZYQ}'
                //AND C_MOVE_TYPE='QE'
                //";
                //                    var cId = TransactionHelper.GetSingle(whereSql)?.ToString();

                //                    if (string.IsNullOrEmpty(cId))
                //                    {
                //                        throw new Exception("找不到记录库存");
                //                    }

                //                    var updateSql = $"UPDATE TRC_ROLL_PRODCUT SET N_WGT={amt} WHERE C_ID='{cId}'";

                //                    var updateRlt = TransactionHelper.ExecuteSql(updateSql);

                //                    if (updateRlt != 1)
                //                    {
                //                        throw new Exception("更新库存失败");
                //                    }
                //                }

                var rlt = TransactionHelper.ExecuteSql(sql) > 0;

                if (!rlt)
                {
                    throw new Exception("完工失败");
                }

                TransactionHelper.Commit();
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();
                throw ex;
            }
        }
        /// <summary>
        /// 根据发运单号更新线材实绩
        /// </summary>
        /// <param name="idstr">id字符串</param>
        /// <returns></returns>
        public int BJBynum(string idstr)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("UPDATE TSC_SLAB_MAIN SET");
            strSql.Append(" C_FRFLAG='1'");
            strSql.Append("  where C_ID IN(" + idstr + ")");
            return(TransactionHelper.ExecuteSql(strSql.ToString()));
        }
        /// <summary>
        /// 更新发运单状态
        /// </summary>
        /// <param name="dh">发运单号</param>
        /// <param name="status">状态</param>
        /// <returns></returns>
        public int UPFYDSTATUS_Tran(string dh, string status)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("UPDATE TMD_DISPATCH SET");
            strSql.Append(" C_STATUS='" + status + "'");
            strSql.Append(" WHERE C_ID ='" + dh + "'");
            return(TransactionHelper.ExecuteSql(strSql.ToString()));
        }
        /// <summary>
        /// 根据idstr更新钢坯库存状态
        /// </summary>
        /// <param name="idstr">库存钢坯id字符串</param>
        /// <param name="type">状态</param>
        /// <param name="status">要变更的状态</param>
        /// <returns></returns>
        public int UPSLABSTATUS_Tran(string dh, string status)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("UPDATE TSC_SLAB_MAIN SET");
            strSql.Append(" C_MOVE_TYPE='" + status + "' , C_FRFLAG=''");
            strSql.Append(" WHERE C_FYDH ='" + dh + "' ");
            return(TransactionHelper.ExecuteSql(strSql.ToString()));
        }
Exemple #6
0
        /// <summary>
        /// 根据转库单获取数据
        /// </summary>
        /// <param name="dh"></param>
        /// <returns></returns>
        public DataSet GetListBydh(string dh)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select C_ID,C_ZKD_NO,C_MAT_CODE,C_MAT_DESC,C_LINEWH_ID,C_MBLINEWH_ID,C_LINEWH_CODE,C_MBLINEWH_CODE,C_STL_GRD,C_JUDGE_LEV_ZH,N_NUM,N_WGT,C_Z_DW,C_F_DW,C_BATCH_NO,C_SPEC,C_STOVE,C_ZYX1,C_ZYX2,C_BZYQ,C_ZYX4,N_STATUS,C_EMP_ID,D_MOD_DT ,N_SJNUM,N_SJWGT");
            strSql.Append(" FROM TRC_ROLL_ZKD WHERE N_STATUS<>2");
            if (dh.Trim() != "")
            {
                strSql.Append(" AND C_ZKD_NO ='" + dh + "' ");
            }
            return(TransactionHelper.Query(strSql.ToString()));
        }
        /// <summary>
        /// 根据发运单号获取中间表数据
        /// </summary>
        /// <param name="dhstr">发运单号</param>
        /// <returns></returns>
        public DataSet GetZJBList(string dhstr)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select C_ID,C_DISPATCH_ID,C_SEND_STOCK,N_NUM,C_CKDH,N_WGT,N_JZ,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_MZDATE,N_MWGT,N_PWGT,N_MZTIME,N_PZTIME,C_PZDATE,C_ZLDJ,C_BZYQ");
            strSql.Append(" FROM TMD_DISPATCH_SJZJB WHERE 1=1 ");
            if (dhstr.Trim() != "")
            {
                strSql.Append(" AND C_DISPATCH_ID='" + dhstr + "'");
            }
            return(TransactionHelper.Query(strSql.ToString()));
        }
 /// <summary>
 /// 根据idstr更新钢坯库存状态
 /// </summary>
 /// <param name="idstr">库存钢坯id字符串</param>
 /// <returns></returns>
 public string GPFY(string dh)
 {
     TransactionHelper.BeginTransaction();
     if (UPSLABSTATUS_Tran(dh, "S") == 0)
     {
         return("变更钢坯状态错误!");
     }
     if (UPFYDSTATUS_Tran(dh, "8") == 0)
     {
         return("变更发运单状态错误!");
     }
     TransactionHelper.Commit();
     return("1");
 }
        /// <summary>
        /// 获取最新的钢坯出库单号
        /// </summary>
        /// <param name="ckdh">出库单号</param>
        /// <returns></returns>
        public string GetCKDNO(string ckdh)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select MAX(C_CKDH) ");
            strSql.Append(" FROM TMD_DISPATCH_SJZJB WHERE 1=1 ");
            if (ckdh.Trim() != "")
            {
                strSql.Append(" AND C_CKDH LIKE 'GP" + ckdh + "%' ");
            }
            object obj = TransactionHelper.GetSingle(strSql.ToString());

            if (obj == null)
            {
                return("0");
            }
            else
            {
                return(obj.ToString());
            }
        }
        /// <summary>
        /// 修改批次号,如果录入了成分,需要把成分的批次号更新
        /// </summary>
        /// <param name="model"></param>
        /// <param name="newBatchNo"></param>
        public void UpdateBatchNo(Mod_TRC_ROLL_WW_MAIN model, string newBatchNo)
        {
            try
            {
                // 采取事物控制
                TransactionHelper.BeginTransaction();
                // 更新成分信息
                string updateSql1 = $"UPDATE TQC_COMPRE_ITEM_RESULT SET C_BATCH_NO='{newBatchNo}' WHERE C_BATCH_NO='{model.C_BATCH_NO}'";
                // 组批计划更新批号
                string updateSql2 = $"UPDATE TRC_ROLL_WW_MAIN SET C_BATCH_NO='{newBatchNo}' WHERE C_BATCH_NO='{model.C_BATCH_NO}'";

                TransactionHelper.ExecuteSql(updateSql1);
                TransactionHelper.ExecuteSql(updateSql2);
                TransactionHelper.Commit();
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();

                throw new Exception("修改批次号失败");
            }
        }
        /// <summary>
        /// 撤销外委组批
        /// </summary>
        /// <param name="itemId"></param>
        /// <param name="num"></param>
        public void CancelZpInfo(string itemId, decimal num)
        {
            var zpInfo = GetModel(itemId);

            if (zpInfo == null)
            {
                throw new Exception("未找到组批数据,请重试");
            }

            if (zpInfo.N_STATUS != 0)
            {
                throw new Exception("不能撤销,数据已经被操作");
            }

            if (zpInfo.N_QUA_TOTAL < num)
            {
                throw new Exception($"退库数量不能大于{zpInfo.N_QUA_TOTAL}");
            }

            TransactionHelper.BeginTransaction();
            try
            {
                var lstItems = GetWWItemByZpId(zpInfo.C_ID);

                // 部分撤销
                if (lstItems.Count < num)
                {
                    throw new Exception($"数据错误,退库数量不能大于{zpInfo.N_QUA_TOTAL}");
                }

                var delItems = lstItems.Take((int)num);

                if (zpInfo.N_QUA_TOTAL == num)
                {
                    // 全部撤销,删除子表及主表记录
                    string delItemSql = $"DELETE TRC_ROLL_WW_MAIN_ITEM WHERE C_ROLL_WW_MAIN_ID='{zpInfo.C_ID}'";
                    TransactionHelper.ExecuteSql(delItemSql);
                    string delSql = $"DELETE TRC_ROLL_WW_MAIN WHERE C_ID='{zpInfo.C_ID}'";
                    TransactionHelper.ExecuteSql(delSql);

                    // 退库
                }
                else
                {
                    // 剩余的重量,用于更新
                    var wgt = lstItems.Skip((int)num).Sum(w => w.N_WGT);

                    // 删除的ID
                    var delIds = "('" + string.Join("','", delItems.Select(w => w.C_ID)) + "')";
                    var delSql = $"DELETE TRC_ROLL_WW_MAIN_ITEM WHERE C_ID IN{delIds}";
                    TransactionHelper.ExecuteSql(delSql);

                    // 更新主表支数,重量
                    string updateSql = $"UPDATE TRC_ROLL_WW_MAIN " +
                                       $"SET N_QUA_TOTAL={lstItems.Count - num},N_WGT_TOTAL={wgt} WHERE C_ID='{zpInfo.C_ID}'";
                    TransactionHelper.ExecuteSql(updateSql);
                }

                // 退库
                var    updateIds        = "('" + string.Join("','", delItems.Select(w => w.C_SLAB_MAIN_ID)) + "')";
                string updateProductSql = $"UPDATE TRC_ROLL_PRODCUT SET C_MOVE_TYPE = 'QE' WHERE C_ID IN{updateIds}";
                TransactionHelper.ExecuteSql(updateProductSql);
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();
                throw ex;
            }

            TransactionHelper.Commit();
        }
        /*
         *      /// <summary>
         *      /// 分页获取数据列表
         *      /// </summary>
         *      public DataSet GetList(int PageSize,int PageIndex,string strWhere)
         *      {
         *              OracleParameter[] parameters = {
         *                              new OracleParameter(":tblName", OracleDbType.Varchar2, 255),
         *                              new OracleParameter(":fldName", OracleDbType.Varchar2, 255),
         *                              new OracleParameter(":PageSize", OracleDbType.Decimal),
         *                              new OracleParameter(":PageIndex", OracleDbType.Decimal),
         *                              new OracleParameter(":IsReCount", OracleDbType.Clob),
         *                              new OracleParameter(":OrderType", OracleDbType.Clob),
         *                              new OracleParameter(":strWhere", OracleDbType.Varchar2,1000),
         *                              };
         *              parameters[0].Value = "TRC_ROLL_WW_MAIN";
         *              parameters[1].Value = "C_ID";
         *              parameters[2].Value = PageSize;
         *              parameters[3].Value = PageIndex;
         *              parameters[4].Value = 0;
         *              parameters[5].Value = 0;
         *              parameters[6].Value = strWhere;
         *              return DbHelperOra.RunProcedure("UP_GetRecordByPage",parameters,"ds");
         *      }*/

        #endregion  BasicMethod
        #region  ExtensionMethod

        #endregion  ExtensionMethod

        #region 自定义
        /// <summary>
        /// 外委加工组批
        /// </summary>
        /// <param name="zpInfo"></param>
        public void SetZpInfo(
            Mod_TMO_ORDER order,
            WWZPPlanItemInfo zpInfo,
            List <Mod_TRC_ROLL_PRODCUT> batchInfo,
            string userId)
        {
            UpdateBatchSameToNc(
                zpInfo.InventoryCode,
                order.C_STL_GRD,
                order.C_STD_CODE,
                order.C_SPEC,
                zpInfo.CBatchNo,
                zpInfo.MtrlCode,
                zpInfo.ZLDJ,
                zpInfo.BZYQ,
                batchInfo);

            TransactionHelper.BeginTransaction();

            if (zpInfo.Num < batchInfo.Count)
            {
                // 如果组批支数等于库存支数,相当于耗用所有库存,则实际重量等于库存重量
                new Dal_TMO_ORDER().UpdateInventory(batchInfo, zpInfo.ZpAmt, zpInfo.Num);
            }

            var zpAmt = batchInfo.Take(zpInfo.Num).Sum(w => w.N_WGT);

            // 生成批次号
            var batchInfoItem = batchInfo.FirstOrDefault();
            // 构造外委加工组批主表记录
            var mainItem = new Mod_TRC_ROLL_WW_MAIN
            {
                C_ID              = Guid.NewGuid().ToString("N"),
                C_ORD_ID          = zpInfo.Id,
                N_WGT_TOTAL       = zpAmt,
                N_STATUS          = 0,
                C_EMP_ID          = userId,
                C_GROUP           = zpInfo.BZ,
                C_REMARK          = zpInfo.Remark,
                C_SHIFT           = zpInfo.BC,
                C_SPEC_SLAB       = batchInfoItem.C_SPEC,
                C_CHECKSTATE_NAME = zpInfo.ZLDJ,
                C_STD_CODE        = batchInfoItem.C_STD_CODE,
                C_STL_GRD_SLAB    = batchInfoItem.C_STL_GRD,
                D_MOD_DT          = DateTime.Now,
                N_QUA_TOTAL       = zpInfo.Num,
                C_MAT_SLAB_CODE   = order.C_MAT_CODE,
                C_MAT_SLAB_NAME   = order.C_MAT_NAME,
                C_MAT_XC_CODE     = batchInfoItem.C_MAT_CODE,
                C_MAT_XC_NAME     = batchInfoItem.C_MAT_DESC,
                C_XC_BATCH_NO     = batchInfoItem.C_BATCH_NO,
                C_XC_LINEWH_CODE  = batchInfoItem.C_LINEWH_CODE,// zpInfo.InventoryCode,
                C_XC_BZYQ         = batchInfoItem.C_BZYQ
            };

            if (string.IsNullOrEmpty(zpInfo.BachNo) == false)
            {
                var a = ExistBatchNo(zpInfo.BachNo);
                // 验证批号
                //string existsSql = $"SELECT COUNT(C_ID) FROM TRC_ROLL_WW_MAIN WHERE C_BATCH_NO='{zpInfo.BachNo}'";
                //var count = int.Parse(TransactionHelper.Query(existsSql).Tables[0].Rows[0][0]?.ToString() ?? "0");
                if (a)//count > 0)
                {
                    TransactionHelper.RollBack();
                    throw new Exception("批次号重复,请重新输入");
                }

                mainItem.C_BATCH_NO = zpInfo.BachNo;
            }
            else
            {
                mainItem.C_BATCH_NO = GetMAXWWBatchNo();
            }

            bool success = this.Add(mainItem);

            if (success == false)
            {
                TransactionHelper.RollBack();
                throw new Exception("组批失败");
            }
            try
            {
                for (int i = 0; i < zpInfo.Num; i++)
                {
                    // 更新线材库存状态
                    string updateSql = $"UPDATE TRC_ROLL_PRODCUT SET C_MOVE_TYPE = 'QS' WHERE C_ID='{batchInfo[i].C_ID}'";

                    TransactionHelper.ExecuteSql(updateSql);

                    // 插入外委加工组批子表记录
                    string insertSql = $"insert into TRC_ROLL_WW_MAIN_ITEM(C_ID,C_ROLL_WW_MAIN_ID,C_SLAB_MAIN_ID,N_WGT) " +
                                       $"VALUES('{Guid.NewGuid().ToString("N")}','{mainItem.C_ID}','{batchInfo[i].C_ID}',{batchInfo[i].N_WGT})";

                    TransactionHelper.ExecuteSql(insertSql);
                }
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();
                throw ex;
            }

            TransactionHelper.Commit();
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Mod_TRC_ROLL_WW_MAIN model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into TRC_ROLL_WW_MAIN(");
            strSql.Append("C_ID,C_STA_ID,C_PLANT,C_ORD_ID,C_BATCH_NO,N_QUA_TOTAL,N_WGT_TOTAL,C_STL_GRD_SLAB,C_SPEC_SLAB,C_EMP_ID,C_SHIFT,C_GROUP,D_MOD_DT,N_QUA_REMOVE,N_WGT_REMOVE,C_MAT_SLAB_CODE,C_MAT_SLAB_NAME,C_REMARK,N_STATUS,C_STD_CODE,D_PRODUCE_DATE_B,C_PRODUCE_EMP_ID,C_PRODUCE_SHIFT,C_PRODUCE_GROUP,D_PRODUCE_DATE_E,C_MAT_XC_CODE,C_MAT_XC_NAME,C_XC_BATCH_NO,C_XC_LINEWH_CODE,C_CHECKSTATE_NAME,C_LINEWH_CODE,C_LINEWH_NAME,C_XC_BZYQ)");
            strSql.Append(" values (");
            strSql.Append(":C_ID,:C_STA_ID,:C_PLANT,:C_ORD_ID,:C_BATCH_NO,:N_QUA_TOTAL,:N_WGT_TOTAL,:C_STL_GRD_SLAB,:C_SPEC_SLAB,:C_EMP_ID,:C_SHIFT,:C_GROUP,:D_MOD_DT,:N_QUA_REMOVE,:N_WGT_REMOVE,:C_MAT_SLAB_CODE,:C_MAT_SLAB_NAME,:C_REMARK,:N_STATUS,:C_STD_CODE,:D_PRODUCE_DATE_B,:C_PRODUCE_EMP_ID,:C_PRODUCE_SHIFT,:C_PRODUCE_GROUP,:D_PRODUCE_DATE_E,:C_MAT_XC_CODE,:C_MAT_XC_NAME,:C_XC_BATCH_NO,:C_XC_LINEWH_CODE,:C_CHECKSTATE_NAME,:C_LINEWH_CODE,:C_LINEWH_NAME,:C_XC_BZYQ)");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_ID",              OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_ID",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_PLANT",           OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ORD_ID",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_BATCH_NO",        OracleDbType.Varchar2, 100),
                new OracleParameter(":N_QUA_TOTAL",       OracleDbType.Decimal,   15),
                new OracleParameter(":N_WGT_TOTAL",       OracleDbType.Decimal,   15),
                new OracleParameter(":C_STL_GRD_SLAB",    OracleDbType.Varchar2, 100),
                new OracleParameter(":C_SPEC_SLAB",       OracleDbType.Varchar2, 100),
                new OracleParameter(":C_EMP_ID",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_SHIFT",           OracleDbType.Varchar2, 100),
                new OracleParameter(":C_GROUP",           OracleDbType.Varchar2, 100),
                new OracleParameter(":D_MOD_DT",          OracleDbType.Date),
                new OracleParameter(":N_QUA_REMOVE",      OracleDbType.Decimal,   15),
                new OracleParameter(":N_WGT_REMOVE",      OracleDbType.Decimal,   15),
                new OracleParameter(":C_MAT_SLAB_CODE",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MAT_SLAB_NAME",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_REMARK",          OracleDbType.Varchar2, 500),
                new OracleParameter(":N_STATUS",          OracleDbType.Decimal,   15),
                new OracleParameter(":C_STD_CODE",        OracleDbType.Varchar2, 100),
                new OracleParameter(":D_PRODUCE_DATE_B",  OracleDbType.Date),
                new OracleParameter(":C_PRODUCE_EMP_ID",  OracleDbType.Varchar2, 100),
                new OracleParameter(":C_PRODUCE_SHIFT",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_PRODUCE_GROUP",   OracleDbType.Varchar2, 100),
                new OracleParameter(":D_PRODUCE_DATE_E",  OracleDbType.Date),
                new OracleParameter(":C_MAT_XC_CODE",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MAT_XC_NAME",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_XC_BATCH_NO",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_XC_LINEWH_CODE",  OracleDbType.Varchar2, 100),
                new OracleParameter(":C_CHECKSTATE_NAME", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_LINEWH_CODE",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_LINEWH_NAME",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_XC_BZYQ",         OracleDbType.Varchar2, 100),
            };
            parameters[0].Value  = model.C_ID;
            parameters[1].Value  = model.C_STA_ID;
            parameters[2].Value  = model.C_PLANT;
            parameters[3].Value  = model.C_ORD_ID;
            parameters[4].Value  = model.C_BATCH_NO;
            parameters[5].Value  = model.N_QUA_TOTAL;
            parameters[6].Value  = model.N_WGT_TOTAL;
            parameters[7].Value  = model.C_STL_GRD_SLAB;
            parameters[8].Value  = model.C_SPEC_SLAB;
            parameters[9].Value  = model.C_EMP_ID;
            parameters[10].Value = model.C_SHIFT;
            parameters[11].Value = model.C_GROUP;
            parameters[12].Value = model.D_MOD_DT;
            parameters[13].Value = model.N_QUA_REMOVE;
            parameters[14].Value = model.N_WGT_REMOVE;
            parameters[15].Value = model.C_MAT_SLAB_CODE;
            parameters[16].Value = model.C_MAT_SLAB_NAME;
            parameters[17].Value = model.C_REMARK;
            parameters[18].Value = model.N_STATUS;
            parameters[19].Value = model.C_STD_CODE;
            parameters[20].Value = model.D_PRODUCE_DATE_B;
            parameters[21].Value = model.C_PRODUCE_EMP_ID;
            parameters[22].Value = model.C_PRODUCE_SHIFT;
            parameters[23].Value = model.C_PRODUCE_GROUP;
            parameters[24].Value = model.D_PRODUCE_DATE_E;
            parameters[25].Value = model.C_MAT_XC_CODE;
            parameters[26].Value = model.C_MAT_XC_NAME;
            parameters[27].Value = model.C_XC_BATCH_NO;
            parameters[28].Value = model.C_XC_LINEWH_CODE;
            parameters[29].Value = model.C_CHECKSTATE_NAME;
            parameters[30].Value = model.C_LINEWH_CODE;
            parameters[31].Value = model.C_LINEWH_NAME;
            parameters[32].Value = model.C_XC_BZYQ;


            int rows = TransactionHelper.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #14
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Mod_TRC_ROLL_ZKD model, bool flag = false)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into TRC_ROLL_ZKD(");
            strSql.Append("C_ZKD_NO,C_MAT_CODE,C_MAT_DESC,C_LINEWH_CODE,C_MBLINEWH_CODE,C_STL_GRD,C_JUDGE_LEV_ZH,N_NUM,N_WGT,C_Z_DW,C_F_DW,C_BATCH_NO,C_SPEC,C_STOVE,C_ZYX1,C_ZYX2,C_BZYQ,C_ZYX4,N_STATUS,C_EMP_ID,D_MOD_DT,D_PRODUCE_DATE,C_TB,C_JUDGE_LEV_BP,C_STD_CODE,C_LINEWH_ID,C_MBLINEWH_ID,C_CREATE_CODE,D_CREATE_DATE,N_SJNUM,N_SJWGT)");
            strSql.Append(" values (");
            strSql.Append(":C_ZKD_NO,:C_MAT_CODE,:C_MAT_DESC,:C_LINEWH_CODE,:C_MBLINEWH_CODE,:C_STL_GRD,:C_JUDGE_LEV_ZH,:N_NUM,:N_WGT,:C_Z_DW,:C_F_DW,:C_BATCH_NO,:C_SPEC,:C_STOVE,:C_ZYX1,:C_ZYX2,:C_BZYQ,:C_ZYX4,:N_STATUS,:C_EMP_ID,:D_MOD_DT,:D_PRODUCE_DATE,:C_TB,:C_JUDGE_LEV_BP,:C_STD_CODE,:C_LINEWH_ID,:C_MBLINEWH_ID,:C_CREATE_CODE,:D_CREATE_DATE,:N_SJNUM,:N_SJWGT)");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_ZKD_NO",        OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MAT_CODE",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MAT_DESC",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_LINEWH_CODE",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MBLINEWH_CODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STL_GRD",       OracleDbType.Varchar2, 100),
                new OracleParameter(":C_JUDGE_LEV_ZH",  OracleDbType.Varchar2, 100),
                new OracleParameter(":N_NUM",           OracleDbType.Int16,     15),
                new OracleParameter(":N_WGT",           OracleDbType.Decimal,   15),
                new OracleParameter(":C_Z_DW",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_F_DW",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_BATCH_NO",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_SPEC",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STOVE",         OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ZYX1",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ZYX2",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_BZYQ",          OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ZYX4",          OracleDbType.Varchar2, 100),
                new OracleParameter(":N_STATUS",        OracleDbType.Int16,      1),
                new OracleParameter(":C_EMP_ID",        OracleDbType.Varchar2, 100),
                new OracleParameter(":D_MOD_DT",        OracleDbType.Date),
                new OracleParameter(":D_PRODUCE_DATE",  OracleDbType.Date),
                new OracleParameter(":C_TB",            OracleDbType.Varchar2, 100),
                new OracleParameter(":C_JUDGE_LEV_BP",  OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STD_CODE",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_LINEWH_ID",     OracleDbType.Varchar2, 100),
                new OracleParameter(":C_MBLINEWH_ID",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_CREATE_CODE",   OracleDbType.Varchar2, 100),
                new OracleParameter(":D_CREATE_DATE",   OracleDbType.Date),
                new OracleParameter(":N_SJNUM",         OracleDbType.Int16,     15),
                new OracleParameter(":N_SJWGT",         OracleDbType.Decimal, 15)
            };
            parameters[0].Value  = model.C_ZKD_NO;
            parameters[1].Value  = model.C_MAT_CODE;
            parameters[2].Value  = model.C_MAT_DESC;
            parameters[3].Value  = model.C_LINEWH_CODE;
            parameters[4].Value  = model.C_MBLINEWH_CODE;
            parameters[5].Value  = model.C_STL_GRD;
            parameters[6].Value  = model.C_JUDGE_LEV_ZH;
            parameters[7].Value  = model.N_NUM;
            parameters[8].Value  = model.N_WGT;
            parameters[9].Value  = model.C_Z_DW;
            parameters[10].Value = model.C_F_DW;
            parameters[11].Value = model.C_BATCH_NO;
            parameters[12].Value = model.C_SPEC;
            parameters[13].Value = model.C_STOVE;
            parameters[14].Value = model.C_ZYX1;
            parameters[15].Value = model.C_ZYX2;
            parameters[16].Value = model.C_BZYQ;
            parameters[17].Value = model.C_ZYX4;
            parameters[18].Value = model.N_STATUS;
            parameters[19].Value = model.C_EMP_ID;
            parameters[20].Value = model.D_MOD_DT;
            parameters[21].Value = model.D_PRODUCE_DATE;
            parameters[22].Value = model.C_TB;
            parameters[23].Value = model.C_JUDGE_LEV_BP;
            parameters[24].Value = model.C_STD_CODE;
            parameters[25].Value = model.C_LINEWH_ID;
            parameters[26].Value = model.C_MBLINEWH_ID;
            parameters[27].Value = model.C_CREATE_CODE;
            parameters[28].Value = model.D_CREATE_DATE;
            parameters[29].Value = model.N_SJNUM;
            parameters[30].Value = model.N_SJWGT;

            int rows = 0;

            if (flag)
            {
                rows = TransactionHelper.ExecuteSql(strSql.ToString(), parameters);
            }
            else
            {
                rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters);
            }
            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 发送发运单到中间表
        /// </summary>
        /// <param name="fydid">要发送的发运单号</param>
        /// <returns>返回int类型 1转入成功-1发送失败</returns>
        public string ADDFYDToZJB(string fydid, DateTime dateTime)
        {
            try
            {
                TransactionHelper.BeginTransaction();
                #region MyRegion
                string    rjhsql = "SELECT C_PLAN_ID,C_ID,C_MAT_CODE,C_STD_CODE,C_SEND_STOCK_CODE,c_Judge_Lev_Zh,C_PACK,N_FYZS,N_FYWGT,N_MWGT,N_PWGT,N_JWGT,C_MZDATE, C_PZDATE,N_MZTIME,N_PZTIME FROM TMD_DISPATCHDETAILS WHERE C_DISPATCH_ID='" + fydid + "'";
                DataTable plandt = TransactionHelper.Query(rjhsql).Tables[0];
                if (plandt.Rows.Count < 0)
                {
                    TransactionHelper.RollBack();
                    return("未查询到发运单子表数据!");
                }
                foreach (DataRow planrow in plandt.Rows)
                {
                    int    plannum = Convert.ToInt32(planrow["N_FYZS"]);//发运数量
                    string mzstr   = planrow["N_MWGT"].ToString();
                    string pzstr   = planrow["N_PWGT"].ToString();
                    string jzstr   = planrow["N_JWGT"].ToString();
                    #region 获取出库单
                    string no     = DateTime.Now.Year.ToString() + (Convert.ToInt32(DateTime.Now.Month) > 9 ? DateTime.Now.Month.ToString() : ("0" + DateTime.Now.Month.ToString())) + (Convert.ToInt32(DateTime.Now.Day) > 9 ? DateTime.Now.Day.ToString() : ("0" + DateTime.Now.Day.ToString())); //转库单号
                    string maxckd = GetCKDNO(no);                                                                                                                                                                                                                                                   //查询当天最大转库单
                    if (maxckd == "0")
                    {
                        no = no + "0001";
                    }
                    else
                    {
                        no = (Convert.ToInt64(maxckd.Substring(2, maxckd.Length - 2)) + 1).ToString();
                    }
                    no = "GP" + no;
                    #endregion
                    #region 获取钢坯实绩
                    DataTable dt1 = GetListByidstr(fydid, planrow["C_MAT_CODE"].ToString(), planrow["C_STD_CODE"].ToString(), planrow["C_SEND_STOCK_CODE"].ToString(), planrow["c_Judge_Lev_Zh"].ToString(), "1").Tables[0];//要传输的发运单数据
                    if (dt1.Rows.Count < 1)
                    {
                        TransactionHelper.RollBack();
                        return("根据发运单子表查询钢坯实绩错误!");
                    }
                    int fpnum = 0;
                    //string idstr = "";
                    foreach (DataRow xqitem in dt1.Rows)
                    {
                        fpnum += Convert.ToInt32(xqitem["N_NUM"]);
                        ////if (plannum == fpnum)
                        ////{
                        ////    break;
                        ////}
                        //idstr += "'" + xqitem["C_ID"] + "',";
                        //fpnum++;
                    }
                    //idstr = idstr.Substring(0, idstr.Length - 1);

                    //#region 变更钢坯实绩
                    //if (BJBynum(idstr) == 0)
                    //{
                    //    TransactionHelper.RollBack();
                    //    return "根据发运单子表变更钢坯实绩错误!";
                    //}
                    //#endregion
                    //DataTable sjdt = GetListByidstr(idstr).Tables[0];//要传输的发运单数据
                    if (mzstr == "")
                    {
                        foreach (DataRow item1 in dt1.Rows)
                        {
                            int num = Convert.ToInt32(item1["N_NUM"]);
                            #region 添加中间表
                            string sql = "";
                            sql += "insert into TMD_DISPATCH_SJZJB(C_DISPATCH_ID,N_NUM,N_STATUS,C_CKDH,C_SEND_STOCK,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_ZLDJ,C_BZYQ,D_CKSJ,C_MAT_CODE,C_MAT_NAME,C_TICK_STR,N_WGT,N_JZ,N_MWGT,N_PWGT,C_MZDATE,C_PZDATE,N_MZTIME,N_PZTIME) values('" + fydid + "','" + num + "','6','" + no + "','" + item1["C_SLABWH_CODE"] + "','" + item1["C_STOVE"] + "','" + item1["C_BATCH_NO"] + "','" + planrow["C_PLAN_ID"].ToString() + "','" + item1["C_STL_GRD"] + "','" + item1["C_STD_CODE"] + "','" + item1["C_SPEC"] + "','" + planrow["C_ID"].ToString() + "','" + item1["C_JUDGE_LEV_ZH"].ToString() + "','',to_date('" + dateTime + "', 'yyyy-mm-dd hh24:mi:ss'),'" + item1["C_MAT_CODE"].ToString() + "','" + item1["C_MAT_NAME"].ToString() + "','','" + item1["N_WGT"].ToString() + "','','','','','','','')";
                            if (TransactionHelper.ExecuteSql(sql) == 0)
                            {
                                TransactionHelper.RollBack();
                                return("条件发运单中间表错误!");
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        decimal smz      = Convert.ToDecimal(planrow["N_MWGT"]); //总毛重
                        decimal spz      = Convert.ToDecimal(planrow["N_PWGT"]); //总皮重
                        decimal sjz      = Convert.ToDecimal(planrow["N_JWGT"]); //总净重
                        string  C_MZDATE = planrow["C_MZDATE"].ToString();       //获取毛重日期
                        string  C_PZDATE = planrow["C_PZDATE"].ToString();       //获取皮重日期
                        string  N_MZTIME = planrow["N_MZTIME"].ToString();       //获取毛重时间
                        string  N_PZTIME = planrow["N_PZTIME"].ToString();       //获取皮重时间
                        decimal mz       = smz / fpnum;                          //获取毛重
                        decimal pz       = spz / fpnum;                          //获取皮重
                        decimal jz       = sjz / fpnum;                          //获取净重
                        decimal bjmz     = 0;
                        decimal bjpz     = 0;
                        decimal bjjz     = 0;
                        int     bjnum    = 0;
                        foreach (DataRow item1 in dt1.Rows)
                        {
                            int     num  = Convert.ToInt32(item1["N_NUM"]);
                            decimal sjmz = decimal.Round(mz * num, 2);
                            decimal sjpz = decimal.Round(pz * num, 2);
                            decimal sjjz = decimal.Round(jz * num, 2);
                            bjnum++;
                            bjmz += sjmz;
                            bjpz += sjpz;
                            bjjz += sjjz;
                            if (bjnum == dt1.Rows.Count)
                            {
                                sjmz = smz - bjmz;
                                sjpz = spz - bjpz;
                                sjjz = sjz - bjjz;
                            }
                            #region 添加中间表
                            string sql = "";
                            sql += "insert into TMD_DISPATCH_SJZJB(C_DISPATCH_ID,N_NUM,N_STATUS,C_CKDH,C_SEND_STOCK,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_ZLDJ,C_BZYQ,D_CKSJ,C_MAT_CODE,C_MAT_NAME,C_TICK_STR,N_WGT,N_JZ,N_MWGT,N_PWGT,C_MZDATE,C_PZDATE,N_MZTIME,N_PZTIME) values('" + fydid + "','" + num + "','6','" + no + "','" + item1["C_SLABWH_CODE"] + "','" + item1["C_STOVE"] + "','" + item1["C_BATCH_NO"] + "','" + planrow["C_PLAN_ID"].ToString() + "','" + item1["C_STL_GRD"] + "','" + item1["C_STD_CODE"] + "','" + item1["C_SPEC"] + "','" + planrow["C_ID"].ToString() + "','" + item1["C_JUDGE_LEV_ZH"].ToString() + "','',to_date('" + dateTime + "', 'yyyy-mm-dd hh24:mi:ss'),'" + item1["C_MAT_CODE"].ToString() + "','" + item1["C_MAT_NAME"].ToString() + "','','" + item1["N_WGT"].ToString() + "','" + sjjz + "','" + sjmz + "','" + sjpz + "','" + C_MZDATE + "','" + C_PZDATE + "','" + N_MZTIME + "','" + N_MZTIME + "')";
                            if (TransactionHelper.ExecuteSql(sql) == 0)
                            {
                                TransactionHelper.RollBack();
                                return("条件发运单中间表错误!");
                            }
                        }

                        #endregion
                    }
                    #endregion
                }
                #endregion

                TransactionHelper.Commit();
                return("1");
            }
            catch (Exception ex)
            {
                TransactionHelper.RollBack();
                return(ex.ToString());
            }
        }