363 lines
19 KiB
C#
363 lines
19 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Configuration;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Net;
|
|||
|
using System.Net.Http;
|
|||
|
using System.Web.Http;
|
|||
|
using BLL;
|
|||
|
using Model;
|
|||
|
using WebAPI.Filter;
|
|||
|
|
|||
|
namespace WebAPI.Controllers
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
public class uploadController : ApiController
|
|||
|
{
|
|||
|
//#region 项目出入记录接口
|
|||
|
///// <summary>
|
|||
|
///// 保存出入记录信息
|
|||
|
///// </summary>
|
|||
|
///// <param name="records">出入记录信息</param>
|
|||
|
///// <returns></returns>
|
|||
|
//[HttpPost]
|
|||
|
//public Model.ResponeData attendance([FromBody] Model.attendanceItems records)
|
|||
|
//{
|
|||
|
// var responeData = new Model.ResponeData();
|
|||
|
// try
|
|||
|
// {
|
|||
|
// if (records != null && records.records.Count() > 0)
|
|||
|
// {
|
|||
|
// List<Model.attendanceItem> attendanceItems = records.records;
|
|||
|
// var getprojectCode = attendanceItems.FirstOrDefault(x => x.ProjectCode != null || x.ProjectId != null);
|
|||
|
// if (getprojectCode != null)
|
|||
|
// {
|
|||
|
// string projectId = getprojectCode.ProjectId;
|
|||
|
// if (string.IsNullOrEmpty(projectId))
|
|||
|
// {
|
|||
|
// var getProject = ProjectService.GetProjectByProjectCode(getprojectCode.ProjectCode);
|
|||
|
// if (getProject != null)
|
|||
|
// {
|
|||
|
// projectId = getProject.ProjectId;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// if (!string.IsNullOrEmpty(projectId))
|
|||
|
// {
|
|||
|
// using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
|||
|
// {
|
|||
|
// int maxId = 0;
|
|||
|
// var getmax = db.T_d_facerecord.Where(x => x.ProjectId == projectId && x.RoleID == "白名单").Select(x => x.ID);
|
|||
|
// if (getmax.Count() > 0)
|
|||
|
// {
|
|||
|
// maxId = getmax.Max();
|
|||
|
// }
|
|||
|
// foreach (var item in attendanceItems)
|
|||
|
// {
|
|||
|
// maxId = maxId + 1;
|
|||
|
// string name = string.Empty;
|
|||
|
// string cardNo = string.Empty;
|
|||
|
// var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == item.idCardNumber);
|
|||
|
// if (getPerson != null)
|
|||
|
// {
|
|||
|
// name = getPerson.PersonName;
|
|||
|
// cardNo = getPerson.CardNo;
|
|||
|
// }
|
|||
|
|
|||
|
// Model.T_d_facerecord newFacerecord = new Model.T_d_facerecord()
|
|||
|
// {
|
|||
|
// NewID = SQLHelper.GetNewID(),
|
|||
|
// ProjectId = projectId,
|
|||
|
// ID = maxId,
|
|||
|
// EmployName = name,
|
|||
|
// EmployNO = item.idCardNumber,
|
|||
|
// RoleID = "白名单",
|
|||
|
// DateTimeRecord = Funs.GetNewDateTime(item.attendanceTime),
|
|||
|
// RecordDes = "白名单:允许通行",
|
|||
|
// InOrOut = (item.attendanceType == 1 ? "进门" : "出门"),
|
|||
|
// };
|
|||
|
|
|||
|
// db.T_d_facerecord.InsertOnSubmit(newFacerecord);
|
|||
|
// db.SubmitChanges();
|
|||
|
// ///// 根据出入记录 写入考勤记录
|
|||
|
// Model.t_d_facerecordItem facerecord = new Model.t_d_facerecordItem
|
|||
|
// {
|
|||
|
// ID = maxId,
|
|||
|
// EmployName = name,
|
|||
|
// IDCardNo = item.idCardNumber,
|
|||
|
// EmployNO = item.idCardNumber,
|
|||
|
// ProjectId = projectId,
|
|||
|
// RoleID = "白名单",
|
|||
|
// DateTimeRecord = Funs.GetNewDateTime(item.attendanceTime),
|
|||
|
// RecordDes = "白名单:允许通行",
|
|||
|
// InOrOut = (item.attendanceType == 1 ? "进门" : "出门"),
|
|||
|
// };
|
|||
|
// DoorServerService.InsertEmployInOutRecord(facerecord, getPerson);
|
|||
|
// if (facerecord.DateTimeRecord.HasValue)
|
|||
|
// {
|
|||
|
// int isIn = 0;
|
|||
|
// if (facerecord.InOrOut == "进门")
|
|||
|
// {
|
|||
|
// isIn = 1;
|
|||
|
// }
|
|||
|
// APIPersonService.getPersonInOut(getPerson, isIn, facerecord.DateTimeRecord.Value);
|
|||
|
// }
|
|||
|
// }
|
|||
|
// responeData.message = "插入成功!";
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// responeData.code = 0;
|
|||
|
// responeData.message = "项目号异常!";
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// responeData.code = 0;
|
|||
|
// responeData.message = "项目号为空!";
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// responeData.code = 0;
|
|||
|
// responeData.message = "数据为空!";
|
|||
|
// }
|
|||
|
// }
|
|||
|
// catch (Exception ex)
|
|||
|
// {
|
|||
|
// responeData.code = 0;
|
|||
|
// responeData.message = ex.Message;
|
|||
|
// }
|
|||
|
|
|||
|
// return responeData;
|
|||
|
//}
|
|||
|
//#endregion
|
|||
|
|
|||
|
#region 项目出入人员信息
|
|||
|
/// <summary>
|
|||
|
/// 保存人员信息
|
|||
|
/// </summary>
|
|||
|
/// <param name="person">人员信息</param>
|
|||
|
/// <returns></returns>
|
|||
|
[HttpPost]
|
|||
|
public Model.ResponeData person([FromBody] Model.PersonItem person)
|
|||
|
{
|
|||
|
var responeData = new Model.ResponeData();
|
|||
|
try
|
|||
|
{
|
|||
|
if (person != null)
|
|||
|
{
|
|||
|
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
|||
|
{
|
|||
|
var getProject = db.Base_Project.FirstOrDefault(e => e.ProjectCode ==person.ProjectCode);
|
|||
|
if (getProject != null)
|
|||
|
{
|
|||
|
var getUnit = db.Base_Unit.FirstOrDefault(e => e.CollCropCode == person.CollCropCode ||e.UnitName == person.UnitName);
|
|||
|
if (getUnit != null)
|
|||
|
{
|
|||
|
var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.IdentityCard == person.IdentityCard);
|
|||
|
if (getPerson == null)
|
|||
|
{
|
|||
|
Model.SitePerson_Person newPerson = new Model.SitePerson_Person
|
|||
|
{
|
|||
|
PersonId = SQLHelper.GetNewID(),
|
|||
|
ProjectId = getProject.ProjectId,
|
|||
|
UnitId = getUnit.UnitId,
|
|||
|
PersonName = person.PersonName,
|
|||
|
IdentityCard = person.IdentityCard,
|
|||
|
IdcardType = "SHENFEN_ZHENGJIAN",
|
|||
|
IdcardAddress = person.IdcardAddress,
|
|||
|
IdcardForever = "N",
|
|||
|
IdcardStartDate = Funs.GetNewDateTime(person.IdcardStartDate),
|
|||
|
IdcardEndDate = Funs.GetNewDateTime(person.IdcardEndDate),
|
|||
|
Sex = (person.Sex == "女" || person.Sex == "2") ? "2" : "1",
|
|||
|
Address = person.Address,
|
|||
|
OutResult = person.OutResult,
|
|||
|
Birthday = person.Birthday,
|
|||
|
Telephone = person.Telephone,
|
|||
|
IsUsed = person.IsUsed == false ? false : true,
|
|||
|
InTime = Funs.GetNewDateTimeOrNow(person.InTime),
|
|||
|
Password = BLL.PersonService.GetPersonPassWord(person.IdentityCard),
|
|||
|
Isprint = "0",
|
|||
|
};
|
|||
|
|
|||
|
if (!string.IsNullOrEmpty(person.TeamGroupName) && !string.IsNullOrEmpty(newPerson.UnitId))
|
|||
|
{
|
|||
|
var getTeamGroup = db.ProjectData_TeamGroup.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.UnitId == newPerson.UnitId && x.TeamGroupName == person.TeamGroupName);
|
|||
|
if (getTeamGroup != null)
|
|||
|
{
|
|||
|
newPerson.TeamGroupId = getTeamGroup.TeamGroupId;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Model.ProjectData_TeamGroup newTeamGroup = new Model.ProjectData_TeamGroup
|
|||
|
{
|
|||
|
TeamGroupId = SQLHelper.GetNewID(),
|
|||
|
ProjectId = getProject.ProjectId,
|
|||
|
UnitId = newPerson.UnitId,
|
|||
|
TeamGroupName = person.TeamGroupName,
|
|||
|
Remark = "来源:门禁对接数据",
|
|||
|
TeamTypeId = "CANJIAN_TEAM",
|
|||
|
EntryTime = System.DateTime.Now,
|
|||
|
RealNamePushTime = null,
|
|||
|
};
|
|||
|
db.ProjectData_TeamGroup.InsertOnSubmit(newTeamGroup);
|
|||
|
db.SubmitChanges();
|
|||
|
newPerson.TeamGroupId = newTeamGroup.TeamGroupId;
|
|||
|
}
|
|||
|
}
|
|||
|
var getWorkArea = db.WBS_UnitWork.FirstOrDefault(e => e.ProjectId == getProject.ProjectId && e.UnitWorkName == person.WorkAreaName);
|
|||
|
if (getWorkArea != null)
|
|||
|
{
|
|||
|
newPerson.WorkAreaId = getWorkArea.UnitWorkId;
|
|||
|
}
|
|||
|
var getWorkPost = db.Base_WorkPost.FirstOrDefault(e => e.WorkPostName ==person.WorkPostName);
|
|||
|
if (getWorkPost != null)
|
|||
|
{
|
|||
|
newPerson.WorkPostId = getWorkPost.WorkPostId;
|
|||
|
}
|
|||
|
var getHsseMan = db.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.RoleId.Contains(BLL.Const.HSSEManager));
|
|||
|
if (getHsseMan != null)
|
|||
|
{
|
|||
|
newPerson.AuditorId = getHsseMan.UserId;
|
|||
|
newPerson.AuditorDate = DateTime.Now;
|
|||
|
}
|
|||
|
newPerson.OutTime = Funs.GetNewDateTime(person.OutTime);
|
|||
|
if (person.headImage != null)
|
|||
|
{
|
|||
|
var image = Convert.FromBase64String(person.headImage);
|
|||
|
newPerson.HeadImage = image;
|
|||
|
string rootPath = ConfigurationManager.AppSettings["localRoot"];
|
|||
|
string path = "FileUpLoad/PersonBaseInfo/" + DateTime.Now.ToString("yyyy-MM") + "/";
|
|||
|
string fileUrl = (rootPath + path).Replace('/', '\\');
|
|||
|
string flieName = Funs.GetNewFileName() + "~" + person.PersonName + ".jpg";
|
|||
|
if (!Directory.Exists(fileUrl))
|
|||
|
{
|
|||
|
Directory.CreateDirectory(fileUrl);
|
|||
|
}
|
|||
|
newPerson.PhotoUrl = path + flieName;
|
|||
|
System.IO.File.WriteAllBytes((fileUrl + flieName), image);
|
|||
|
//AttachFileService.Base64ToImage(person.headImage, path, person.PersonName);
|
|||
|
}
|
|||
|
|
|||
|
PersonService.AddPerson(newPerson);
|
|||
|
responeData.message = "新增人员成功!";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(person.OutTime))
|
|||
|
{
|
|||
|
var outTime = Funs.GetNewDateTimeOrNow(person.OutTime);
|
|||
|
PersonService.PersonOut(getPerson.PersonId, outTime);
|
|||
|
responeData.message = "更新出场时间";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.message = "该身份证号码人员已存在!";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = "单位:" + person.UnitName + "施工平台不存在!";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = "项目号:" + person.ProjectCode + "施工平台不存在!";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = "数据为空!";
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = ex.Message;
|
|||
|
}
|
|||
|
|
|||
|
return responeData;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 批量导入
|
|||
|
/// 修改时间2023-8-16 17:10:38
|
|||
|
/// 是否是群安员,如果是 创建用户。(字段:IsGroupSafeOfficer-1)
|
|||
|
/// </summary>
|
|||
|
/// <param name="persons"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public Model.ResponeData Personlist([FromBody] List<Model.PersonItem> persons)
|
|||
|
{
|
|||
|
var responeData = new Model.ResponeData();
|
|||
|
try
|
|||
|
{
|
|||
|
if (persons != null)
|
|||
|
{
|
|||
|
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
|||
|
{
|
|||
|
foreach (var person in persons)
|
|||
|
{
|
|||
|
var getProject = ProjectService.GetProjectByProjectCode(person.ProjectCode);
|
|||
|
if (getProject != null)
|
|||
|
{
|
|||
|
var getUnit = UnitService.getUnitByCollCropCodeUnitName(person.CollCropCode, person.UnitName);
|
|||
|
if (getUnit != null)
|
|||
|
{
|
|||
|
var getPerson = PersonService.GetPersonByIdentityCard(getProject.ProjectId, person.IdentityCard);
|
|||
|
if (getPerson == null)
|
|||
|
{
|
|||
|
PersonService.AddPersonByPersonItem(person);
|
|||
|
//如果是群安员 添加到用户表
|
|||
|
if (person.IsGroupSafeOfficer=="1")
|
|||
|
{
|
|||
|
PersonService.AddSafetyOfficerInUser(person);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
PersonService.UpdatePersonByPersonItem(person);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message += "单位:" + person.UnitName + "施工平台不存在!";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message += "项目号:" + person.ProjectCode + "施工平台不存在!";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = "数据为空!";
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
responeData.code = 0;
|
|||
|
responeData.message = ex.Message;
|
|||
|
}
|
|||
|
|
|||
|
return responeData;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|