274 lines
11 KiB
C#
274 lines
11 KiB
C#
using Model;
|
|
using Model.APIItem;
|
|
using NPOI.SS.Formula.Eval;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
|
|
namespace BLL
|
|
{
|
|
public class APIQuantityManagementService
|
|
{
|
|
public static Model.ResponeData DayInputList(string projectId, string drawingNo, string part, string projectContent, int page, int pageSize)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = from x in db.View_QuantityManagement_DayInputList where x.ProjectId == projectId select x;
|
|
if (!string.IsNullOrEmpty(drawingNo))
|
|
{
|
|
q = q.Where(x => x.DrawingNo.Contains(drawingNo));
|
|
}
|
|
if (!string.IsNullOrEmpty(part))
|
|
{
|
|
q = q.Where(x => x.Part.Contains(part));
|
|
}
|
|
if (!string.IsNullOrEmpty(projectContent))
|
|
{
|
|
q = q.Where(x => x.ProjectContent.Contains(projectContent));
|
|
}
|
|
List<DayInputItem> dayInputItems = new List<DayInputItem>();
|
|
var list = q.OrderByDescending(x => x.Date).ToList();
|
|
if (list.Count > 0)
|
|
{
|
|
foreach (var x in list)
|
|
{
|
|
DayInputItem dayInputItem = new DayInputItem();
|
|
dayInputItem.DayInputId = x.DayInputId;
|
|
dayInputItem.ProjectId = x.ProjectId;
|
|
dayInputItem.WorkSection = x.WorkSection;
|
|
dayInputItem.DrawingNo = x.DrawingNo;
|
|
dayInputItem.DrawingName = x.DrawingName;
|
|
dayInputItem.Part = x.Part;
|
|
dayInputItem.ProjectContent = x.ProjectContent;
|
|
dayInputItem.Unit = x.Unit;
|
|
dayInputItem.Amount = x.Amount;
|
|
dayInputItem.WorkTeam = x.WorkTeam;
|
|
dayInputItem.Date = x.Date;
|
|
if (x.Date != null)
|
|
{
|
|
dayInputItem.DateStr = string.Format("{0:yyyy-MM-dd}", x.Date);
|
|
}
|
|
dayInputItem.DayAmount = x.DayAmount;
|
|
dayInputItems.Add(dayInputItem);
|
|
}
|
|
}
|
|
dayInputItems = dayInputItems.Skip(page * pageSize).Take(pageSize).ToList();
|
|
respone.data = dayInputItems;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getDayInputById(string dayInputId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
View_QuantityManagement_DayInputList dayInput = (from x in db.View_QuantityManagement_DayInputList where x.DayInputId == dayInputId select x).FirstOrDefault();
|
|
|
|
DayInputItem dayInputItem = new DayInputItem();
|
|
dayInputItem.DayInputId = dayInput.DayInputId;
|
|
dayInputItem.ProjectId = dayInput.ProjectId;
|
|
dayInputItem.WorkSection = dayInput.WorkSection;
|
|
dayInputItem.DrawingId = dayInput.DrawingId;
|
|
dayInputItem.DrawingNo = dayInput.DrawingNo;
|
|
dayInputItem.DrawingName = dayInput.DrawingName;
|
|
dayInputItem.Part = dayInput.Part;
|
|
dayInputItem.ProjectContent = dayInput.ProjectContent;
|
|
dayInputItem.Unit = dayInput.Unit;
|
|
dayInputItem.Amount = dayInput.Amount;
|
|
dayInputItem.WorkTeam = dayInput.WorkTeam;
|
|
dayInputItem.WorkTeamId = dayInput.WorkTeamId;
|
|
dayInputItem.Date = dayInput.Date;
|
|
if (dayInput.Date != null)
|
|
{
|
|
dayInputItem.DateStr = string.Format("{0:yyyy-MM-dd}", dayInput.Date);
|
|
}
|
|
dayInputItem.DayAmount = dayInput.DayAmount;
|
|
var file = db.AttachFile.FirstOrDefault(x => x.ToKeyId == dayInput.DayInputId);
|
|
if (file != null)
|
|
{
|
|
dayInputItem.Url = file.AttachUrl;
|
|
}
|
|
respone.data = dayInputItem;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData addDayInput(DayInputItem dayInput)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
QuantityManagement_DayInput newDayInput = new QuantityManagement_DayInput();
|
|
if (string.IsNullOrEmpty(dayInput.DayInputId))
|
|
{
|
|
newDayInput.DayInputId = Guid.NewGuid().ToString();
|
|
db.QuantityManagement_DayInput.InsertOnSubmit(newDayInput);
|
|
}
|
|
else
|
|
{
|
|
newDayInput = db.QuantityManagement_DayInput.FirstOrDefault(x => x.DayInputId == dayInput.DayInputId);
|
|
}
|
|
newDayInput.ProjectId = dayInput.ProjectId;
|
|
newDayInput.BaseId = dayInput.BaseId;
|
|
newDayInput.Date = Funs.GetNewDateTimeOrNow(dayInput.DateStr);
|
|
newDayInput.DayAmount = Funs.GetNewDecimal(dayInput.DayAmount.ToString());
|
|
newDayInput.WorkTeam = dayInput.WorkTeamId;
|
|
newDayInput.CompileMan = dayInput.CompileMan;
|
|
newDayInput.CompileDate = DateTime.Now;
|
|
db.SubmitChanges();
|
|
SaveUrl(dayInput.DayInputId, BLL.Const.DayInputMenuId, dayInput.Url);
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static void SaveUrl(string dayInputId, string menuId, string url)
|
|
{
|
|
Model.ToDoItem toDoItem = new Model.ToDoItem
|
|
{
|
|
MenuId = menuId,
|
|
DataId = dayInputId,
|
|
UrlStr = url,
|
|
};
|
|
APIUpLoadFileService.SaveAttachUrl(toDoItem);
|
|
}
|
|
|
|
public static Model.ResponeData getDrawingNoList(string projectId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = BLL.DrawingService.GetDrawingChangeListByProjectId(projectId);
|
|
List<DrawingItem> res = new List<DrawingItem>();
|
|
foreach (var p in q)
|
|
{
|
|
DrawingItem item = new DrawingItem();
|
|
item.DrawingId = p.Value;
|
|
item.DrawingNo = p.Text;
|
|
res.Add(item);
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getTeamGroupList(string projectId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = from x in db.ProjectData_TeamGroup
|
|
where x.ProjectId == projectId
|
|
orderby x.TeamGroupCode
|
|
select x;
|
|
List<TeamGroupItem> res = new List<TeamGroupItem>();
|
|
foreach (var p in q)
|
|
{
|
|
TeamGroupItem item = new TeamGroupItem();
|
|
item.TeamGroupId = p.TeamGroupId;
|
|
item.TeamGroupName = p.TeamGroupName;
|
|
res.Add(item);
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getPartList(string drawingId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = (from x in db.QuantityManagement_Base
|
|
where x.DrawingId == drawingId && x.State == BLL.Const.Base_Complete
|
|
orderby x.Part
|
|
select x.Part).Distinct().ToList();
|
|
List<BaseInfoItem> res = new List<BaseInfoItem>();
|
|
foreach (var p in q)
|
|
{
|
|
BaseInfoItem item = new BaseInfoItem();
|
|
item.BaseInfoId = p;
|
|
item.BaseInfoName = p;
|
|
res.Add(item);
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getWorkSectionAndDrawingName(string drawingId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = (from x in db.View_QuantityManagement_Base
|
|
where x.DrawingId == drawingId && x.State == BLL.Const.Base_Complete
|
|
orderby x.Part
|
|
select x).FirstOrDefault();
|
|
BaseInfoItem res = new BaseInfoItem();
|
|
if (q != null)
|
|
{
|
|
res.BaseInfoId = q.WorkSection;
|
|
res.BaseInfoName = q.DrawingName;
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getProjectContentList(string drawingId, string part)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = (from x in db.QuantityManagement_Base
|
|
where x.DrawingId == drawingId && x.Part == part && x.State == BLL.Const.Base_Complete
|
|
orderby x.ProjectContent
|
|
select x).ToList();
|
|
List<BaseInfoItem> res = new List<BaseInfoItem>();
|
|
foreach (var p in q)
|
|
{
|
|
BaseInfoItem item = new BaseInfoItem();
|
|
item.BaseInfoId = p.BaseId;
|
|
item.BaseInfoName = p.ProjectContent;
|
|
res.Add(item);
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
|
|
public static Model.ResponeData getBase(string baseId)
|
|
{
|
|
Model.ResponeData respone = new ResponeData();
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var q = db.QuantityManagement_Base.FirstOrDefault(e => e.BaseId == baseId);
|
|
BaseInfoItem res = new BaseInfoItem();
|
|
if (q != null)
|
|
{
|
|
decimal usedAmount = (from x in db.QuantityManagement_DayInput where x.BaseId == baseId select x).ToList().Sum(x => x.DayAmount ?? 0);
|
|
if (q.Amount != null)
|
|
{
|
|
res.Remark = q.Unit;
|
|
res.Amount = q.Amount - usedAmount;
|
|
res.BaseInfoId = q.WorkTeam;
|
|
}
|
|
}
|
|
|
|
respone.data = res;
|
|
}
|
|
return respone;
|
|
}
|
|
}
|
|
}
|