智云SRM-WEBAPI(目前客户通用API)
1
yangle
2023-10-18 df44ef7acaf24ff63662bf8a9b7e8fdd1a065366
WebAPI/Controllers/WebAPIController.cs
@@ -2,16 +2,21 @@
using DBUtility;
using Microsoft.AspNet.SignalR;
using Model;
using Newtonsoft.Json.Linq;
using Pub_Class;
using SQLHelper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using WebAPI.BLL;
using WebAPI.Models;
using WebAPI.Utility;
namespace WebAPI.Controllers
{
@@ -181,14 +186,16 @@
                ClsCNSRM oCnLoc = new ClsCNSRM();
                DAL.ClsUser oUser = new DAL.ClsUser();
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                string sReturn = "测试";
                string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref sReturn);
                LogService.Write(sReturn);
                //LogService.Write("测试1:"+ DBUtility.ClsPub.sExeReturnInfo);
                string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
                LogService.Write(FCusName);
                if (FCusName == "夏宝电器")
                    ds = oUser.CheckMainID(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                else
                    ds = oUser.CheckCzymc(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                LogService.Write("DBUtility.ClsPub.StrToPsd(PassWord.Trim()):" + DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                //if (FCusName == "夏宝电器")
                //    ds = CheckMainID(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                //else
                //    ds = CheckCzymc(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                ds = CheckMainID(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
@@ -217,6 +224,34 @@
                return objJsonResult; ;
            }
        }
        public DataSet CheckMainID(string MainID, string sPsd)
        {
            DataSet DS;
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                DS = oCn.RunProcReturn("select * from Gy_Czygl where Czybm='" + MainID + "' and Czmm='" + sPsd + "' ", "Gy_Czygl");
                if (DS.Tables[0].Rows.Count == 0)
                    return null;
                else
                {
                    return DS;
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        public DataSet CheckCzymc(string sUser, string sPsd)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SqlParameter[] prams ={oCn.MakeInParam("@Czymc",SqlDbType.VarChar,100,sUser ),
                                    oCn.MakeInParam("@Czmm",SqlDbType.VarChar ,100,sPsd ),
            };
            return oCn.RunProcReturn("select * from Gy_Czygl where Czymc='" + sUser + "' and Czmm='" + sPsd + "' ", prams, "Gy_Czygl");
        }
        /// <summary>
        /// 修改密码
        /// </summary>
@@ -241,12 +276,13 @@
                    return objJsonResult; ;
                }
                //===========
                oDs = oCn.RunProcReturn("select Czmm from  Gy_Czygl where Czymc='" + UserName + "'", "Gy_Czygl");
                //LogService.Write("select Czmm from  Gy_Czygl where Czymc='" + UserName + "' and  Czmm = '" + DBUtility.ClsPub.StrToPsd(oldPassword.Trim()) + "'");
                oDs = oCn.RunProcReturn("select Czmm from  Gy_Czygl where Czymc='" + UserName + "' and  Czmm = '" + DBUtility.ClsPub.StrToPsd(oldPassword.Trim()) + "'", "Gy_Czygl");
                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有这个用户,不能修改密码!";
                    objJsonResult.Message = "原密码错误!";
                    objJsonResult.data = null;
                    return objJsonResult; ;
                }
