324 lines
16 KiB
C#
324 lines
16 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Net.Http;
|
||
using System.Web.Http;
|
||
using BLL;
|
||
using Model;
|
||
|
||
namespace WebAPI.Controllers.DataPenetrate
|
||
{
|
||
/// <summary>
|
||
/// 单位工程控制器
|
||
/// </summary>
|
||
public class UnitWorkPenetrateController : ApiController
|
||
{
|
||
|
||
/// <summary>
|
||
/// 根据ProjectId查询单位工程信息
|
||
/// </summary>
|
||
/// <param name="projectIds"></param>
|
||
/// <returns></returns>
|
||
public Model.ResponeData getInfoByProjectId(string projectIds="")
|
||
{
|
||
string projectId = projectIds;
|
||
var responeData = new Model.ResponeData();
|
||
try
|
||
{
|
||
if (string.IsNullOrEmpty(projectId))
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "项目id不能为空";
|
||
return responeData;
|
||
}
|
||
var getDataList = Funs.DB.WBS_UnitWork.Where(x => x.ProjectId==projectId)
|
||
.Select(s => new WBS_UnitWork_new()
|
||
{
|
||
UnitWorkId=s.UnitWorkId,
|
||
UnitWorkCode=s.UnitWorkCode,
|
||
UnitWorkName=s.UnitWorkName,
|
||
ProjectId=s.ProjectId
|
||
})
|
||
.ToList();
|
||
|
||
responeData.data = new { getDataList };
|
||
if (getDataList.Count == 0)
|
||
{
|
||
responeData.code = 1;
|
||
responeData.message = "根据条件未查询到数据。";
|
||
return responeData;
|
||
}
|
||
else
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "查询成功。";
|
||
return responeData;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = ex.Message;
|
||
}
|
||
|
||
return responeData;
|
||
}
|
||
|
||
public class WBS_UnitWork_new {
|
||
public string UnitWorkId { get; set; }
|
||
public string UnitWorkCode { get; set; }
|
||
public string UnitWorkName { get; set; }
|
||
public string ProjectId { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 保存单位工程
|
||
/// </summary>
|
||
/// <param name="model"></param>
|
||
/// <returns></returns>
|
||
[HttpPost]
|
||
public Model.ResponeData saveUnitWork(WBS_UnitWork model) {
|
||
var responeData = new Model.ResponeData();
|
||
try
|
||
{
|
||
#region 判断
|
||
if (string.IsNullOrEmpty(model.UnitWorkCode))
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "单位工程编码不能为空";
|
||
return responeData;
|
||
}
|
||
if (string.IsNullOrEmpty(model.UnitWorkName))
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "单位工程名称不能为空";
|
||
return responeData;
|
||
}
|
||
if (string.IsNullOrEmpty(model.ProjectId))
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "项目id不能为空";
|
||
return responeData;
|
||
}
|
||
else {
|
||
//判断projectid是否有数据
|
||
var pmodel = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == model.ProjectId);
|
||
if (pmodel==null)
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "项目id未查询到数据,请检查是否正确。";
|
||
return responeData;
|
||
}
|
||
}
|
||
#endregion
|
||
if (string.IsNullOrEmpty(model.UnitWorkId)) {
|
||
model.UnitWorkId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork));
|
||
BLL.UnitWorkService.AddUnitWork(model);
|
||
#region 拷贝WBS内容
|
||
//拷贝分部及子分部
|
||
var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x;
|
||
foreach (var d1 in divisions1)
|
||
{
|
||
Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject();
|
||
newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject));
|
||
newDivisionProject.ProjectId = model.ProjectId;
|
||
newDivisionProject.DivisionCode = d1.DivisionCode;
|
||
newDivisionProject.DivisionName = d1.DivisionName;
|
||
newDivisionProject.SortIndex = d1.SortIndex;
|
||
newDivisionProject.SuperDivisionId = d1.SuperDivisionId;
|
||
newDivisionProject.CNProfessionalId = d1.CNProfessionalId;
|
||
newDivisionProject.UnitWorkId = model.UnitWorkId;
|
||
newDivisionProject.OldDivisionId = d1.DivisionId;
|
||
newDivisionProject.SubItemType = d1.SubItemType;
|
||
BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部
|
||
List<Model.WBS_Division> divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList();
|
||
if (divisions2.Count() > 0)
|
||
{
|
||
this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, model.UnitWorkId,model.ProjectId);
|
||
}
|
||
}
|
||
//拷贝分项
|
||
var breakdowns = from x in Funs.DB.WBS_Breakdown select x;
|
||
foreach (var b in breakdowns)
|
||
{
|
||
Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject();
|
||
bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject));
|
||
bp.ProjectId = model.ProjectId;
|
||
bp.BreakdownCode = b.BreakdownCode;
|
||
bp.BreakdownName = b.BreakdownName;
|
||
bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == model.UnitWorkId select x.DivisionProjectId).FirstOrDefault();
|
||
bp.Basis = b.Basis;
|
||
bp.CheckPoints = b.CheckPoints;
|
||
bp.RecordAndCode = b.RecordAndCode;
|
||
bp.Class = b.Class;
|
||
bp.SortIndex = b.SortIndex;
|
||
bp.Remark = b.Remark;
|
||
bp.ModelURL = b.ModelURL;
|
||
bp.UnitWorkId = model.UnitWorkId;
|
||
bp.IsAcceptance = b.IsAcceptance;
|
||
bp.IsYellow = b.IsYellow;
|
||
bp.WuHuan = b.WuHuan;
|
||
bp.JianLi = b.JianLi;
|
||
bp.FenBao = b.FenBao;
|
||
bp.YeZhu = b.YeZhu;
|
||
bp.SourceBreakdownId = b.BreakdownId;
|
||
bp.CheckAcceptType = b.CheckAcceptType;
|
||
|
||
BLL.BreakdownProjectService.AddBreakdownProject(bp);
|
||
}
|
||
#endregion
|
||
#region 拷贝资料库内容
|
||
Model.DataBase_DataTypeProject dataTypeProject = BLL.DataTypeProjectService.GetDataTypeProjectBySourceDataTypeId(Const.DataTypeNewConstructId, model.ProjectId);
|
||
List<Model.DataBase_DataType> childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(Const.DataTypeNewConstructId);
|
||
if (childDataTypes.Count > 0)
|
||
{
|
||
if (dataTypeProject != null)
|
||
{
|
||
InsertDataTypeDetail(childDataTypes, dataTypeProject.DataTypeProjectId, model.ProjectId, model.UnitWorkId);
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
var umodel = Funs.DB.WBS_UnitWork.FirstOrDefault(x => x.UnitWorkId == model.UnitWorkId);
|
||
if (umodel==null)
|
||
{
|
||
responeData.code = 0;
|
||
responeData.message = "单位工程id(UnitWorkId)未查询到数据,无法修改,请检查是否正确。";
|
||
return responeData;
|
||
}
|
||
|
||
BLL.UnitWorkService.UpdateUnitWork(model);
|
||
var divisionProject = Funs.DB.WBS_DivisionProject.FirstOrDefault(x => x.UnitWorkId == model.UnitWorkId);
|
||
if (divisionProject == null)
|
||
{
|
||
#region 拷贝WBS内容
|
||
//拷贝分部及子分部
|
||
var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x;
|
||
foreach (var d1 in divisions1)
|
||
{
|
||
Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject();
|
||
newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject));
|
||
newDivisionProject.ProjectId = model.ProjectId;
|
||
newDivisionProject.DivisionCode = d1.DivisionCode;
|
||
newDivisionProject.DivisionName = d1.DivisionName;
|
||
newDivisionProject.SortIndex = d1.SortIndex;
|
||
newDivisionProject.SuperDivisionId = d1.SuperDivisionId;
|
||
newDivisionProject.CNProfessionalId = d1.CNProfessionalId;
|
||
newDivisionProject.UnitWorkId = model.UnitWorkId;
|
||
newDivisionProject.OldDivisionId = d1.DivisionId;
|
||
newDivisionProject.SubItemType = d1.SubItemType;
|
||
BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部
|
||
List<Model.WBS_Division> divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList();
|
||
if (divisions2.Count() > 0)
|
||
{
|
||
this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, model.UnitWorkId, model.ProjectId);
|
||
}
|
||
}
|
||
//拷贝分项
|
||
var breakdowns = from x in Funs.DB.WBS_Breakdown select x;
|
||
foreach (var b in breakdowns)
|
||
{
|
||
Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject();
|
||
bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject));
|
||
bp.ProjectId = model.ProjectId;
|
||
bp.BreakdownCode = b.BreakdownCode;
|
||
bp.BreakdownName = b.BreakdownName;
|
||
bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == model.UnitWorkId select x.DivisionProjectId).FirstOrDefault();
|
||
bp.Basis = b.Basis;
|
||
bp.CheckPoints = b.CheckPoints;
|
||
bp.RecordAndCode = b.RecordAndCode;
|
||
bp.Class = b.Class;
|
||
bp.SortIndex = b.SortIndex;
|
||
bp.Remark = b.Remark;
|
||
bp.ModelURL = b.ModelURL;
|
||
bp.UnitWorkId = model.UnitWorkId;
|
||
bp.IsAcceptance = b.IsAcceptance;
|
||
bp.IsYellow = b.IsYellow;
|
||
bp.WuHuan = b.WuHuan;
|
||
bp.JianLi = b.JianLi;
|
||
bp.FenBao = b.FenBao;
|
||
bp.YeZhu = b.YeZhu;
|
||
bp.SourceBreakdownId = b.BreakdownId;
|
||
bp.CheckAcceptType = b.CheckAcceptType;
|
||
|
||
BLL.BreakdownProjectService.AddBreakdownProject(bp);
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
|
||
responeData.code = 0;
|
||
responeData.message = ex.Message;
|
||
}
|
||
return responeData;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 循环拷贝子级分部
|
||
/// </summary>
|
||
/// <param name="dataTypes"></param>
|
||
private void InsertDivisionDetail(List<Model.WBS_Division> divisions, string superDivisionId, string unitWorkId,string projectid)
|
||
{
|
||
foreach (var d in divisions)
|
||
{
|
||
Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject();
|
||
newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject));
|
||
newDivisionProject.ProjectId = projectid;
|
||
newDivisionProject.DivisionCode = d.DivisionCode;
|
||
newDivisionProject.DivisionName = d.DivisionName;
|
||
newDivisionProject.SortIndex = d.SortIndex;
|
||
newDivisionProject.SuperDivisionId = superDivisionId;
|
||
newDivisionProject.CNProfessionalId = d.CNProfessionalId;
|
||
newDivisionProject.UnitWorkId = unitWorkId;
|
||
newDivisionProject.OldDivisionId = d.DivisionId;
|
||
newDivisionProject.SubItemType = d.SubItemType;
|
||
BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //子级分部
|
||
List<Model.WBS_Division> divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d.DivisionId select x).ToList();
|
||
if (divisions2.Count() > 0)
|
||
{
|
||
this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, unitWorkId, projectid);
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 循环拷贝子级类别
|
||
/// </summary>
|
||
/// <param name="dataTypes"></param>
|
||
private void InsertDataTypeDetail(List<Model.DataBase_DataType> dataTypes, string superDataTypeId, string projectId, string unitWorkId)
|
||
{
|
||
foreach (var d in dataTypes)
|
||
{
|
||
|
||
Model.DataBase_DataTypeProject newDataTypeProject = new Model.DataBase_DataTypeProject();
|
||
newDataTypeProject.DataTypeProjectId = SQLHelper.GetNewID(typeof(Model.DataBase_DataTypeProject));
|
||
newDataTypeProject.ProjectId = projectId;
|
||
newDataTypeProject.DataTypeCode = d.DataTypeCode;
|
||
newDataTypeProject.DataTypeName = d.DataTypeName;
|
||
newDataTypeProject.SuperDataTypeId = superDataTypeId;
|
||
newDataTypeProject.SortIndex = d.SortIndex;
|
||
newDataTypeProject.Pages = d.Pages;
|
||
newDataTypeProject.Remark = d.Remark;
|
||
newDataTypeProject.IsRelatedWBS = d.IsRelatedWBS;
|
||
newDataTypeProject.SourceDataTypeId = d.DataTypeId;
|
||
|
||
newDataTypeProject.UnitWorkId = unitWorkId;
|
||
|
||
BLL.DataTypeProjectService.AddDataTypeProject(newDataTypeProject);
|
||
|
||
List<Model.DataBase_DataType> childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(d.DataTypeId);
|
||
if (childDataTypes.Count > 0)
|
||
{
|
||
InsertDataTypeDetail(childDataTypes, newDataTypeProject.DataTypeProjectId, projectId, unitWorkId);
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
} |