1
duhe
2026-03-02 c3b14901031d985ef750027d4952264369a1d7b0
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();