llj
2026-02-25 dac3ee802f595993a4379c06e73c35ac62f52f15
成本费用单增加导入字段
2个文件已修改
49 ■■■■■ 已修改文件
WebAPI/Controllers/基础资料/基础资料/Gy_CostAverageTypeController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/成本管理/CB_ItemMoneyBillController.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_CostAverageTypeController.cs
@@ -838,7 +838,7 @@
                    oCN.RollBack();//回滚事务
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "数据已删除无法再次删除!";
                    objJsonResult.Message = "数据已被禁用无法再次删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
WebAPI/Controllers/³É±¾¹ÜÀí/CB_ItemMoneyBillController.cs
@@ -1020,14 +1020,15 @@
                    string HEmpName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["职员"].ToString());
                    string HICMOBillNo = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["生产订单号"].ToString());
                    string HProc = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["工序"].ToString());
                    string HCostItemNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["成本项目代码"].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 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());
@@ -1110,10 +1111,11 @@
                // 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["部门代码"].ToString()).Distinct().ToList();
                var HDeptNames_sub = list.Select(x => x["子部门"].ToString()).Distinct().ToList();
                var HDeptNumbers_sub = list.Select(x => x["子部门代码"].ToString()).Distinct().ToList();
                var HProc = list.Select(x => x["工序"].ToString()).Distinct().ToList();
                //var HDeptNames = list.Select(x => x["部门"].ToString()).Distinct().ToList();
                //var HDeptNumbers = list.Select(x => x["部门代码"].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["职员代码"].ToString()).Distinct().ToList();
@@ -1131,14 +1133,14 @@
                    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. æ‰¹é‡æŸ¥è¯¢ä¸»å­è¡¨éƒ¨é—¨ä¿¡æ¯
                //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("'", "''")}'"))})";
@@ -1180,7 +1182,15 @@
                    string key = $"{row["HName"].ToString()}";
                    CostDict[key] = (int)row["HItemID"];
                }
                // 3.1 æ‰¹é‡æŸ¥è¯¢å·¥åºä¿¡æ¯
                string ProcessQuery = $"SELECT HItemID, HNumber, HName FROM Gy_Process WHERE  HName IN ({string.Join(",", HProc.Select(m => $"'{m.Replace("'", "''")}'"))})";
                DataSet ProcData = oCN.RunProcReturn(ProcessQuery, "Gy_Process");
                Dictionary<string, int> ProcDict = new Dictionary<string, int>();
                foreach (DataRow row in ProcData.Tables[0].Rows)
                {
                    string key = $"{row["HName"].ToString()}";
                    ProcDict[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)
@@ -1210,7 +1220,7 @@
                    string materialKey = $"{materialNumber}_{materialName}";
                    // æ£€æŸ¥ä¾›åº”商
                    if (!supplierDict.ContainsKey(supplier))
                    if (!supplierDict_sub.ContainsKey(supplier))
                    {
                        missingSupplierMessages.Add($"第{lineNumber}行的部门【{supplier}】");
                    }
@@ -1317,9 +1327,10 @@
                        {
                            int HMaterID = materialDict[$"{item["物料编码"]}_{item["物料名称"]}"];
                            int HCostID = CostDict[item["成本项目"]];
                            int HProcID = ProcDict[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"}');");
                            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],[HProcID]) 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"}', '{HProcID}');");
                            HEntryID++;
                        }
                    }