SGGL_JT/SUBQHSE/WebAPI/Controllers/uploadController.cs

363 lines
19 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}