123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- using Microsoft.Extensions.Logging;
- using FMSAdmin.Data;
- using System.Linq;
- using FMSAdmin.Helpers;
- using FMSAdmin.Entities;
- using Microsoft.EntityFrameworkCore;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- namespace FMSAdmin.Services {
- public class SiteService {
- private readonly ILogger<SiteService> _logger;
- private readonly FMSContext _context;
- private readonly StorageHelper _storage;
- public SiteService(
- ILogger<SiteService> logger,
- FMSContext context,
- StorageHelper storage
- ) {
- _logger = logger;
- _context = context;
- _storage = storage;
- }
- public IQueryable<CmSite> GetAll() {
- var query = _context.CmSite.AsNoTracking();
- return query;
- }
- public IQueryable<CmSite> Get(int siteId) {
- var data = _context.CmSite.Where(x => x.SiteId == siteId);
- return data;
- }
- public void Create(CmSite data) {
- using (var transaction = _context.Database.BeginTransaction()) {
- checkName(data);
- var image = data.ImageFile;
- data.ImageFile = null;
- _context.CmSite.Add(data);
- _context.SaveChanges();
- if (image != null && image.IsUpload) {
- var category = _context.CmFileCategory.First(x => x.Name == "site");
- data.ImageFile = image;
- data.ImageFile.SiteId = data.SiteId;
- data.ImageFile.FileCategory = category;
- data.ImageFile.CreatedDate = DateTime.Now;
- _context.CmSite.Update(data);
- _context.SaveChanges();
- }
- if (data.ImageFile != null && data.ImageFile.IsUpload) {
- // 카피
- _storage.CopyEntity(data.ImageFile.Path, data.ImageFile);
- }
- var businessField = new CmBusinessField {
- Name = "공통",
- IsUse = true
- };
- _context.CmBusinessField.Add(businessField);
- _context.SaveChanges();
- if (!_context.SiteConfig.Single().UseMaterialType) {
- var meterialType = new FmsMaterialCodeType {
- //SiteId = data.SiteId,
- Name = "자재구분미사용",
- Nickname = "자재구분미사용",
- IsUse = true
- };
- _context.FmsMaterialCodeType.Add(meterialType);
- _context.SaveChanges();
- }
- //휴일 작업 구분 자동 생성
- CreateWorkCodeHolidayWorkType(data.SiteId);
- //작업 주기 코드 자동생성
- CreateWorkCodeCycleUnit(data.SiteId);
- //휴일(토/일) 주말 설정 자동생성
- CreateHolidayWeekend(data.SiteId);
- //CmPartnerType 자동생성 최초 사이트 생성시
- if (_context.CmPartnerType.Count() == 0) {
- var partnerType = new CmPartnerType {
- Name = "검사기관",
- IsUse = true
- };
- _context.CmPartnerType.Add(partnerType);
- _context.SaveChanges();
- }
- //빌딩 자동 생성
- var building = new CmBuilding {
- SiteId = data.SiteId,
- Name = data.Name,
- IsUse = true
- };
- _context.CmBuilding.Add(building);
- _context.SaveChanges();
- transaction.Commit();
- }
- }
- public void Edit(int siteId, CmSite data) {
- using (var transaction = _context.Database.BeginTransaction()) {
- if (data.ImageFile != null && data.ImageFile.IsUpload) {
- data.ImageFile.SiteId = data.SiteId;
- var category = _context.CmFileCategory.First(x => x.Name == "site");
- data.ImageFile.FileCategory = category;
- data.ImageFile.CreatedDate = DateTime.Now;
- }
- var persist = _context.CmSite
- .Where(x => x.SiteId == siteId).FirstOrDefault();
- if (persist == null) {
- throw new ServiceException("정보를 찾을 수 없습니다.");
- }
- if (!persist.Name.Equals(data.Name)) {
- checkName(data);
- }
- _logger.LogInformation("수정");
- persist.Name = data.Name;
- persist.PhoneNo = data.PhoneNo;
- persist.AddressZip1 = data.AddressZip1;
- persist.CompletionDate = data.CompletionDate;
- persist.Address1 = data.Address1;
- persist.Adderss2 = data.Adderss2;
- persist.BuildingSize = data.BuildingSize;
- persist.GrossArea = data.GrossArea;
- persist.BuildingArea = data.BuildingArea;
- persist.FloorAreaRatio = data.FloorAreaRatio;
- persist.BuildingCoverageRatio = data.BuildingCoverageRatio;
- persist.MainUse = data.MainUse;
- persist.MainUseIndex = data.MainUseIndex;
- persist.IsControlSchedule = data.IsControlSchedule;
- persist.ScheduleCheckHour = data.ScheduleCheckHour;
- persist.Standard = data.Standard;
- persist.Hdd = data.Hdd;
- persist.Cdd = data.Cdd;
- persist.Url = data.Url;
- persist.IsUse = data.IsUse;
- persist.ApiSido = data.ApiSido;
- persist.ApiSigun = data.ApiSigun;
- persist.ImageMapX = data.ImageMapX;
- persist.ImageMapY = data.ImageMapY;
- persist.DesignSupervision = data.DesignSupervision;
- persist.ConstructionCompany = data.ConstructionCompany;
- persist.ConstructionPeriod = data.ConstructionPeriod;
- persist.Structure = data.Structure;
- persist.LobbyFloor = data.LobbyFloor;
- persist.OfficeFloor = data.OfficeFloor;
- persist.ToiletFloor = data.ToiletFloor;
- persist.EVHall = data.EVHall;
- persist.ParkingLot = data.ParkingLot;
- persist.ParkingFacilities = data.ParkingFacilities;
- persist.OuterWall = data.OuterWall;
- persist.LandArea = data.LandArea;
- persist.LandscapingArea = data.LandscapingArea;
- persist.BuildingFloors = data.BuildingFloors;
- persist.BuildingHeight = data.BuildingHeight;
- persist.ConversionRate = data.ConversionRate;
- persist.AuditoriumFacilities = data.AuditoriumFacilities;
- if (data.ImageFile != null && data.ImageFile.IsUpload) {
- persist.ImageFile = data.ImageFile;
- }
- persist.Comment = data.Comment;
- _context.CmSite.Update(persist);
- _context.SaveChanges();
- if (data.ImageFile != null && data.ImageFile.IsUpload) {
- // 카피
- _storage.CopyEntity(data.ImageFile.Path, persist.ImageFile);
- if (persist.ImageFile != null) {
- // 파일 삭제시 진짜 DB삭제?
- }
- }
- transaction.Commit();
- }
- }
- //작업주기 자동 생성
- public void CreateWorkCodeCycleUnit(int siteId) {
- IList<FmsWorkCodeCycleUnit> workCodeCyleUnits = new List<FmsWorkCodeCycleUnit>();
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 1,
- Name = "일간",
- Description = "매일 처리해야하는 작업"
- });
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 2,
- Name = "주간",
- Description = "일주일 단위로 처리해야 하는작업"
- });
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 3,
- Name = "월간",
- Description = "매월 처리해야하는 작업"
- });
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 4,
- Name = "분기",
- Description = "분기에 1회씩 처리해야하는 작업"
- });
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 5,
- Name = "반기",
- Description = "6개월에 1회씩 처리해야하는 작업"
- });
- workCodeCyleUnits.Add(new FmsWorkCodeCycleUnit {
- SiteId = siteId,
- CycleUnitId = 6,
- Name = "년간",
- Description = "1년에 한번씩 처리해야 하는 작업"
- });
- _context.FmsWorkCodeCycleUnit.AddRange(workCodeCyleUnits);
- _context.SaveChanges();
- }
- //휴일 작업 구분 자동 생성
- public void CreateWorkCodeHolidayWorkType(int siteId) {
- IList<FmsWorkCodeHolidayWorkType> holidayWorkTypes = new List<FmsWorkCodeHolidayWorkType>();
- holidayWorkTypes.Add(new FmsWorkCodeHolidayWorkType {
- SiteId = siteId,
- HolidayWorkTypeId = 0,
- Name = "사용 안 함",
- IsUse = true
- });
- holidayWorkTypes.Add(new FmsWorkCodeHolidayWorkType {
- SiteId = siteId,
- HolidayWorkTypeId = 1,
- Name = "휴일작업",
- IsUse = true
- });
- holidayWorkTypes.Add(new FmsWorkCodeHolidayWorkType {
- SiteId = siteId,
- HolidayWorkTypeId = 2,
- Name = "익일작업",
- IsUse = true
- });
- _context.FmsWorkCodeHolidayWorkType.AddRange(holidayWorkTypes);
- _context.SaveChanges();
- }
- public void checkName(CmSite data) {
- var check = _context.CmSite.Where(x => x.Name == data.Name).Count();
- if (check > 0) {
- throw new ServiceException("이미 동일 이름이 존재합니다.");
- }
- }
- public void Delete(int siteId) {
- var data = _context.CmSite.First(x => x.SiteId == siteId);
- data.IsUse = false;
- _context.SaveChanges();
- }
- //휴일(토/일) 주말 설정 자동생성
- public void CreateHolidayWeekend(int siteId) {
- CmHolidayWeekend holiday = new CmHolidayWeekend {
- SiteId = siteId,
- Saturday = true,
- Sunday = true,
- IsUse = true
- };
- _context.CmHolidayWeekend.Add(holiday);
- _context.SaveChanges();
- }
- }
- }
|