1
yusijie
2023-05-25 c14d65aa45f6fe0eedd558bc0de345a0ccd6e22a
WebAPI/Controllers/CJGL/Cj_StationInBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -6,6 +7,7 @@
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers
@@ -30,14 +32,31 @@
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            try
            {
                //委外工序发出反序列化
                msg1 = "[" + msg1.ToString() + "]";
                List<StationBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg1);
                string msg2 = "[" + sArray[0].ToString() + "]";
                string user = sArray[1].ToString();
                string HComputerName = SystemInformation.ComputerName; //设备名称
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无编辑权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                List<StationBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2);
                long HMainInterID = 0;
                HMainInterID = list[0].HMainInterID;
                long HProcExchInterID = list[0].lngBillKey;//流转卡主内码
                if (HProcExchInterID <= 0)
                {
                    objJsonResult.code = "0";
@@ -55,8 +74,8 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                long HProcNo = list[0].HProcNo;//流水号
                if (HProcNo <= 0)
                string HProcNo = list[0].HProcNo;//流水号
                if (HProcNo == "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -78,7 +97,7 @@
                long HInterID = list[0].HInterID;//递入type得到的单据ID
                string HBillNo = list[0].HBillNo;//递入type得到的单据号
                int HBillStatus = 0;
                string HMaker = list[0].HMaker;//制单人
                string HMaker = user;//制单人
                int HYear = 2021;
                double HPeriod = 1;
                string HRemark = list[0].HRemark;//备注
@@ -106,6 +125,8 @@
                string HSourceName = list[0].HSourceName;//生产资源名称
                long HCenterID = list[0].HCenterID;//工作中心ID
                string HOrderProcNO = list[0].HOrderProcNO;//订单跟踪号
                long HPRDOrgID = list[0].HPRDOrgID;//组织ID
                double HmaterOutqty = list[0].HmaterOutqty;//白坯发布
                //单据完整性判断
                if (HMaterID <= 0)
                {
@@ -172,7 +193,8 @@
                    ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" +
                    ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" +
                    ",HSupID,HQty,HPrice,HMoney,HPieceQty,HSourceName,HCenterID" +
                    ",HProcNo,HOrderProcNO,HMainInterID" +
                    ",HProcNo,HOrderProcNO,HMainInterID,HPRDOrgID" +
                    ",HmaterOutqty" +
                    ") " +
                    " values('" + BillType + "','" + BillType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" +
                    "," + HYear + "," + HPeriod + ",'" + HRemark + "'" +
@@ -180,8 +202,11 @@
                    ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID +
                    "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" +
                    "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty + ",'" + HSourceName + "'," + HCenterID +
                    ",'" + HProcNo + "','" + HOrderProcNO + "'," + HMainInterID +
                    ") ");
                    ",'" + HProcNo + "','" + HOrderProcNO + "','" + HMainInterID + "'," + HPRDOrgID +
                    ","+ HmaterOutqty + ") ");
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增工序进站单据:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增工序进站单据:" + HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if ("Modify".Equals(eventType))
                {
@@ -209,6 +234,7 @@
                    ",HProcExchBillNo='" + HProcExchBillNo + "'" +
                    ",HMaterID=" + HMaterID +
                    ",HProcID=" + HProcID +
                    ",HmaterOutqty=" + HmaterOutqty +
                    ",HICMOQty=" + HICMOQty +
                    ",HPlanQty=" + HPlanQty +
                    ",HStationInTime=getdate()" +
@@ -223,6 +249,9 @@
                    ",HProcNo='" + HProcNo + "'" +
                    ",HOrderProcNO='" + HOrderProcNO + "'" +
                    " where HInterID=" + HInterID);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改工序进站单据:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改工序进站单据:" + HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
@@ -276,6 +305,18 @@
                }
                oCN.Commit();
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.MES_StationInBill_SaveAutoAddnew == "Y") //系统参数  自动审核
                    {
                        objJsonResult.Verify = "Y";
                    }
                    else
                    {
                        objJsonResult.Verify = "N";
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增单据成功!";
@@ -348,39 +389,183 @@
        }
        #endregion
        #region 返回工序进站接收单列表
        [Route("Cj_StationInBill/get_Display")]
        #region 工序进站接收单流水号回车获取工序信息
        [Route("Cj_StationInBill/txtHProcNo_KeyDown_qiaoyi")]
        [HttpGet]
        public object get_Display(string sWhere)
        public object txtHProcNo_KeyDown_qiaoyi(string sBillNo, string sProcNo)
        {
            try
            {
                if (sWhere == null || sWhere.Equals(""))
                if (sBillNo.Equals("") || sProcNo.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_MES_StationInBillList " + sWhere+ " order by 进站时间 desc", "h_v_MES_StationInBillList");
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "条形码不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    string sql1 = "select * from h_v_MES_StationInBillList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_MES_StationInBillList");
                }
                //得到信息(委外标记为0时,流转标记为1时)
                ds = oCN.RunProcReturn("select top 2 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + sBillNo + "' and 下道流转工序<>'转' and 委外标记=0 and 流转标记=1  and cast(工序号 as int)<='" + sProcNo + "' order by cast(工序号 as int) desc", "h_v_Sc_ProcessExchangeBillList");
                //Ds = oCn.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 单据号= '" + sBillNo + "' and 工序号='" + sProcNo + "' and 委外标记=0 and 流转标记=1 ", "h_v_Sc_ProcessExchangeBillList");
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "查询数据异常,请与管理员联系!";
                    objJsonResult.Message = "工序号错误或者当前工序号不允许进站,请重新输入!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 工序进站接收单根据职员代码模糊回车查询
        [Route("Cj_StationInBill/GetMessageByEmpNumber")]
        [HttpGet]
        public object GetMessageByEmpNumber(string HEmpNumber)
        {
            try
            {
                //得到信息
                ds = oCN.RunProcReturn("select top 1 * from gy_employee  where hnumber like '%" + HEmpNumber + "%'", "gy_employee");
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "返回记录成功!";
                    objJsonResult.data = ds.Tables[0];
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到出站单明细信息!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 工序进站接收单根据物料代码模糊回车查询
        [Route("Cj_StationInBill/GetMessageByMaterNumber")]
        [HttpGet]
        public object GetMessageByMaterNumber(string HMaterNumber)
        {
            try
            {
                //得到信息
                ds = oCN.RunProcReturn("select top 1 * from gy_material  where hnumber like '%" + HMaterNumber + "%'", "gy_material");
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到物料信息!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 返回工序进站接收单列表
        [Route("Cj_StationInBill/get_Display")]
        [HttpGet]
        public object get_Display(string sWhere,string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查询权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_MES_StationInBillList order by hmainid desc", "h_v_MES_StationInBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_MES_StationInBillList where 1 = 1 ";
                    string sql = sql1 + sWhere+ " order by hmainid desc";
                    ds = oCN.RunProcReturn(sql, "h_v_MES_StationInBillList");
                }
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
                //}
                //else
                //{
                //objJsonResult.code = "0";
                //objJsonResult.count = 0;
                //objJsonResult.Message = "无数据";
                //objJsonResult.data = null;
                //return objJsonResult;
                //}
            }
            catch (Exception e)
            {
@@ -480,9 +665,9 @@
        {
            try
            {
                string ModRightNameCheck = "MES_StationInBill_Check";
                string ModRightNameCheck = "Cj_StationInBill_Check";
                //审核权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true,CurUserName))
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false,CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -597,6 +782,17 @@
        {
            try
            {
                string ModRightNameCheck = "Cj_StationInBill_Check";
                //审核权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "反审核失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == 0)
                {
                    objJsonResult.code = "0";
@@ -777,9 +973,9 @@
        {
            try
            {
                string HComputerName = SystemInformation.ComputerName; //设备名称
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log("MES_StationInBill_Delete", 1, true, HDeleteMan))
                if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Drop", 1, false, HDeleteMan))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -790,14 +986,22 @@
                DAL.ClsSc_StationInBill oBill = new DAL.ClsSc_StationInBill();
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    if (oBill.omodel.HMaker != HDeleteMan && (HDeleteMan != "admin" && HDeleteMan != "Admin"))
                    string sReturn = "";
                    if (oSystemParameter.ShowBill(ref sReturn))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "只能删除本人的单据!";
                        objJsonResult.data = null;
                        return objJsonResult;
                        if (oSystemParameter.omodel.MES_StationInBill_DeleteCtl == "Y")
                        {
                            if (oBill.omodel.HMaker != HDeleteMan && (HDeleteMan != "admin" && HDeleteMan != "Admin"))
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "只能删除本人的单据!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                    SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                    DataSet ds;
@@ -828,8 +1032,18 @@
                        return objJsonResult;
                    }
                    //写入删除日志
                    string WorkList = "删除进站单:" + oBill.omodel.HBillNo;
                    ds = oCn.RunProcReturn($"exec h_p_DelOutInBill {HInterID},'MES_StationInBill_DeleteRelationCtl'", "h_p_DelOutInBill");
                    if (ds.Tables[0].Rows[0][0].ToString() == "0")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "系统参数控制,已有下道工序,不能删除!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, ref DBUtility.ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
@@ -840,6 +1054,10 @@
                    }
                    else
                    {
                        //写入删除日志
                        LogService.Write("用户:" + HDeleteMan + ",日期:" + DateTime.Now + ",删除工序进站单据:" + oBill.omodel.HBillNo);
                        oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + HDeleteMan + "','" + HComputerName + "','" + "删除工序进站单据:" + oBill.omodel.HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','删除单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "删除成功!";
@@ -903,5 +1121,61 @@
            }
        }
        #endregion
        #region 返回用户获取默认值列表
        [Route("Cj_StationInBill/GetDefValByUser")]
        [HttpGet]
        public object GetDefValByUser(string Czybm, string Czymc)
        {
            try
            {
                ////判断是否有查询权限
                //if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Query", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查询权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (Czymc == null || Czymc.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Cj_GetDefValByUser", "h_v_Cj_GetDefValByUser");
                }
                else
                {
                    string sql1 = "select * from h_v_Cj_GetDefValByUser where 1 = 1 ";
                    string sql = sql1 + " and 用户编码 ='" + Czybm + "' and 用户名称 ='" + Czymc + "'";
                    ds = oCN.RunProcReturn(sql, "h_v_Cj_GetDefValByUser");
                }
                if (ds.Tables[0].Rows.Count != 0 || ds != null)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无数据";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}