From f69928e4371ad7903c69ab22a58afc3e284d9c7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?=
<10755671+mei-rong-he@user.noreply.gitee.com>
Date: Thu, 11 Sep 2025 19:03:19 +0800
Subject: [PATCH] 1
---
APT.BaseData.Domain/Enums/FM/FMEnums.cs | 2 +-
.../Controllers/FMUserController.cs | 204 +++++++++++++++++-
2 files changed, 201 insertions(+), 5 deletions(-)
diff --git a/APT.BaseData.Domain/Enums/FM/FMEnums.cs b/APT.BaseData.Domain/Enums/FM/FMEnums.cs
index 48ae9c5..f4abbc6 100644
--- a/APT.BaseData.Domain/Enums/FM/FMEnums.cs
+++ b/APT.BaseData.Domain/Enums/FM/FMEnums.cs
@@ -143,7 +143,7 @@ namespace APT.BaseData.Domain.Enums
///
/// 班组 20
///
- [Description("车间")]
+ [Description("班组")]
Class = 20,
}
diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs
index 1d34b04..9821fb0 100644
--- a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs
+++ b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs
@@ -13,9 +13,14 @@ using APT.Migrations;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.PF;
+using APT.MS.Domain.Entities.SC.BI;
+using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
+using APT.MS.Domain.Enums.SK;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
+using NPOI.SS.Formula.Functions;
+using Org.BouncyCastle.Utilities.Collections;
using System;
using System.Collections.Generic;
using System.Data;
@@ -23,6 +28,7 @@ using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Security.Cryptography;
+using static NPOI.HSSF.Util.HSSFColor;
namespace APT.BS.WebApi.Controllers.Api
{
@@ -733,12 +739,12 @@ namespace APT.BS.WebApi.Controllers.Api
//获取数据
Dictionary startRowIndexs = new Dictionary();
- startRowIndexs.Add(0, 0);//根据Excel格式数据赋值
+ startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
DataSet dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
- bool isOK = InsertModel(dataTables.Tables[0], orgId.Value, telnetCode, ref Msg);
-
+ bool isOK = InsertModel(dataTables.Tables[0], orgId.Value, telnetCode, ref Msg);
+ //bool isOK = InsertModel2(dataTables.Tables[0], orgId.Value, telnetCode, ref Msg);
try
{
System.IO.File.Delete(filePath);
@@ -1670,6 +1676,196 @@ namespace APT.BS.WebApi.Controllers.Api
return true;
}
+ public bool InsertModel2(DataTable dtSource, Guid? orgId, string telnetCode, ref string Msg, int rowIndex = 1)
+ {
+ var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
+ if (dtSource == null || dtSource.Rows.Count < rowIndex)
+ {
+ Msg = "未获取到导入数据";
+ throw new Exception(Msg);
+ }
+ int rowAll = dtSource.Rows.Count;
+ List userLists = new List();
+ List userPersonLists = new List();
+ List userRoleLists = new List();
+ List userUnitLists = new List();
+ if (rowAll == 1)
+ {
+ throw new Exception("导入必须两条以上,一条请直接新增");
+ }
+ var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(orgId));
+ var roles = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId));
+ var units = this.GetEntities(t => t.CODE == "BSMineTypeEnum", new BaseFilter(orgId));
+ var posts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId));
+ var approves = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId));
+ for (int i = 0; i < rowAll; i++)
+ {
+ var company = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim());
+ var depart = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString().Trim());
+ var shop = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim());
+ var classFirst = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim());
+ var post = posts.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString().Trim());
+ Guid? depId = null;
+ int? minetype = 0;
+ if (classFirst != null)
+ {
+ depId = classFirst.ID;
+ minetype=classFirst.MineType;
+ }
+ else if (shop != null)
+ {
+ depId = shop.ID;
+ minetype = shop.MineType;
+ }
+ else if (depart != null)
+ {
+ depId = depart.ID;
+ minetype = depart.MineType;
+ }
+ else
+ {
+ depId = company.ID;
+ minetype = company.MineType;
+ }
+ var sex = dtSource.Rows[i][9].ToString().Trim();
+ T_FM_PERSON person = new T_FM_PERSON();
+ person.ID = Guid.NewGuid();
+ person.ORG_ID = orgId;
+ person.NAME = dtSource.Rows[i][4].ToString().Trim();
+ person.CODE = dtSource.Rows[i][5].ToString().Trim();
+ person.TEL = dtSource.Rows[i][6].ToString().Trim();
+ person.SEX = sex == "男" ? 1 : 0;
+ person.DEPARTMENT_ID = depId;
+ person.POST_ID = post?.ID;
+ userPersonLists.Add(person);
+ T_FM_USER user = new T_FM_USER();
+ user.ID = Guid.NewGuid();
+ user.ORG_ID = orgId;
+ user.PERSON_ID = person.ID;
+ user.NAME = dtSource.Rows[i][4].ToString().Trim();
+ user.CODE = dtSource.Rows[i][5].ToString().Trim();
+ user.PHONE = dtSource.Rows[i][6].ToString().Trim();
+ user.ID_CARD = dtSource.Rows[i][7].ToString().Trim();
+ user.DEPARTMENT_ID = depId;
+ user.SEX = sex == "男" ? 1 : 0;
+ user.MineType = minetype.ToString();
+ var inTime = dtSource.Rows[i][10].ToString().Trim();
+ if (string.IsNullOrEmpty(inTime))
+ {
+ inTime = DateTime.Now.ToShortTimeString();
+ }
+ user.ENTRYTIME = DateTime.Parse(inTime);
+ var yearInt = dtSource.Rows[i][11].ToString().Trim();
+ if (string.IsNullOrEmpty(yearInt))
+ {
+ yearInt = "0";
+ }
+ user.WORKINGYEAR = int.Parse(yearInt);
+ var approve = approves.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString().Trim());
+ user.APPROVE_ROLE_ID = approve?.ID;
+ //if (!string.IsNullOrEmpty(user.NAME) && !string.IsNullOrEmpty(user.CODE))
+ //{
+ // MD5 md5 = MD5.Create();
+ // string code = DataHelper.GetCodeNO(user.CODE);
+ // string nameHead = DataHelper.MkPinyinString(user.NAME);
+ // string NewPwd = DataHelper.MD5Encrypt32(md5, nameHead + code);
+ // user.PASSWORD = NewPwd;
+ //}
+ userLists.Add(user);
+ #region 增加新增人员到ops表
+ using (var context = new MigrationContext(ConfigurationManager.ConnectionStrings["default"]))
+ {
+ var tennant = context.GetEntity(t => t.ID == orgId, new string[] { "CODE" }).CODE;
+ T_OP_ALLUSER alluser = new T_OP_ALLUSER();
+ alluser.ID = user.ID;
+ alluser.CODE = user.CODE;
+ alluser.TENANT = tennant;
+ alluser.ORG_ID = orgId;
+ alluser.PHONE = user.PHONE;
+ context.AddEntity(alluser);
+ context.SaveChanges();
+ }
+ #endregion
+ if (user.APPROVE_ROLE_ID != null)
+ {
+ var role1 = roles.FirstOrDefault(t => t.NAME == "负责人");
+ var role2 = roles.FirstOrDefault(t => t.NAME == "App用户");
+ if (role1 != null)
+ {
+ T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE();
+ belongRole.ID = Guid.NewGuid();
+ belongRole.USER_ID = user.ID;
+ belongRole.BELONG_ROLE_ID = role1.ID;
+ belongRole.ORG_ID = orgId;
+ userRoleLists.Add(belongRole);
+ }
+ if (role2 != null)
+ {
+ T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE();
+ belongRole.ID = Guid.NewGuid();
+ belongRole.USER_ID = user.ID;
+ belongRole.BELONG_ROLE_ID = role2.ID;
+ belongRole.ORG_ID = orgId;
+ userRoleLists.Add(belongRole);
+ }
+ }
+ else
+ {
+ var role1 = roles.FirstOrDefault(t => t.NAME == "作业员");
+ var role2 = roles.FirstOrDefault(t => t.NAME == "App用户");
+ if (role1 != null)
+ {
+ T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE();
+ belongRole.ID = Guid.NewGuid();
+ belongRole.USER_ID = user.ID;
+ belongRole.BELONG_ROLE_ID = role1.ID;
+ belongRole.ORG_ID = orgId;
+ userRoleLists.Add(belongRole);
+ }
+ if (role2 != null)
+ {
+ T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE();
+ belongRole.ID = Guid.NewGuid();
+ belongRole.USER_ID = user.ID;
+ belongRole.BELONG_ROLE_ID = role2.ID;
+ belongRole.ORG_ID = orgId;
+ userRoleLists.Add(belongRole);
+ }
+ }
+ var unit = units.FirstOrDefault(t => t.VALUE == minetype);
+ if (unit != null)
+ {
+ T_FM_USER_PRODUCTION_UNIT pro = new T_FM_USER_PRODUCTION_UNIT();
+ pro.ID = Guid.NewGuid();
+ pro.ORG_ID = orgId;
+ pro.USER_ID = user.ID;
+ pro.ENUMS_ID = unit.ID;
+ userUnitLists.Add(pro);
+ }
+ }
+ if (!string.IsNullOrEmpty(Msg))
+ {
+ throw new Exception(Msg);
+ }
+ else
+ {
+ UnifiedCommit(() =>
+ {
+ if (userLists != null && userLists.Any())
+ BantchAddEntityNoCommit(userLists);
+ if (userUnitLists != null && userUnitLists.Any())
+ BantchAddEntityNoCommit(userUnitLists);
+ if (userRoleLists != null && userRoleLists.Any())
+ BantchAddEntityNoCommit(userRoleLists);
+ if (userPersonLists != null && userPersonLists.Any())
+ BantchAddEntityNoCommit(userPersonLists);
+ });
+ Msg = "导入成功!";
+ }
+ return true;
+ }
#endregion
}
-}
\ No newline at end of file
+}
+
+