From fc9f979e90c300778c6dd43804145dac6db185e5 Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期四, 12 二月 2026 19:39:07 +0800
Subject: [PATCH] 1
---
SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt | 4
WebAPI/Controllers/成本管理/CB_WipProcessTableController.cs | 287 +++++++++++++++++
Model/生产管理/模具管理/ClsSc_MouldConkBookBillMain.cs | 2
Model/生产管理/设备管理/ClsSb_EquipConkBookBillMain.cs | 3
WebAPI/Controllers/条码管理/WEBSController.cs | 2
WebAPI/WebAPI.csproj.user | 2
WebAPI/Controllers/BaseSet/Gy_ConkTypeController.cs | 57 +++
WebAPI/Controllers/LMESController.cs | 35 +
WebAPI/Controllers/Sc_MouldRepairInBillListController.cs | 12
WebAPI/Controllers/WebAPIController.cs | 3
WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs | 14
DAL/生产管理/模具管理/ClsSc_MouldConkBookBill.cs | 4
WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs | 20 +
WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user | 20
WebAPI/Service/GeTuiService.cs | 19 +
WebAPI/DLL/ClsSb_EquipConkBookBill.cs | 4
WebAPI/Service/WebSocketServer.cs | 6
WebAPI/Controllers/品质管理/首件检验单/QC_FirstPieceCheckBillController.cs | 15
WebAPI/Controllers/成本管理/CB_ItemMoneyBillController.cs | 408 +++++++++++++++++++++++++
WebAPI/WebAPI.csproj | 2
20 files changed, 880 insertions(+), 39 deletions(-)
diff --git "a/DAL/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBill.cs" "b/DAL/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBill.cs"
index e0f472b..0c0a98a 100644
--- "a/DAL/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBill.cs"
+++ "b/DAL/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBill.cs"
@@ -190,14 +190,14 @@
",HYear,HPeriod,HRemark" +
",HMouldID,HConkTypeID,HConkBeginDate,HEndDate"+
",HEmpID,HManagerID,HDeptID"+
- ",HInnerBillNo,HExplanation" +
+ ",HInnerBillNo,HExplanation, HRepairManID" +
") " +
" values('" + this.BillType + "','" + this.HBillSubType + "'," +omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "','" + DBUtility.ClsPub.CurUserName + "',getdate()" +
"," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "'"+
"," + omodel.HMouldID.ToString() + "," + omodel.HConkTypeID.ToString() + ",'" + omodel.HConkBeginDate + "','" + omodel.HEndDate + "'"+
"," + omodel.HEmpID.ToString() + "," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() +
",'" + omodel.HInnerBillNo + "','" + omodel.HExplanation + "'" +
- ") ");
+ $",{omodel.HRepairManID}) ");
//鎻掑叆瀛愯〃
foreach (Model.ClsSc_MouldConkBookBillSub oSub in DetailColl)
{
diff --git "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBillMain.cs" "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBillMain.cs"
index a85cf16..a052f73 100644
--- "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBillMain.cs"
+++ "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\346\250\241\345\205\267\347\256\241\347\220\206/ClsSc_MouldConkBookBillMain.cs"
@@ -18,5 +18,7 @@
public string HExplanation;// varchar(500) --故障描述
public string HInnerBillNo;// varchar(50) --内部单据号
+ public long HRepairManID; // -- 维修人
+
}
}
diff --git "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\350\256\276\345\244\207\347\256\241\347\220\206/ClsSb_EquipConkBookBillMain.cs" "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\350\256\276\345\244\207\347\256\241\347\220\206/ClsSb_EquipConkBookBillMain.cs"
index 26e98ca..34c4e95 100644
--- "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\350\256\276\345\244\207\347\256\241\347\220\206/ClsSb_EquipConkBookBillMain.cs"
+++ "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\350\256\276\345\244\207\347\256\241\347\220\206/ClsSb_EquipConkBookBillMain.cs"
@@ -19,5 +19,8 @@
public string HLev; // --紧急程度( 紧急,普通)
public string HReason; //varchar(200) --故障原因分析及预防措施
+ public Int64 HRepairManID;
+
+
}
}
diff --git a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
index a9bf882..8913478 100644
--- a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
+++ b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -24,4 +24,8 @@
D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
+<<<<<<< HEAD
C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
+=======
+D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
+>>>>>>> 28e8091a515d24a9cf82251f383f055a2ab0cff9
diff --git a/WebAPI/Controllers/BaseSet/Gy_ConkTypeController.cs b/WebAPI/Controllers/BaseSet/Gy_ConkTypeController.cs
index 20a17db..2dde268 100644
--- a/WebAPI/Controllers/BaseSet/Gy_ConkTypeController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_ConkTypeController.cs
@@ -539,6 +539,63 @@
}
}
+ [Route("Gy_ConkType/List_PDA2")]
+ [HttpGet]
+ public object List_PDA(string sWhere, string user, string Mode)
+ {
+ if (string.IsNullOrWhiteSpace(Mode))
+ {
+ return List_PDA(sWhere, user);
+ }
+ try
+ {
+ string errRef = "";
+ List<object> columnNameList = new List<object>();
+
+ if(oClsXt_SystemParameter.ShowBill(ref errRef))
+ {
+ if(oClsXt_SystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+ {
+ if(Mode == "Module")
+ {
+ sWhere += $" and 鏁呴殰绫诲埆浠g爜 like 'MJ%' ";
+ }
+ else if (Mode == "Equip")
+ {
+ sWhere += $" and 鏁呴殰绫诲埆浠g爜 like 'SB%' ";
+ }
+ }
+ }
+
+ sWhere += $" and 绂佺敤鏍囧織='' ";
+ LogService.Write(sWhere);
+ string sql1 = string.Format(@"select * from h_v_Gy_ConkTypeList where 1=1 ");
+ ds = oCN.RunProcReturn(sql1 + sWhere + " order by 鏁呴殰绫诲埆浠g爜 ", "h_v_Gy_ConkTypeList");
+
+ //娣诲姞鍒楀悕
+ 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));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+ }
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "Sucess锛�";
+ objJsonResult.data = ds.Tables[0];
+ objJsonResult.list = columnNameList;
+ return objJsonResult;
+ }
+ catch (Exception e)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "Exception锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
diff --git a/WebAPI/Controllers/LMESController.cs b/WebAPI/Controllers/LMESController.cs
index 288e6bd..e175fac 100644
--- a/WebAPI/Controllers/LMESController.cs
+++ b/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";
@@ -874,13 +875,15 @@
string sReturn = "";
if (oSystemParameter.ShowBill(ref sReturn) == true)
{
- if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
- {
+ if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+ {
oCN.RunProc("update Sc_ProcessExchangeBillMain set HMakeDate = GETDATE(),HRemark3='宸叉淳宸�',HMaker='" + msg4 + "' where HInterID = " + hSourceInterID);
+ LogService.Write("鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�...");
//鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�
- oCN.RunProc("exec h_p_OA_WorkLinkBill_Create " + hSourceInterID + "," + 3772);
- }
+ 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);
// 鎻掑叆鐢熶骇鐘舵�佷复鏃惰〃
@@ -888,11 +891,21 @@
oCN.RunProc(SQL);
//鎻掑叆宸ュ簭娴佽浆鍗℃淳宸ュ崟
string SQL1 = $"exec h_p_Sc_ProcExchSendWorkBill_PG {hSourceInterID},{hSourceEntryID},{hSourceID},{hMoldID}";
- oCN.RunProc(SQL1);
+ oCN.RunProc(SQL1);
+
+ // 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);
+
+ // 瑙﹀彂娑堟伅鎺ㄩ��
+ new Sc_MESTransFerWorkBillController().AuditOA_WorkLinkBill(HInterID, 0, msg4);
+ }
}
- // 7. 鎻愪氦浜嬪姟
- oCN.Commit();
+
objJsonResult.code = "1";
objJsonResult.count = 1;
diff --git a/WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs b/WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs
index 5bb9568..fa27591 100644
--- a/WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs
+++ b/WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs
@@ -223,15 +223,29 @@
",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
",HEquipID,HExplanation,HInnerBillNo,HRepairID,HEmpID" +
",HManagerID,HDeptID,HRepairContent,HRepairPlanBeginDate,HRepairPlanEndDate" +
- ",HPlanTimes,HCycleUnit" +
+ ",HPlanTimes,HCycleUnit,HMainSourceBillType,HMainSourceInterID,HMainSourceEntryID" +
") " +
" values('" + BillType + "','" + BillType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
- ", Year(getdate()),Month(getdate()),'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
+ ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
", " + omodel.HEquipID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + omodel.HRepairID.ToString() + "," + omodel.HEmpID.ToString() +
"," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HRepairContent + "','" + omodel.HRepairPlanBeginDate + "','" + omodel.HRepairPlanEndDate + "'" +
- "," + omodel.HPlanTimes.ToString() + ",'" + omodel.HCycleUnit + "'" +
+ "," + omodel.HPlanTimes.ToString() + ",'" + omodel.HCycleUnit + "','" + omodel.HMainSourceBillType + "','" + omodel.HMainSourceInterID + "','" + omodel.HMainSourceEntryID + "'" +
") ");
+
+ // "Insert Into Sb_EquipRepairSendWorkBillMain" +
+ // "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
+ // ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+ // ",HEquipID,HExplanation,HInnerBillNo,HRepairID,HEmpID" +
+ // ",HManagerID,HDeptID,HRepairContent,HRepairPlanBeginDate,HRepairPlanEndDate" +
+ // ",HPlanTimes,HCycleUnit" +
+ // ") " +
+ // " values('" + BillType + "','" + BillType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
+ // ", Year(getdate()),Month(getdate()),'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
+ // ", " + omodel.HEquipID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + omodel.HRepairID.ToString() + "," + omodel.HEmpID.ToString() +
+ // "," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HRepairContent + "','" + omodel.HRepairPlanBeginDate + "','" + omodel.HRepairPlanEndDate + "'" +
+ // "," + omodel.HPlanTimes.ToString() + ",'" + omodel.HCycleUnit + "'" +
+ // ") "
}
else if (OperationType == 3)
{
diff --git a/WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs b/WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs
index 1d59420..905556d 100644
--- a/WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs
+++ b/WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs
@@ -1291,6 +1291,7 @@
ListModels oListModels = new ListModels();
try
{
+ string errRef = "";
if (!DBUtility.ClsPub.Security_Log("Sb_EquipConkBookBill_Edit", 1, false, msg4))
{
objJsonResult.code = "0";
@@ -1336,6 +1337,18 @@
//oItem.HRepairID = 0; //缁翠慨椤圭洰(Gy_Repair)
//oItem.HRemark = ""; //澶囨敞
//oItem.HMainSourceInterID = oItem.HInterID;
+ if (oSystemParameter.ShowBill(ref errRef))
+ {
+ // if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+ // {
+ // oItem.HRepairManID = oItem.HEmpID;
+ // }
+ // else
+ // {
+ oItem.HRepairManID = 0;
+ // }
+ }
+
//oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
@@ -1377,7 +1390,6 @@
//oItemSub.HManagerID = 0; //璐熻矗浜篒D
//oItemSub.HMoney = 0; //缁翠慨璐圭敤
oBill.DetailColl.Add(oItemSub);
-
}
//淇濆瓨
//淇濆瓨瀹屾瘯鍚庡鐞�
diff --git a/WebAPI/Controllers/Sc_MouldRepairInBillListController.cs b/WebAPI/Controllers/Sc_MouldRepairInBillListController.cs
index 00b3256..438e5f8 100644
--- a/WebAPI/Controllers/Sc_MouldRepairInBillListController.cs
+++ b/WebAPI/Controllers/Sc_MouldRepairInBillListController.cs
@@ -6058,6 +6058,7 @@
ListModels oListModels = new ListModels();
try
{
+ string sErrMsg = "";
if (!DBUtility.ClsPub.Security_Log("Sc_MouldConkBookBill_Edit", 1, false, msg4))
{
objJsonResult.code = "0";
@@ -6083,6 +6084,17 @@
//oItem.HInnerBillNo = ""; // --鍐呴儴鍗曟嵁鍙�
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+ if(oSystemParameter.ShowBill(ref sErrMsg) == true)
+ {
+ // if(oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
+ // {
+ // oItem.HRepairManID = oItem.HEmpID;
+ // }else
+ // {
+ oItem.HRepairManID = 0;
+ // }
+ }
+
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
{
objJsonResult.code = "0";
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 9f5f033..3bfaf2f 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -1518,7 +1518,7 @@
/// <returns></returns>
[Route("Web/GetEmployeeList_Json")]
[HttpGet]
- public object GetEmployeeList_Json(string Employee, Int64 HGroupID)
+ public object GetEmployeeList_Json2(string Employee, Int64 HGroupID)
{
sWhere = " Where HStopFlag=0 and HEndFlag=1";
//sWhere = " Where HStopFlag=0 and HEndFlag=1 and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
@@ -1576,6 +1576,7 @@
}
}
+
/// <summary>
/// 鑾峰彇鐝鍒楄〃
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
index 97ac3e4..fef7878 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
@@ -8,6 +8,7 @@
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
+using WebAPI.Controllers.SCGL;
using WebAPI.Models;
namespace WebAPI.Controllers
@@ -409,10 +410,18 @@
{
if (oSystemParameter.omodel.WMS_CampanyName == "鍗庤垷")
{
-
-
//鑷姩鐢熸垚宸ヤ綔鑱旂郴鍗�
- oCN.RunProc("exec h_p_OA_WorkLinkBill_Create " + BillNew.omodel.HInterID + "," + 7505);
+ // oCN.RunProc("exec h_p_OA_WorkLinkBill_Create " + BillNew.omodel.HInterID + "," + 7505);
+
+ var ds2 = oCN.RunProcReturn("exec h_p_OA_WorkLinkBill_Create " + BillNew.omodel.HInterID + "," + 7505, "h_p_OA_WorkLinkBill_Create");
+ if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
+ {
+ int HInterID = int.Parse(ds2.Tables[0].Rows[0]["NewHInterID"].ToString());
+ LogService.Write("鎵ц娑堟伅鎺ㄩ��..." + HInterID);
+
+ // 瑙﹀彂娑堟伅鎺ㄩ��
+ new Sc_MESTransFerWorkBillController().AuditOA_WorkLinkBill(HInterID, 0, user);
+ }
}
}
}
diff --git "a/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_ItemMoneyBillController.cs" "b/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_ItemMoneyBillController.cs"
index ffd37ef..0c5e92c 100644
--- "a/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_ItemMoneyBillController.cs"
+++ "b/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_ItemMoneyBillController.cs"
@@ -6,8 +6,13 @@
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
+using System.Web;
using System.Web.Http;
using WebAPI.Models;
+using WebAPI.Controllers.SCGL.鏃ヨ鍒掔鐞�;
+using System.IO;
+using System.Linq;
+using System.Text;
namespace WebAPI.Controllers
{
@@ -950,5 +955,408 @@
#endregion
+
+ #region 鏂囦欢涓婁紶
+ [Route("CB_ItemMoneyBillController/CB_ItemMoneyBill_Excel")]
+ [HttpPost]
+ public json CB_ItemMoneyBill_Excel()
+ {
+ json res = new json();
+ try
+ {
+ //鑾峰彇鏂囦欢鍚嶇О
+ var file = HttpContext.Current.Request.Files[0];
+ //鑾峰彇鏂囦欢鐗╃悊璺緞
+ string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
+ //淇濆瓨鏂囦欢
+ file.SaveAs(ExcelPath);
+
+ SCGL.鏃ヨ鍒掔鐞�.NpoiHelper np = new NpoiHelper();
+ DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
+
+ //鍒犻櫎鏂囦欢
+ File.Delete(ExcelPath);
+
+ //鍒涘缓涓存椂琛�
+ DataTable provisional = new DataTable("dt2");
+
+ //娣诲姞鍒楀悕
+ for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
+ {
+ provisional.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
+ }
+ provisional.Columns.Add("鍗曟嵁鍙�", typeof(string));
+
+ //娣诲姞鏁版嵁
+ for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = provisional.NewRow();
+ for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
+ {
+ row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
+ }
+ provisional.Rows.Add(row);
+ }
+
+ //鍒ゆ柇鍒�
+ string error = JudgmentColumns(provisional);
+ if (error.Length > 0)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = $"Excel妯℃澘瀛樺湪閿欒,{error}\r\n";
+ res.data = null;
+ return res;
+ }
+
+ for (int i = 0; i <= provisional.Rows.Count - 1; i++)
+ {
+ //string HBillNo= DBUtility.ClsPub.CreateBillCode("1802", ref DBUtility.ClsPub.sExeReturnInfo, true);
+ //provisional.Rows[i]["鍗曟嵁鍙�"] = HBillNo;
+ string HDepNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["閮ㄩ棬浠g爜"].ToString());
+ string HDepName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["閮ㄩ棬"].ToString());
+
+ string HEmpNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鑱屽憳浠g爜"].ToString());
+ string HEmpName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鑱屽憳"].ToString());
+
+ string HICMOBillNo = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鐢熶骇璁㈠崟鍙�"].ToString());
+
+ string HCostItemNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎴愭湰椤圭洰浠g爜"].ToString());
+ string HCostItemName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎴愭湰椤圭洰"].ToString());
+
+ //string HEntryID = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["瀛愯〃鍐呯爜"].ToString());
+
+ string HDepNumber_sub = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["瀛愰儴闂ㄤ唬鐮�"].ToString());
+ string HDepName_sub = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["瀛愰儴闂�"].ToString());
+
+ string HMaterNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鐗╂枡缂栫爜"].ToString());
+ string HMaterName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鐗╂枡鍚嶇О"].ToString());
+
+ string HQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鏁伴噺"].ToString());
+ string HPrice = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鍗曚环"].ToString());
+ string HMoney = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["閲戦"].ToString());
+ string HWaster = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎹熻�楅噺"].ToString());
+ //string HRelationQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鍏宠仈鏁伴噺"].ToString());
+ //string HRelationMoney = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鍏宠仈閲戦"].ToString());
+ string remark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["澶囨敞"].ToString());
+
+ //鑾峰彇鐪熷疄琛屾暟
+ int line = i + 1;
+ }
+
+ res.code = "1";
+ res.count = 1;
+ res.Message = error;
+ res.data = provisional;
+ return res;
+ }
+ catch (Exception e)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = "Exception锛�" + e.ToString();
+ res.data = null;
+ return res;
+ }
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇鍒�
+ /// </summary>
+ /// <param name="provisional"></param>
+ /// <returns></returns>
+ private static string JudgmentColumns(DataTable provisional)
+ {
+ var error = "";
+
+ //鏌ヨ娌℃湁鐨勫垪
+ //if (!provisional.Columns.Contains("瀛愯〃鍐呯爜"))
+ // error += "娌℃湁鎵惧埌銆愬瓙琛ㄥ唴鐮併�戠殑鏍囬,";
+
+ if (!provisional.Columns.Contains("鐗╂枡缂栫爜"))
+ error += "娌℃湁鎵惧埌銆愮墿鏂欑紪鐮併�戠殑鏍囬,";
+ return error;
+ }
+ #endregion
+
+ #region 涓婁紶淇濆瓨
+ [Route("CB_ItemMoneyBillController/Excel_btnSave")]
+ [HttpPost]
+ public object Excel_btnSave([FromBody] JObject sMainSub)
+ {
+ var _value = sMainSub["sMainSub"].ToString();
+ string msg1 = _value.ToString();
+ string[] sArray = msg1.Split(new string[] { "&鍜�" }, StringSplitOptions.RemoveEmptyEntries);
+ string msg2 = sArray[0].ToString();
+ string user = sArray[1].ToString();
+ string organ = sArray[2].ToString();
+ json res = new json();
+
+ try
+ {
+ oCN.BeginTran();
+ List<object> Excel = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(msg2);
+ List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
+
+ foreach (JObject item in Excel)
+ {
+ Dictionary<string, string> dic = new Dictionary<string, string>();
+ foreach (var itm in item.Properties())
+ {
+ dic.Add(itm.Name, itm.Value.ToString());
+ }
+ list.Add(dic);
+ }
+
+ // 1. 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑鏁版嵁
+ var HBillnos = list.Select(x => x["鍗曟嵁鍙�"].ToString()).Distinct().ToList();
+ var HDeptNames = list.Select(x => x["閮ㄩ棬"].ToString()).Distinct().ToList();
+ var HDeptNumbers = list.Select(x => x["閮ㄩ棬浠g爜"].ToString()).Distinct().ToList();
+ var HDeptNames_sub = list.Select(x => x["瀛愰儴闂�"].ToString()).Distinct().ToList();
+ var HDeptNumbers_sub = list.Select(x => x["瀛愰儴闂ㄤ唬鐮�"].ToString()).Distinct().ToList();
+ var materialNumbers = list.Select(x => x["鐗╂枡缂栫爜"].ToString()).Distinct().ToList();
+ var materialNames = list.Select(x => x["鐗╂枡鍚嶇О"].ToString()).Distinct().ToList();
+ var EmpNumbers = list.Select(x => x["鑱屽憳浠g爜"].ToString()).Distinct().ToList();
+ var EmpNames = list.Select(x => x["鑱屽憳"].ToString()).Distinct().ToList();
+ var CostNumbers = list.Select(x => x["鎴愭湰椤圭洰浠g爜"].ToString()).Distinct().ToList();
+ var CostNames = list.Select(x => x["鎴愭湰椤圭洰"].ToString()).Distinct().ToList();
+ var ICMONumbers = list.Select(x => x["鐢熶骇璁㈠崟鍙�"].ToString()).Distinct().ToList();
+
+ // 2. 鎵归噺鏌ヨ鐢熶骇璁㈠崟鍐呯爜
+ string ICMOQuery = $"SELECT HInterID,HBillNo FROM Sc_ICMOBillMain WHERE HBillNo IN ({string.Join(",", ICMONumbers.Select(s => $"'{s.Replace("'", "''")}'"))})";
+ DataSet icmoData = oCN.RunProcReturn(ICMOQuery, "Sc_ICMOBillMain");
+ Dictionary<string, int> ICMODict = new Dictionary<string, int>();
+ foreach (DataRow row in icmoData.Tables[0].Rows)
+ {
+ ICMODict[row["HBillNo"].ToString()] = (int)row["HInterID"];
+ }
+
+ // 2. 鎵归噺鏌ヨ涓诲瓙琛ㄩ儴闂ㄤ俊鎭�
+ string supplierQuery = $"SELECT HItemID, HName FROM Gy_Department WHERE HName IN ({string.Join(",", HDeptNames.Select(s => $"'{s.Replace("'", "''")}'"))})";
+ DataSet supData = oCN.RunProcReturn(supplierQuery, "Gy_Department");
+ Dictionary<string, int> supplierDict = new Dictionary<string, int>();
+ foreach (DataRow row in supData.Tables[0].Rows)
+ {
+ supplierDict[row["HName"].ToString()] = (int)row["HItemID"];
+ }
+
+ // 2.1 鎵归噺鏌ヨ涓诲瓙琛ㄩ儴闂ㄤ俊鎭�
+ string supplierQuery_sub = $"SELECT HItemID, HName FROM Gy_Department WHERE HName IN ({string.Join(",", HDeptNames_sub.Select(s => $"'{s.Replace("'", "''")}'"))})";
+ DataSet supData_sub = oCN.RunProcReturn(supplierQuery_sub, "Gy_Department");
+ Dictionary<string, int> supplierDict_sub = new Dictionary<string, int>();
+ foreach (DataRow row in supData_sub.Tables[0].Rows)
+ {
+ supplierDict_sub[row["HName"].ToString()] = (int)row["HItemID"];
+ }
+
+ // 3. 鎵归噺鏌ヨ鐗╂枡淇℃伅
+ string materialQuery =
+ $"SELECT HItemID, HNumber, HName FROM Gy_Material WHERE HNumber IN ({string.Join(",", materialNumbers.Select(m => $"'{m.Replace("'", "''")}'"))}) AND HName IN ({string.Join(",", materialNames.Select(m => $"'{m.Replace("'", "''")}'"))})";
+ DataSet materData = oCN.RunProcReturn(materialQuery, "Gy_Material");
+ Dictionary<string, int> materialDict = new Dictionary<string, int>();
+ foreach (DataRow row in materData.Tables[0].Rows)
+ {
+ string key = $"{row["HNumber"]}_{row["HName"]}";
+ materialDict[key] = (int)row["HItemID"];
+ }
+
+ // 3. 鎵归噺鏌ヨ鑱屽憳淇℃伅
+ string EmployeeQuery =
+ $"SELECT HItemID, HNumber, HName FROM Gy_Employee WHERE HNumber IN ({string.Join(",", EmpNumbers.Select(m => $"'{m.Replace("'", "''")}'"))}) AND HName IN ({string.Join(",", EmpNames.Select(m => $"'{m.Replace("'", "''")}'"))})";
+ DataSet EmpData = oCN.RunProcReturn(EmployeeQuery, "Gy_Employee");
+ Dictionary<string, int> EmpDict = new Dictionary<string, int>();
+ foreach (DataRow row in EmpData.Tables[0].Rows)
+ {
+ string key = $"{row["HName"].ToString()}";
+ EmpDict[key] = (int)row["HItemID"];
+ }
+
+ // 3. 鎵归噺鏌ヨchengbenxiangmu淇℃伅
+ string CostQuery = $"SELECT HItemID, HNumber, HName FROM Gy_ItemMoney_1 WHERE HNumber IN ({string.Join(",", CostNumbers.Select(m => $"'{m.Replace("'", "''")}'"))}) AND HName IN ({string.Join(",", CostNames.Select(m => $"'{m.Replace("'", "''")}'"))})";
+ DataSet CostData = oCN.RunProcReturn(CostQuery, "Gy_ItemMoney_1");
+ Dictionary<string, int> CostDict = new Dictionary<string, int>();
+ foreach (DataRow row in CostData.Tables[0].Rows)
+ {
+ string key = $"{row["HName"].ToString()}";
+ CostDict[key] = (int)row["HItemID"];
+ }
+
+ // 4. 鏌ヨ鐢ㄦ埛淇℃伅
+ DataSet emp = oCN.RunProcReturn($"SELECT Czybm FROM Gy_Czygl WHERE Czymc = '{user.Replace("'", "''")}'", "Gy_Czygl");
+ if (emp.Tables[0].Rows.Count == 0)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = "鐢ㄦ埛涓嶅瓨鍦紒";
+ res.data = null;
+ return res;
+ }
+ string HUserID = emp.Tables[0].Rows[0]["Czybm"].ToString();
+
+ // 5. 妫�鏌ョ己澶辩殑閮ㄩ棬鍜岀墿鏂欙紝骞惰褰曡鍙�
+ List<string> missingSupplierMessages = new List<string>();
+ List<string> missingMaterialMessages = new List<string>();
+
+ // 閬嶅巻姣忎竴琛屾暟鎹紝璁板綍琛屽彿锛堜粠1寮�濮嬶級
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+ int lineNumber = i + 1; // 琛屽彿浠�1寮�濮�
+
+ string ICMOcheck = item["鐢熶骇璁㈠崟鍙�"];
+ string supplier = item["閮ㄩ棬"];
+ string materialNumber = item["鐗╂枡缂栫爜"];
+ string materialName = item["鐗╂枡鍚嶇О"];
+ string materialKey = $"{materialNumber}_{materialName}";
+
+ // 妫�鏌ヤ緵搴斿晢
+ if (!supplierDict.ContainsKey(supplier))
+ {
+ missingSupplierMessages.Add($"绗瑊lineNumber}琛岀殑閮ㄩ棬銆恵supplier}銆�");
+ }
+
+ // 妫�鏌ョ墿鏂�
+ if (!materialDict.ContainsKey(materialKey))
+ {
+ missingMaterialMessages.Add($"绗瑊lineNumber}琛岀殑鐗╂枡銆恵materialName}(缂栫爜:{materialNumber})銆�");
+ }
+ // 妫�鏌ョ敓浜ц鍗�
+ if (!string.IsNullOrEmpty(ICMOcheck) && !ICMODict.ContainsKey(ICMOcheck))
+ {
+ missingMaterialMessages.Add($"绗瑊lineNumber}琛岀殑鐢熶骇璁㈠崟銆恵ICMOcheck}銆�");
+ }
+ }
+
+ StringBuilder errorMessage = new StringBuilder();
+
+ if (missingSupplierMessages.Any())
+ {
+ errorMessage.Append("浠ヤ笅閮ㄩ棬鏈淮鎶わ細");
+ errorMessage.Append(string.Join("銆�", missingSupplierMessages));
+ errorMessage.Append("锛�");
+ }
+
+ if (missingMaterialMessages.Any())
+ {
+ errorMessage.Append("浠ヤ笅鐗╂枡鏈淮鎶わ細");
+ errorMessage.Append(string.Join("銆�", missingMaterialMessages));
+ errorMessage.Append("锛�");
+ }
+
+ if (errorMessage.Length > 0)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = errorMessage.ToString();
+ res.data = null;
+ return res;
+ }
+
+ // 6. 鎵归噺鏌ヨ宸插瓨鍦ㄧ殑璁板綍
+ var materialIds = list.Select(x => materialDict[$"{x["鐗╂枡缂栫爜"]}_{x["鐗╂枡鍚嶇О"]}"]).Distinct().ToList();
+ var supplierIds = list.Select(x => supplierDict_sub[x["閮ㄩ棬"]]).Distinct().ToList();
+
+ string existQuery = $"select * from h_v_CB_ItemMoneyBillMain_Edit_excel WHERE HMaterID IN ({string.Join(",", materialIds)}) AND HDeptID_sub IN ({string.Join(",", supplierIds)})";
+ DataSet existData = oCN.RunProcReturn(existQuery, "h_v_CB_ItemMoneyBillMain_Edit_excel");
+ HashSet<string> existRecords = new HashSet<string>();
+ foreach (DataRow row in existData.Tables[0].Rows)
+ {
+ existRecords.Add($"{row["HMaterID"]}_{row["HDeptID_sub"]}");
+ }
+
+ // 7. 鎸夌収閮ㄩ棬浠g爜銆侀儴闂ㄣ�佽亴鍛樹唬鐮併�佽亴鍛樸�佺敓浜ц鍗曞彿杩涜鍒嗙粍
+ var groupedData = list.GroupBy(item => new
+ {
+ 閮ㄩ棬浠g爜 = item["閮ㄩ棬浠g爜"],
+ 閮ㄩ棬 = item["閮ㄩ棬"],
+ 鑱屽憳浠g爜 = item["鑱屽憳浠g爜"],
+ 鑱屽憳 = item["鑱屽憳"],
+ 鐢熶骇璁㈠崟鍙� = item["鐢熶骇璁㈠崟鍙�"]
+ }).ToList();
+
+ StringBuilder insertSql = new StringBuilder();
+ StringBuilder insertSql_sub = new StringBuilder();
+ string currentDate = DateTime.Today.ToString("yyyy-MM-dd");
+
+ foreach (var group in groupedData)
+ {
+ var firstItem = group.First();
+
+ // 鑾峰彇缁勪俊鎭�
+ int HSupplierID = supplierDict_sub[firstItem["閮ㄩ棬"]];
+ int EmpID = EmpDict[firstItem["鑱屽憳"]];
+ string ICMO = firstItem["鐢熶骇璁㈠崟鍙�"];
+ int ICMOInterID = !string.IsNullOrEmpty(ICMO) && ICMODict.ContainsKey(ICMO) ? ICMODict[ICMO] : 0;
+
+ // 鐢熸垚涓昏〃ID鍜屽崟鎹彿锛堟瘡缁勭敓鎴愪竴涓級
+ string HBillNo = DBUtility.ClsPub.CreateBillCode("1802", ref DBUtility.ClsPub.sExeReturnInfo, true);
+ long HInterID = DBUtility.ClsPub.CreateBillID("1802", ref DBUtility.ClsPub.sExeReturnInfo);
+
+ // 妫�鏌ヨ缁勬槸鍚﹀凡瀛樺湪锛堟牴鎹儴闂↖D鍜岀墿鏂橧D缁勫悎锛�
+ bool groupExists = false;
+ foreach (var item in group)
+ {
+ int HMaterID = materialDict[$"{item["鐗╂枡缂栫爜"]}_{item["鐗╂枡鍚嶇О"]}"];
+ string recordKey = $"{HMaterID}_{HSupplierID}";
+ if (existRecords.Contains(recordKey))
+ {
+ groupExists = true;
+ break;
+ }
+ }
+
+ if (!groupExists)
+ {
+ // 鎻掑叆涓昏〃锛堟瘡缁勬彃鍏ヤ竴娆★級
+ insertSql.AppendLine($"INSERT INTO CB_ItemMoneyBillMain ([HInterID], [HBillNo], [HDate], [HYear], [HPeriod], [HBillType], [HBillSubType], [HBillStatus], [HCheckItemNowID], [HCheckItemNextID], [HCheckFlowID], [HRemark], [HBacker], [HBackDate], [HBackRemark], [HChecker], [HCheckDate], [HMaker], [HMakeDate], [HUpDater], [HUpDateDate], [HCloseMan], [HCloseDate], [HCloseType], [HDeleteMan], [HDeleteDate], [HMainSourceBillType], [HMainSourceInterID], [HMainSourceEntryID], [HMainSourceBillNo], [HPrintQty], [HEmpID], [HDeptID], [HICMOInterID], [HMaterID], [HICMOBillNo], [HExplanation], [HInnerBillNo], [HBeginDate], [HEndDate], [HOrgID]) VALUES (");
+ insertSql.AppendLine($"'{HInterID}', '{HBillNo}', '{DateTime.Now}', {DateTime.Now.Year}, {DateTime.Now.Month}, {"1802"}, '{"1802"}', '{"1"}', '{"0"}', '{"0"}', '{"0"}', '{"excel瀵煎叆"}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{""}', '{"0"}', '{"0"}', '{""}', '{"0"}', '{EmpID}', '{HSupplierID}', '{ICMOInterID}','{0}','{ICMO}','{""}','{"0"}','{DateTime.Now}','{DateTime.Now}','{"100038"}');");
+
+ // 鎻掑叆瀛愯〃锛堢粍鍐呮瘡涓墿鏂欐彃鍏ヤ竴娆★級
+ int HEntryID = 1;
+ foreach (var item in group)
+ {
+ int HMaterID = materialDict[$"{item["鐗╂枡缂栫爜"]}_{item["鐗╂枡鍚嶇О"]}"];
+ int HCostID = CostDict[item["鎴愭湰椤圭洰"]];
+
+ insertSql_sub.AppendLine($"INSERT INTO [CB_ItemMoneyBillSub] ([HInterID], [HEntryID], [HCloseMan], [HEntryCloseDate], [HCloseType], [HRemark],[HSourceInterID], [HSourceEntryID], [HSourceBillNo], [HSourceBillType],[HRelationQty], [HRelationMoney], [HBillNo_bak], [HCostItemID],[HDeptID], [HQty], [HPrice], [HMoney],[HMaterID], [HWaster], [HDate], [HBeginBalance], [HEndBalance], [HTimes]) VALUES (");
+ insertSql_sub.AppendLine($"'{HInterID}', '{HEntryID}', '{""}', '{DateTime.Now}', '{"0"}', '{"excel瀵煎叆"}','{"0"}', '{"0"}', '{"0"}', '{"0"}','{"0"}', '{"0"}', '{""}', '{HCostID}', '{HSupplierID}', '{item["鏁伴噺"]}', '{item["鍗曚环"]}', '{item["閲戦"]}','{HMaterID}', '{item["鎹熻�楅噺"] ?? "0"}', '{DateTime.Now}', '{"0"}', '{"0"}', '{"0"}');");
+ HEntryID++;
+ }
+ }
+
+ }
+
+ // 鎵ц鎵归噺鎿嶄綔
+ if (insertSql.Length > 0)
+ {
+ oCN.RunProc(insertSql.ToString());
+ }
+
+ if (insertSql_sub.Length > 0)
+ {
+ oCN.RunProc(insertSql_sub.ToString());
+ }
+
+ oCN.Commit();
+
+ res.code = "1";
+ res.count = groupedData.Count;
+ res.Message = $"瀵煎叆鎴愬姛! 鍏卞鐞唟groupedData.Count}缁勬暟鎹�";
+ res.data = null;
+ return res;
+ }
+ catch (Exception e)
+ {
+ //oCN.Rollback();
+ LogService.Write(e);
+ res.code = "0";
+ res.count = 0;
+ res.Message = "Exception锛�" + e.ToString();
+ res.data = null;
+ return res;
+ }
+ }
+ #endregion
+
}
}
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_WipProcessTableController.cs" "b/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_WipProcessTableController.cs"
new file mode 100644
index 0000000..2cdeae5
--- /dev/null
+++ "b/WebAPI/Controllers/\346\210\220\346\234\254\347\256\241\347\220\206/CB_WipProcessTableController.cs"
@@ -0,0 +1,287 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Models;
+using WebAPI.Controllers.SCGL.鏃ヨ鍒掔鐞�;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace WebAPI.Controllers.鎴愭湰绠$悊
+{
+ public class CB_WipProcessTableController : ApiController
+ {
+ public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+ public DAL.ClsCB_ItemMoneyBillMain BillOld = new DAL.ClsCB_ItemMoneyBillMain();
+ public DAL.ClsCB_ItemMoneyBillMain BillNew0 = new DAL.ClsCB_ItemMoneyBillMain();
+
+ private json objJsonResult = new json();
+ SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+ DataSet ds;
+
+
+ #region 鏂囦欢涓婁紶
+ [Route("CB_WipProcessTableController/CB_WipProcessTable_Excel")]
+ [HttpPost]
+ public json CB_WipProcessTable_Excel()
+ {
+ json res = new json();
+ try
+ {
+ //鑾峰彇鏂囦欢鍚嶇О
+ var file = HttpContext.Current.Request.Files[0];
+ //鑾峰彇鏂囦欢鐗╃悊璺緞
+ string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
+ //淇濆瓨鏂囦欢
+ file.SaveAs(ExcelPath);
+
+ SCGL.鏃ヨ鍒掔鐞�.NpoiHelper np = new NpoiHelper();
+ DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
+
+ //鍒犻櫎鏂囦欢
+ File.Delete(ExcelPath);
+
+ //鍒涘缓涓存椂琛�
+ DataTable provisional = new DataTable("dt2");
+
+ //娣诲姞鍒楀悕
+ for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
+ {
+ provisional.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
+ }
+ //provisional.Columns.Add("鍗曟嵁鍙�", typeof(string));
+
+ //娣诲姞鏁版嵁
+ for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
+ {
+ DataRow row = provisional.NewRow();
+ for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
+ {
+ row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
+ }
+ provisional.Rows.Add(row);
+ }
+
+ //鍒ゆ柇鍒�
+ string error = JudgmentColumns(provisional);
+ if (error.Length > 0)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = $"Excel妯℃澘瀛樺湪閿欒,{error}\r\n";
+ res.data = null;
+ return res;
+ }
+
+ for (int i = 0; i <= provisional.Rows.Count - 1; i++)
+ {
+
+ string HProcName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["浜у嚭宸ュ簭"].ToString());
+ string HCusName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["瀹㈡埛"].ToString());
+
+ string HPartNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎴愬搧鏂欏彿"].ToString());
+ string HWIPQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["WIP鏁伴噺"].ToString());
+
+ string HInProcessWIPQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鍦ㄥ埗WIP鏁伴噺"].ToString());
+
+ string HPanelQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎷肩増鏁�"].ToString());
+ string HLot = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["LOT"].ToString());
+
+ string HOrderTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["涓嬪崟鏃堕棿"].ToString());
+
+ string HStartTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鎶曚骇鏃堕棿"].ToString());
+ string HOutputTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["浜у嚭鏃堕棿"].ToString());
+
+ string HProductionTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鐢熶骇鏃堕棿"].ToString());
+ string HStatus = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鐘舵��"].ToString());
+
+ string HStayTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["鍋滅暀鏃堕棿(鍒嗛挓)"].ToString());
+
+ //string remark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["澶囨敞"].ToString());
+
+ //鑾峰彇鐪熷疄琛屾暟
+ int line = i + 1;
+ }
+
+ res.code = "1";
+ res.count = 1;
+ res.Message = error;
+ res.data = provisional;
+ return res;
+ }
+ catch (Exception e)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = "Exception锛�" + e.ToString();
+ res.data = null;
+ return res;
+ }
+ }
+
+ /// <summary>
+ /// 鍒ゆ柇鍒�
+ /// </summary>
+ /// <param name="provisional"></param>
+ /// <returns></returns>
+ private static string JudgmentColumns(DataTable provisional)
+ {
+ var error = "";
+
+ //鏌ヨ娌℃湁鐨勫垪
+ if (!provisional.Columns.Contains("瀹㈡埛"))
+ error += "娌℃湁鎵惧埌銆愬鎴枫�戠殑鏍囬,";
+
+ if (!provisional.Columns.Contains("鎴愬搧鏂欏彿"))
+ error += "娌℃湁鎵惧埌銆愭垚鍝佹枡鍙枫�戠殑鏍囬,";
+ return error;
+ }
+ #endregion
+
+ #region 涓婁紶淇濆瓨
+ [Route("CB_WipProcessTableController/Excel_btnSave")]
+ [HttpPost]
+ public object Excel_btnSave([FromBody] JObject sMainSub)
+ {
+ var _value = sMainSub["sMainSub"].ToString();
+ string msg1 = _value.ToString();
+ string[] sArray = msg1.Split(new string[] { "&鍜�" }, StringSplitOptions.RemoveEmptyEntries);
+ string msg2 = sArray[0].ToString();
+ string user = sArray[1].ToString();
+ string organ = sArray[2].ToString();
+ json res = new json();
+
+ try
+ {
+ oCN.BeginTran();
+ List<object> Excel = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(msg2);
+ List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
+
+ foreach (JObject item in Excel)
+ {
+ Dictionary<string, string> dic = new Dictionary<string, string>();
+ foreach (var itm in item.Properties())
+ {
+ dic.Add(itm.Name, itm.Value.ToString());
+ }
+ list.Add(dic);
+ }
+
+ // 4. 鏌ヨ鐢ㄦ埛淇℃伅
+ DataSet emp = oCN.RunProcReturn($"SELECT Czybm FROM Gy_Czygl WHERE Czymc = '{user.Replace("'", "''")}'", "Gy_Czygl");
+ if (emp.Tables[0].Rows.Count == 0)
+ {
+ res.code = "0";
+ res.count = 0;
+ res.Message = "鐢ㄦ埛涓嶅瓨鍦紒";
+ res.data = null;
+ return res;
+ }
+ string HUserID = emp.Tables[0].Rows[0]["Czybm"].ToString();
+
+ StringBuilder errorMessage = new StringBuilder();
+ StringBuilder insertSql = new StringBuilder();
+ StringBuilder updateSql = new StringBuilder();
+ string currentDate = DateTime.Today.ToString("yyyy-MM-dd");
+ int HEntryID = 1;
+
+ // 閬嶅巻鏁版嵁骞堕獙璇�
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+
+ List<string> intFields = new List<string>
+ {
+ "WIP鏁伴噺", "鍦ㄥ埗WIP鏁伴噺", "鎷肩増鏁�"
+ };
+
+ bool hasError = false;
+ foreach (var field in intFields)
+ {
+ if (item.ContainsKey(field))
+ {
+ string value = item[field];
+ // 妫�鏌ユ槸鍚︿负鏁存暟
+ if (!string.IsNullOrWhiteSpace(value))
+ {
+ if (!int.TryParse(value, out _))
+ {
+ errorMessage.AppendLine($"绗瑊i + 1}琛屾暟鎹敊璇細瀛楁 '{field}' 鐨勫�� '{value}' 涓嶆槸鏈夋晥鐨勬暣鏁�");
+ hasError = true;
+ }
+ }
+ }
+ }
+
+ // 濡傛灉鏈夐敊璇紝璺宠繃鎻掑叆
+ if (hasError)
+ {
+ continue;
+ }
+
+
+ insertSql.AppendLine($"INSERT INTO CB_WipProcessTable ([HYear], [HPeriod], [HDay], [HProcName], [HCusName], [HPartNumber], [HWIPQty], [HInProcessWIPQty], [HPanelQty], [HLot], [HOrderTime], [HStartTime], [HOutputTime], [HProductionTime], [HStatus], [HStayTime], [HChecker], [HCheckDate], [HMaker], [HMakeDate], [HUpDater], [HUpDateDate], [HCloseMan], [HCloseDate], [HCloseType], [HDeleteMan], [HDeleteDate], [HReamrk]) VALUES (");
+ insertSql.AppendLine($" {DateTime.Now.Year}, {DateTime.Now.Month}, {DateTime.Now.Day}, '{item["浜у嚭宸ュ簭"]}', '{item["瀹㈡埛"]}', '{item["鎴愬搧鏂欏彿"]}', '{item["WIP鏁伴噺"]}', '{item["鍦ㄥ埗WIP鏁伴噺"]}', '{item["鎷肩増鏁�"]}', '{item["LOT"]}', '{item["涓嬪崟鏃堕棿"]}', '{item["鎶曚骇鏃堕棿"]}', '{item["浜у嚭鏃堕棿"]}', '{item["鐢熶骇鏃堕棿"]}', '{item["鐘舵��"]}', '{item["鍋滅暀鏃堕棿(鍒嗛挓)"]}', '{""}', '{""}', '{user}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{"0"}', '{""}', '{""}', '{"excel瀵煎叆"}');");
+ }
+
+ if (errorMessage.Length > 0)
+ {
+ //oCN.Rollback();
+ res.code = "0";
+ res.count = 0;
+ res.Message = "鏁版嵁楠岃瘉澶辫触锛歕n" + errorMessage.ToString();
+ res.data = null;
+ return res;
+ }
+
+ if (insertSql.Length == 0)
+ {
+ // oCN.Rollback();
+ res.code = "0";
+ res.count = 0;
+ res.Message = "娌℃湁鏈夋晥鐨勬暣鏁版暟鎹彲浠ュ鍏�";
+ res.data = null;
+ return res;
+ }
+
+ // 鎵ц鎵归噺鎿嶄綔
+ if (insertSql.Length > 0)
+ {
+ oCN.RunProc(insertSql.ToString());
+ }
+
+ //if (updateSql.Length > 0)
+ //{
+ // oCN.RunProc(updateSql.ToString());
+ // oCN.RunProc(updateSql_sub.ToString());
+ //}
+
+ oCN.Commit();
+
+ res.code = "1";
+ res.count = 1;
+ res.Message = "瀵煎叆鎴愬姛!";
+ res.data = null;
+ return res;
+ }
+ catch (Exception e)
+ {
+ //oCN.Rollback();
+ LogService.Write(e);
+ res.code = "0";
+ res.count = 0;
+ res.Message = "Exception锛�" + e.ToString();
+ res.data = null;
+ return res;
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index 5b5be87..ad53efc 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -14146,7 +14146,7 @@
{
objJsonResult.code = "0";
objJsonResult.count = 0;
- objJsonResult.Message = "鎵弿鍗曟嵁鏉$爜澶辫触锛�" + e.ToString();
+ objJsonResult.Message = "鎵弿鍗曟嵁鏉$爜澶辫触锛�" + e.Message.ToString();
objJsonResult.data = null;
return objJsonResult;
}
diff --git a/WebAPI/DLL/ClsSb_EquipConkBookBill.cs b/WebAPI/DLL/ClsSb_EquipConkBookBill.cs
index 224b9b4..8bf01c7 100644
--- a/WebAPI/DLL/ClsSb_EquipConkBookBill.cs
+++ b/WebAPI/DLL/ClsSb_EquipConkBookBill.cs
@@ -174,13 +174,13 @@
"(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
",HEquipID,HExplanation,HInnerBillNo,HConkTypeID,HEmpID" +
- ",HManagerID,HDeptID,HConkBeginDate,HLev,HReason" +
+ ",HManagerID,HDeptID,HConkBeginDate,HLev,HReason, HRepairManID" +
") " +
" values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
", " + omodel.HEquipID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + omodel.HConkTypeID.ToString() + "," + omodel.HEmpID.ToString() +
"," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HConkBeginDate + "', '" + omodel.HLev + "', '" + omodel.HReason + "'" +
- ") ");
+ $",{omodel.HRepairManID}) ");
////鎻掑叆瀛愯〃
foreach (Model.ClsSb_EquipConkBookBillSub oSub in DetailColl)
{
diff --git a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user b/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
index da4a3bc..15e06dc 100644
--- a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
- <History>True|2026-02-02T07:42:04.9554792Z;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
+ <History>True|2026-02-11T03:45:25.6746436Z;True|2026-02-11T11:44:47.3185555+08:00;True|2026-02-11T10:54:59.0679758+08:00;True|2026-02-11T10:43:35.2341241+08:00;True|2026-02-11T10:36:26.6768242+08:00;True|2026-02-11T10:26:54.7470684+08:00;True|2026-02-11T10:26:14.5696000+08:00;True|2026-02-11T10:19:17.3267746+08:00;True|2026-02-11T10:03:08.9096446+08:00;True|2026-02-11T10:00:03.1731421+08:00;False|2026-02-11T09:58:47.2916714+08:00;True|2026-02-10T15:11:02.0203382+08:00;True|2026-02-10T15:07:21.6761915+08:00;True|2026-02-10T14:56:44.3660951+08:00;True|2026-02-10T14:42:24.1573010+08:00;True|2026-02-10T14:17:49.6012996+08:00;True|2026-02-10T10:54:27.8849732+08:00;True|2026-02-10T10:37:09.4615737+08:00;True|2026-02-10T10:32:50.2882198+08:00;True|2026-02-10T10:16:38.5004114+08:00;True|2026-02-10T10:04:58.3653257+08:00;False|2026-02-10T10:04:05.6938724+08:00;True|2026-02-09T11:58:12.9122757+08:00;True|2026-02-09T11:52:51.2402774+08:00;True|2026-02-09T11:47:15.5230979+08:00;True|2026-02-09T10:53:15.6587025+08:00;False|2026-02-09T10:52:01.4586729+08:00;True|2026-02-05T12:04:14.1139398+08:00;True|2026-02-05T10:00:41.8883921+08:00;False|2026-02-05T09:59:49.2086159+08:00;True|2026-02-04T13:30:53.8564398+08:00;True|2026-02-04T13:30:06.5486103+08:00;True|2026-02-04T13:21:44.7322601+08:00;True|2026-02-04T13:15:45.0093895+08:00;True|2026-02-04T13:06:30.4891537+08:00;False|2026-02-04T13:05:35.5287589+08:00;True|2026-02-04T12:39:42.2682329+08:00;True|2026-02-04T12:21:52.9722100+08:00;True|2026-02-04T12:16:07.8303016+08:00;True|2026-02-04T12:08:43.8268899+08:00;True|2026-02-04T12:03:26.1174616+08:00;True|2026-02-04T10:33:15.5394044+08:00;False|2026-02-04T10:32:30.7038502+08:00;True|2026-02-02T15:42:04.9554792+08:00;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
</PropertyGroup>
<ItemGroup>
<File Include="apiapp.json">
@@ -45,19 +45,19 @@
<publishTime>02/22/2013 16:43:40</publishTime>
</File>
<File Include="bin/BLL.dll">
- <publishTime>02/02/2026 15:17:59</publishTime>
+ <publishTime>02/04/2026 13:29:36</publishTime>
</File>
<File Include="bin/BLL.pdb">
- <publishTime>02/02/2026 15:17:59</publishTime>
+ <publishTime>02/04/2026 13:29:36</publishTime>
</File>
<File Include="bin/BouncyCastle.Crypto.dll">
<publishTime>12/18/2020 05:32:28</publishTime>
</File>
<File Include="bin/DAL.dll">
- <publishTime>02/02/2026 15:17:57</publishTime>
+ <publishTime>02/04/2026 13:29:33</publishTime>
</File>
<File Include="bin/DAL.pdb">
- <publishTime>02/02/2026 15:17:57</publishTime>
+ <publishTime>02/04/2026 13:29:33</publishTime>
</File>
<File Include="bin/Dapper.dll">
<publishTime>07/22/2016 22:52:40</publishTime>
@@ -138,10 +138,10 @@
<publishTime>07/25/2012 19:48:56</publishTime>
</File>
<File Include="bin/Model.dll">
- <publishTime>02/02/2026 15:17:52</publishTime>
+ <publishTime>02/04/2026 13:29:27</publishTime>
</File>
<File Include="bin/Model.pdb">
- <publishTime>02/02/2026 15:17:52</publishTime>
+ <publishTime>02/04/2026 13:29:27</publishTime>
</File>
<File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
<publishTime>04/21/2025 11:46:16</publishTime>
@@ -324,13 +324,13 @@
<publishTime>11/24/2014 19:18:48</publishTime>
</File>
<File Include="bin/WebAPI.dll">
- <publishTime>02/02/2026 15:41:51</publishTime>
+ <publishTime>02/11/2026 13:40:13</publishTime>
</File>
<File Include="bin/WebAPI.pdb">
- <publishTime>02/02/2026 15:41:51</publishTime>
+ <publishTime>02/11/2026 13:40:13</publishTime>
</File>
<File Include="bin/WebAPI.XmlSerializers.dll">
- <publishTime>02/02/2026 15:42:01</publishTime>
+ <publishTime>02/11/2026 13:40:24</publishTime>
</File>
<File Include="bin/WebGrease.dll">
<publishTime>07/18/2013 01:03:52</publishTime>
diff --git a/WebAPI/Service/GeTuiService.cs b/WebAPI/Service/GeTuiService.cs
index 164895e..0e7b281 100644
--- a/WebAPI/Service/GeTuiService.cs
+++ b/WebAPI/Service/GeTuiService.cs
@@ -9,6 +9,7 @@
using Newtonsoft.Json;
using com.igetui.api.openservice.igetui.template;
using com.igetui.api.openservice.igetui;
+using WebApiWithFleck;
namespace WebAPI.Service
{
@@ -48,13 +49,14 @@
string content = ds.Tables[0].Rows[0]["鍐呭"].ToString();
template = GetNotificationTemplate(title, content, "/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery", "0"); // 璺宠浆鍒板伐浣滆仈绯诲崟鏌ヨ椤甸潰
+ bool pushSuccess = false;
// 骞挎挱
if(ds.Tables[0].Rows[0]["鍙戦�佺被鍨�"].ToString() == "鍏叡")
{
// 閬嶅巻 鍏ㄦ帹閫�
foreach(DataRow row in ds.Tables[1].Rows)
{
- PushMessageToSingle(template, row["HClientID"].ToString());
+ pushSuccess = PushMessageToSingle(template, row["HClientID"].ToString());
}
}else // 鍗曠嫭鎺ㄩ��
{
@@ -63,8 +65,17 @@
{
if(ds.Tables[0].Rows[0]["鎺ユ敹浜�"].ToString() == row["HUserName"].ToString()
|| ds.Tables[0].Rows[0]["鎶勯�佹帴鏀朵汉"].ToString() == row["HUserName"].ToString())
- PushMessageToSingle(template, row["HClientID"].ToString());
+ {
+ pushSuccess = PushMessageToSingle(template, row["HClientID"].ToString());
+ }
}
+ }
+
+ if(!pushSuccess)
+ {
+ // 涓帹 鎺ㄩ�佷笉鎴愬姛(鍐呯綉鐜) 浣跨敤webSocket杩涜鎺ㄩ��
+ // TODO: 浣跨敤 rabbitMQ 瀹炵幇娑堟伅闃熷垪
+ // WebSocketServer.PushOne(HInterID);
}
}
}
@@ -76,7 +87,7 @@
}
// 鍗曟帹 浣跨敤閫氱煡娑堟伅妯″瀷
- private static void PushMessageToSingle(NotificationTemplate template, string ClientID)
+ private static bool PushMessageToSingle(NotificationTemplate template, string ClientID)
{
IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
@@ -100,6 +111,7 @@
LogService.Write("-----------------------------------------------");
LogService.Write("-----------------------------------------------");
LogService.Write("----------------鏈嶅姟绔繑鍥炵粨鏋滐細" + pushResult);
+ return true;
}
catch (RequestException e)
{
@@ -109,6 +121,7 @@
LogService.Write("-----------------------------------------------");
LogService.Write("-----------------------------------------------");
LogService.Write("----------------鏈嶅姟绔繑鍥炵粨鏋滐細" + pushResult);
+ return false;
}
}
diff --git a/WebAPI/Service/WebSocketServer.cs b/WebAPI/Service/WebSocketServer.cs
index 89581d6..6a86d66 100644
--- a/WebAPI/Service/WebSocketServer.cs
+++ b/WebAPI/Service/WebSocketServer.cs
@@ -27,14 +27,18 @@
private static System.Timers.Timer _pushTimerBeat;
// 300000
private static readonly int _pushInterval = 300000; // 姣�5鍒嗛挓鍙戦�佷竴娆℃秷鎭�
+
+ private static Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
/// <summary>
/// 鍚姩 WebSocket 鏈嶅姟锛堢洃鍚� 8089 绔彛锛�
/// </summary>
public static void Start()
{
+ string sReturn = "";
+ var wsUrl = "ws://0.0.0.0:8888/ws"; // 閫氱敤绔彛
+
// 閰嶇疆 WebSocket 鐩戝惉鍦板潃锛堢嫭绔嬬鍙� 8089锛�
- var wsUrl = "ws://0.0.0.0:8089/ws"; // 0.0.0.0 鍏佽澶栭儴璁块棶
_server = new Fleck.WebSocketServer(wsUrl);
_pushTimer = new System.Timers.Timer(_pushInterval);
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 6fa47da..e095697 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -706,6 +706,7 @@
<Compile Include="Controllers\鍩虹璧勬枡\鍩虹璧勬枡\Gy_CostItemFixRateController.cs" />
<Compile Include="Controllers\鍩虹璧勬枡\鍩虹璧勬枡\Gy_CostItemAverageTypeController.cs" />
<Compile Include="Controllers\鎴愭湰绠$悊\CB_ItemMoneyBillController.cs" />
+ <Compile Include="Controllers\鎴愭湰绠$悊\CB_WipProcessTableController.cs" />
<Compile Include="Controllers\妫�楠岀敵璇峰崟\QC_RequestCheckBillController.cs" />
<Compile Include="Controllers\鐗╂祦绠$悊\鍏朵粬缁撶畻鍗昞YF_PayMentOtherBillTranController.cs" />
<Compile Include="Controllers\鐗╂祦绠$悊\鍑鸿繍鍗昞WLYayBillController.cs" />
@@ -1294,6 +1295,7 @@
<Folder Include="bin\" />
<Folder Include="Controllers\椤圭洰绠$悊\鍩虹寤烘ā\" />
<Folder Include="obj\x86\Debug\" />
+ <Folder Include="Views\CB_WipProcessTable\" />
<Folder Include="Views\Cg_ContractTransportBillList\" />
<Folder Include="Views\Cg_PODemandPlanBill\" />
<Folder Include="Views\Cg_PurchaseReturn\" />
diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user
index a319fe3..a508311 100644
--- a/WebAPI/WebAPI.csproj.user
+++ b/WebAPI/WebAPI.csproj.user
@@ -2,7 +2,7 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
- <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
+ <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort />
--
Gitblit v1.9.1