@@ -376,13 +412,13 @@
            try
            {
                oCn.BeginTran();
                oCn.RunProc("Insert into SRM_OpenTmp " +
                    " (HNumber,HModel,HName) " +
                    " Values('" + HNumber + "','" + HName + "','" + HName + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                //修改上级为非末级代码
                //oCn.RunProc("Update Gy_OpenTmp set HEndflag=0 where HItemID=" + oModel.HParentID, ref ClsPub.sExeReturnInfo);
                oCn.Commit();
                //oCn.BeginTran();
                //oCn.RunProc("Insert into SRM_OpenTmp " +
                //    " (HNumber,HModel,HName) " +
                //    " Values('" + HNumber + "','" + HName + "','" + HName + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                ////修改上级为非末级代码
                ////oCn.RunProc("Update Gy_OpenTmp set HEndflag=0 where HItemID=" + oModel.HParentID, ref ClsPub.sExeReturnInfo);
                //oCn.Commit();
                objjson.code = "0";
                objjson.count = 1;
                objjson.Message = "保存成功!";
@@ -412,9 +448,9 @@
            ClsCNSRM oCn = new ClsCNSRM();
            try
            {
                oCn.BeginTran();
                oCn.RunProc("Delete from SRM_OpenTmp where HItemID='" + DBUtility.ClsPub.isLong(HItemID) + "'", ref DBUtility.ClsPub.sExeReturnInfo);
                oCn.Commit();
                //oCn.BeginTran();
                //oCn.RunProc("Delete from SRM_OpenTmp where HItemID='" + DBUtility.ClsPub.isLong(HItemID) + "'", ref DBUtility.ClsPub.sExeReturnInfo);
                //oCn.Commit();
                objjson.code = "0";
                objjson.count = 1;
                objjson.Message = "删除成功!";
@@ -802,14 +838,270 @@
        {
            ClsCNSRM oCn = new ClsCNSRM();
            oCn.BeginTran();
            oCn.RunProc("Update OA_InformBillSub set HReadFlag=1 HUpDater='" + UserName + "',HUpDateDate=getdate() where HInterID='" + HInterID + "' and HEntryID='" + HEntryID + "'", ref ClsPub.sExeReturnInfo);
            oCn.RunProc("Update OA_InformBillSub set HReadFlag=1 HUpDater='" + UserName + "',HUpDateDate=getdate() where HInterID='" + HInterID + "' and HEntryID='" + HEntryID + "'", ref Pub_Class.ClsPub.sExeReturnInfo);
            oCn.Commit();
            objjson.code = "1";
            objjson.count = 1;
            objjson.Message = ClsPub.sExeReturnInfo;
            objjson.Message = Pub_Class.ClsPub.sExeReturnInfo;
            objjson.data = null;
            return objjson; ;
        }
        #endregion
        #region[打印idSession]
        [Route("linteridSession")]
        [HttpPost]
        public object linteridSession([FromBody] JObject linterid)
        {
            var _linterid = linterid["linterid"].ToString();
            var _huserName = linterid["HUserName"].ToString();
            var postMesseege = _linterid + ";" + _huserName;
            //HttpHelper.PostData("http://localhost:8082/ZYMES/layuiAdmin.std-v1.2.1/src/views/SRM/Api/SRM_Web_PoBarCodeBillApi.ashx", postMesseege);
            HttpHelper.PostData("http://60.191.21.115:9090/layuiAdmin.std-v1.2.1/src/views/SRM/Api/SRM_Web_PoBarCodeBillApi.ashx", postMesseege);
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            string sql = $"Update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0) + 1  where HItemID in ({_linterid})";
            oCn.RunProc(sql);
            objJsonResult.code = "0";
            objJsonResult.count = 0;
            objJsonResult.Message = "";
            objJsonResult.data = 1;
            return objJsonResult;
            //HttpContext.Current.Session["linterid"];
        }
        #endregion
        /// <summary>
        /// 表头信息
        /// </summary>
        /// <param name="sMsg"></param>
        /// <returns></returns>
        [Route("Web/GetMAXNum")]
        [HttpGet]
        public object GetMAXNum(string HBillType)
        {
            try
            {
                string HBillNo = "";
                Int64 HInterID = 0;//显示的字段
                HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo);
                HBillNo = DBUtility.ClsPub.CreateBillCode(HBillType, ref DBUtility.ClsPub.sExeReturnInfo, true);
                //----------创建虚表------------------------
                DataTable dt_Main = new DataTable("Json");
                dt_Main.Columns.Add("HBillNo", typeof(string));
                dt_Main.Columns.Add("HInterID", typeof(int));
                //---------创建新行------------------------
                DataRow dr_main = dt_Main.NewRow();//创建新行
                dt_Main.Rows.Add(dr_main);//将新行加入到表中
                dr_main["HBillNo"] = DBUtility.ClsPub.isStrNull(HBillNo);
                dr_main["HInterID"] = DBUtility.ClsPub.isLong(HInterID);
                if (HBillNo == null || HInterID == 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败";
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    objjson.code = "0";
                    objjson.count = 1;
                    objjson.Message = "获取成功";
                    objjson.data = dt_Main;
                    return objjson;
                }
            }
            catch (Exception e)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + e.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        //得到最大HINTERID
        public static Int64 CreateBillID(string BillCode, ref string sReturn)
        {
            string BillType = "";
            DataSet Ds;
            ClsSqlHelper oCn = new ClsSqlHelper();
            Int64 lID;
            Ds = oCn.RunProcReturn("select * from Gy_BillNumber with (nolock) where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
            if (Ds.Tables[0].Rows.Count != 0)
            {
                lID = Pub_Class.ClsPub.isLong(Ds.Tables[0].Rows[0]["IDNow"].ToString());
                BillType = Ds.Tables[0].Rows[0]["BillType"].ToString().Trim();
            }
            else
            {
                lID = 0;
            }
            //同类型单据 自增1
            if (BillType.Trim() != "")
            {
                oCn.RunProc("update Gy_BillNumber set IDNow=IDNow+1 where BillType='" + BillType.Trim() + "'");
            }
            oCn.CnClose();
            oCn.CnDispose();
            oCn = null;
            Ds = null;
            return lID;
        }
        //得到最大单据号
        public static string CreateBillCode(string BillCode, ref string sReturn, bool Add)
        {
            Int64 BillCodeMode;
            string Profix;
            Int64 Glida;
            Int32 CodeLen;
            string sBillNo = "";
            char c = Convert.ToChar("0");
            string sKjYear = DateTime.Today.Year.ToString();
            string sPeriod = DateTime.Today.Month.ToString();
            string sDay = DateTime.Today.Day.ToString();
            //得到单据号表 信息
            ClsSqlHelper oCn = new ClsSqlHelper();
            DataSet Ds = new DataSet();
            Ds = oCn.RunProcReturn("Select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
            if (Ds.Tables[0].Rows.Count != 0)
            {
                BillCodeMode = Pub_Class.ClsPub.isLong(Ds.Tables[0].Rows[0]["BillCodeMode"].ToString());
                Profix = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Profix"].ToString());
                Glida = Pub_Class.ClsPub.isLong(Ds.Tables[0].Rows[0]["Glida"].ToString());
                CodeLen = Pub_Class.ClsPub.isInt(Ds.Tables[0].Rows[0]["CodeLen"].ToString());
            }
            else
            {
                return "";
            }
            //
            string sStr;
            switch (BillCodeMode)
            {
                case 0:
                    switch (Glida)
                    {
                        case 0://纯流水号
                            Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "'", "Gy_MaxNum");
                            if (Ds.Tables[0].Rows.Count != 0)
                            {
                                sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
                                sBillNo = Profix.Trim() + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
                            }
                            else //插入新记录
                            {
                                sStr = new string(c, CodeLen - 1);
                                oCn.RunProc("insert into Gy_MaxNum(BillCode,NowNumber) values('" + BillCode.Trim() + "',1)");
                                sBillNo = Profix.Trim() + sStr + 1;
                            }
                            if (Add == true)
                            {
                                oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "'");
                            }
                            return sBillNo;
                        case 1://根据 YY年+MM月 日 + 流水号  生成单据号 (日 采用了 仓库的字段)
                            sKjYear = sKjYear.Substring(2, 2);
                            sPeriod = "0" + sPeriod;
                            sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
                            sDay = "";
                            Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum");
                            if (Ds.Tables[0].Rows.Count != 0)
                            {
                                sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
                                sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
                            }
                            else //插入新记录
                            {
                                sStr = new string(c, CodeLen - 1);
                                oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber)  values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)");
                                sBillNo = Profix.Trim() + sKjYear + sPeriod + sDay + sStr + "1";
                            }
                            if (Add == true)
                            {
                                oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'");
                            }
                            return sBillNo;
                        case 2:      //根据年+月+日  生成单据号
                            Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'", "Gy_MaxNum");
                            if (Ds.Tables[0].Rows.Count != 0)
                            {
                                sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
                                sBillNo = Profix.Trim() + sKjYear + Pub_Class.ClsPub.isStrNull(("0" + sPeriod)).Substring(Pub_Class.ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + Pub_Class.ClsPub.isStrNull(("0" + sDay)).Substring(Pub_Class.ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
                            }
                            else //插入新记录
                            {
                                sStr = new string(c, CodeLen - 1);
                                oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber)  values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)");
                                sBillNo = Profix.Trim() + sKjYear + Pub_Class.ClsPub.isStrNull(("0" + sPeriod)).Substring(Pub_Class.ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + Pub_Class.ClsPub.isStrNull(("0" + sDay)).Substring(Pub_Class.ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + 1;
                            }
                            if (Add == true)
                            {
                                oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='" + sKjYear + "' and Period='" + sPeriod + "' and whcode='" + sDay + "'");
                            }
                            return sBillNo;
                        case 3: //根据 乔一 (S + 年(23)+五位流水号)实例:S2300001
                            Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='0'  and whcode=''", "Gy_MaxNum");
                            sKjYear = sKjYear.Substring(2, 2);
                            if (Ds.Tables[0].Rows.Count != 0)
                            {
                                sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
                                Profix = Profix.Substring(0, 1);
                                sBillNo = Profix.Trim() + sKjYear + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
                            }
                            else //插入新记录
                            {
                                sStr = new string(c, CodeLen - 1);
                                oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber)  values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)");
                                sBillNo = Profix.Trim() + sKjYear + sStr + 1;
                            }
                            if (Add == true)
                            {
                                oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='0'  and whcode=''");
                            }
                            return sBillNo;
                        case 4: //根据 乔一 工序流转卡号改成年+月+四位流水号(23050001)
                            Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear='0'  and whcode=''", "Gy_MaxNum");
                            sKjYear = sKjYear.Substring(2, 2);
                            sPeriod = "0" + sPeriod;
                            sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
                            if (Ds.Tables[0].Rows.Count != 0)
                            {
                                sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
                                sBillNo = sKjYear + sPeriod + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
                            }
                            else //插入新记录
                            {
                                sStr = new string(c, CodeLen - 1);
                                oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,whcode,NowNumber)  values('" + BillCode.Trim() + "','" + sKjYear + "','" + sPeriod + "','" + sDay + "',1)");
                                sBillNo = sKjYear + sPeriod + sStr + 1;
                            }
                            if (Add == true)
                            {
                                oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear='0'  and whcode=''");
                            }
                            return sBillNo;
                        default:
                            return sBillNo;
                    }
                case 1:
                    return sBillNo;
                default:
                    return sBillNo;
            }
            oCn.CnClose();
            oCn.CnDispose();
            oCn = null;
        }
    }
}