1
dytyqx
8 天以前 0a53810d4480787b37e228e0370dfb1a17719df4
WebAPI/Controllers/LMESController.cs
@@ -12,6 +12,8 @@
using WebAPI.Models;
using System.Web;
using System.IO;
using WebAPI.Controllers.SCGL;
namespace WebAPI.Controllers
{
    public class LMESController : ApiController
@@ -25,7 +27,6 @@
        //自定义34进制数组
        private static char[] lNCode = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
        string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
        #region 返回进站扫描列表|工序进站接收单列表 
        [Route("LEMS/MES_StationInBillList_Json")]
@@ -856,11 +857,11 @@
                // 反序列化子表数据
                var detailList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(msg3);
                // 3. 开始事务
                oCN.BeginTran();
                foreach (var row in detailList)
                {
                    // 3. 开始事务
                    oCN.BeginTran();
                    DataSet ds2 = null;
                    // 获取子表字段值
                    string hSourceID = row.ContainsKey("HSourceID") ? row["HSourceID"] : "0";
                    string hMoldID = row.ContainsKey("HMoldID") ? row["HMoldID"] : "0";
@@ -871,29 +872,39 @@
                    {
                        continue;
                    }
                    string sReturn = "";
                    if (oSystemParameter.ShowBill(ref sReturn) == true)
                    {
                         if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                         {
                            oCN.RunProc("update Sc_ProcessExchangeBillMain set HMakeDate = GETDATE(),HRemark3='已派工',HMaker='" + msg4 + "' where HInterID = " + hSourceInterID);
                            LogService.Write("自动生成工作联系单...");
                            //自动生成工作联系单
                            ds2 = oCN.RunProcReturn("exec h_p_OA_WorkLinkBill_Create " + hSourceInterID + "," + 3772, "h_p_OA_WorkLinkBill_Create");
                         }
                    }
                    oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=" + hSourceID + " where HInterID=" + hSourceInterID + " and HEntryID=" + hSourceEntryID);
                    // 插入生产状态临时表
                    string SQL = $"exec h_p_Sc_ICMOBillStatus_Tmp_PGPL {hSourceInterID},{hSourceEntryID},{hSourceID},{hMoldID}";
                    oCN.RunProc(SQL);
                    //插入工序流转卡派工单
                    string SQL1 = $"exec h_p_Sc_ProcExchSendWorkBill_PG {hSourceInterID},{hSourceEntryID},{hSourceID},{hMoldID}";
                    oCN.RunProc(SQL1);
                    string sReturn = "";
                    if (oSystemParameter.ShowBill(ref sReturn) == true)
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                        {
                            oCN.RunProc("update Sc_ProcessExchangeBillMain set HMakeDate = GETDATE(),HRemark3='已派工',HMaker='" + msg4 + "' where HInterID = " + hSourceInterID);
                            //自动生成工作联系单
                            oCN.RunProc("exec h_p_OA_WorkLinkBill_Create " + hSourceInterID + "," + 3772);
                        }
                    // 7. 提交事务
                    oCN.Commit();
                    if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
                    {
                        int HInterID = int.Parse(ds2.Tables[0].Rows[0]["NewHInterID"].ToString());
                        LogService.Write("执行消息推送..." + HInterID);
                        // 触发消息推送
                        Service.GeTuiService.PubishSingle(HInterID);
                    }
                }
                // 7. 提交事务
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
@@ -915,7 +926,7 @@
        #region 取消派工功能(华舟)
        [Route("LEMS/ProcessExchangeArrangementDel_PGHZ")]
        [HttpGet]
        public object ProcessExchangeArrangementDel_PGHZ(string HInterID_S, int HSourceID, int HMouldID, string user)
        public object ProcessExchangeArrangementDel_PGHZ(string HInterID_S, string user)
        {
            DataSet ds;
            DataSet ds1;
@@ -939,8 +950,9 @@
                    long HInterID = long.Parse(HNum[j].Split('|')[0]);
                    long HEntryID = long.Parse(HNum[j].Split('|')[1]);
                    ds = oCN.RunProcReturn(@"select a.HMaterID,b.HProcID,a.HBillNo from Sc_ProcessExchangeBillMain a inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID
where a.HInterID=" + HInterID + " and b.HEntryID=" + HEntryID, "Sc_ProcessExchangeBillMain");
                    long HSourceID = long.Parse(HNum[j].Split('|')[2]);
                    ds = oCN.RunProcReturn(@"select a.HMaterID,b.HProcID,a.HBillNo from Sc_ProcessExchangeBillMain a inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID  where a.HInterID=" + HInterID + " and b.HEntryID=" + HEntryID, "Sc_ProcessExchangeBillMain");
                    LogService.Write(1);
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
@@ -949,9 +961,9 @@
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //根据主子ID+产线+模具查询是否派工
                    ds = oCN.RunProcReturn("select * from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID + " and HMouldID=" + HMouldID, "Sc_ICMOBillStatus_Tmp");
                    //根据主子ID+产线查询是否派工
                    ds = oCN.RunProcReturn("select * from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID , "Sc_ICMOBillStatus_Tmp");
                    LogService.Write(2);
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
@@ -960,9 +972,25 @@
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    LogService.Write(3);
                    oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=0 where HInterID=" + HInterID + " and HEntryID=" + HEntryID);
                    oCN.RunProc("delete from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + " and HMouldID="+ HMouldID);
                    LogService.Write(4);
                    //更新掉已派工字段
                    oCN.RunProc("update Sc_ProcessExchangeBillMain set HRemark3='' where HInterID=" + HInterID);
                    LogService.Write(5);
                    oCN.RunProc("delete from Sc_ICMOBillStatus_Tmp where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + " and HSourceID=" + HSourceID);
                    LogService.Write(6);
                    //查询是否有出站单这个工单这个产线
                    ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HProcExchInterID=" + HInterID + " and HProcExchEntryID=" + HEntryID + " and HSourceID=" + HSourceID + "", "Sc_StationOutBillMain");
                    LogService.Write(7);
                    if (ds!=null && ds.Tables[0].Rows.Count == 0)
                    {
                        //没有出站单的进行删除工序流转卡派工单
                        oCN.RunProc("delete from Sc_ProcExchSendWorkBillMain where HInterID=(select HInterID from Sc_ProcExchSendWorkBillSub where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID + " )");
                        LogService.Write(8);
                        oCN.RunProc("delete from Sc_ProcExchSendWorkBillSub where HSourceInterID=" + HInterID + " and HSourceEntryID=" + HEntryID + "  and HSourceID=" + HSourceID);
                        LogService.Write(9);
                    }
                }
                oCN.Commit();
@@ -2220,6 +2248,74 @@
            return GetObjectJson(ds);
        }
        /// <summary>
        /// 返回工序流转卡列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("LEMS/MES_Sc_ProcessExchangeBillList_Json")]
        [HttpGet]
        public object MES_Sc_ProcessExchangeBillList_Json(string sWhere, string user)
        {
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>()
;                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBillQuery", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //获取系统参数
                string Ret = "";
                if (oSystemParameter.ShowBill(ref Ret))
                {
                    //判断客户为龙山汽配
                    if (oSystemParameter.omodel.WMS_CampanyName == "龙山汽配")
                    {
                        //获取需要拼接的字符串
                        string sql_splice = DBUtility.ClsPub.SpliceSQL(user, "生产订单列表");
                        sWhere += sql_splice;
                    }
                }
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuery where 1 = 1 " + sWhere + " order by 制单日期 desc,单据号 desc", "h_v_Sc_ProcessExchangeBillQuery");
                //添加列名
                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 = a;
                //return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return GetObjectJson(ds);
        }
        #region 生产订单列表-分页
        [Route("LEMS/MES_IF_ICMOBillList_Json_byPage")]