You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
5.8 KiB
131 lines
5.8 KiB
using FactorySystemCommon;
|
|
using FactorySystemModel.EnumModel;
|
|
using FactorySystemModel.RequestModel;
|
|
using FactorySystemModel.ResponseModel;
|
|
using FactorySystemModel.SqlSugarModel;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace FactorySystemBll
|
|
{
|
|
public class MaterialTaskBll
|
|
{
|
|
/// <summary>
|
|
/// 获取任务列表
|
|
/// </summary>
|
|
public List<MaterialTaskRow> GetList(MaterialTaskQuery mtq, out int totalNumber)
|
|
{
|
|
totalNumber = 0;
|
|
var db = AppSettingsHelper.GetSqlSugar();
|
|
return db.Queryable<TFS_FMaterialTask, TFS_FMaterialTeamwork, TUser>((a, b, c) => new JoinQueryInfos(JoinType.Inner, a.FMaterialTeamID == b.FID, JoinType.Left, a.FAddUser == c.FID))
|
|
// 事项状态
|
|
.WhereIF(mtq.FState > 0 && mtq.FState != 99, (a, b) => a.FState == mtq.FState)
|
|
// 物料号
|
|
.WhereIF(!string.IsNullOrEmpty(mtq.FMaterialCode), (a, b) => b.FMaterialCode.Equals(mtq.FMaterialCode))
|
|
// 类型
|
|
.WhereIF(mtq.FTeamworkType > 0, (a, b) => b.FTeamworkType == mtq.FTeamworkType)
|
|
// 发起时间
|
|
.WhereIF(mtq.FDateRange != null && mtq.FDateRange[0] != "", (a, b) => a.FAddDate >= DateTime.Parse(mtq.FDateRange[0]))
|
|
.WhereIF(mtq.FDateRange != null && mtq.FDateRange[1] != "", (a, b) => a.FAddDate <= DateTime.Parse(mtq.FDateRange[1]))
|
|
// 责任人
|
|
//.WhereIF(mtq.FUserID != null, (a, b) => (',' + a.FUserID + ',').Contains(',' + mtq.FUserID + ',') || a.FAddUser.Equals(mtq.FUserID))
|
|
//// 协同
|
|
//.WhereIF(mtq.FMaterialTeamID > 0, (a, b) => a.FMaterialTeamID == mtq.FMaterialTeamID).OrderBy((a, b) => a.FID, OrderByType.Desc)
|
|
.Select<MaterialTaskRow>("a.*,b.FMaterialName,b.FMaterialCode,b.FTestCode,b.FMaterialType, c.FName as FAddUserName").OrderBy((a) => a.FID, OrderByType.Desc)
|
|
.ToPageList(mtq.FPageIndex, mtq.FPageSize, ref totalNumber);
|
|
}
|
|
|
|
public List<TFS_FMaterialTask> GetMaterialTasks(int teamId)
|
|
{
|
|
var db = AppSettingsHelper.GetSqlSugar();
|
|
List<TFS_FMaterialTask> tasks = db.Queryable<TFS_FMaterialTask>().Where(t => t.FMaterialTeamID == teamId).ToList();
|
|
|
|
return tasks;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建物料新增事项
|
|
/// </summary>
|
|
public int CreateMaterialTask(int teamId, int teamworkType, int userId, int type, int factoryId)
|
|
{
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
int funcType = (int)Constant.RoleType.物料视图编辑;
|
|
string tType = type == 0 ? "10" : "11";
|
|
int taskId = -1;
|
|
|
|
try
|
|
{
|
|
List<string> funcVal = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode.物料视图编辑 && s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList();
|
|
List<TUser> users = db.Queryable<TUser, TRole_Right>((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID))
|
|
.Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString()))
|
|
.Where(string.Format("a.FFactoryID in({0})", factoryId))
|
|
.GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select<TUser>("a.FID,a.FFactoryID,a.FName,a.FUser").ToList();
|
|
|
|
if (users.Count > 0)
|
|
{
|
|
|
|
TFS_FMaterialTask materialTask = new TFS_FMaterialTask();
|
|
materialTask.FMaterialTeamID = teamId;
|
|
materialTask.FType = type;
|
|
materialTask.FFactoryID = factoryId;
|
|
materialTask.FCanEdit = 1;
|
|
materialTask.FAddUser = userId;
|
|
materialTask.FAddDate = DateTime.Now;
|
|
materialTask.FState = 1;
|
|
materialTask.FTeamworkType = teamworkType;
|
|
|
|
if (type == 0)
|
|
{
|
|
materialTask.FName = "物料分类";
|
|
materialTask.FDesc = "物料分类选择";
|
|
}
|
|
else if (type == 1)
|
|
{
|
|
materialTask.FName = "物料视图";
|
|
materialTask.FDesc = "物料视图编辑";
|
|
}
|
|
else
|
|
{
|
|
materialTask.FName = "确认视图";
|
|
materialTask.FDesc = "物料视图确认";
|
|
}
|
|
|
|
materialTask.FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key));
|
|
materialTask.FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key));
|
|
|
|
taskId = db.Insertable(materialTask).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
taskId = -1;
|
|
}
|
|
|
|
return taskId;
|
|
}
|
|
|
|
public int CloseMaterialTask(int teamId, int userId, int type)
|
|
{
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
List<TFS_FMaterialTask> taskList = db.Queryable<TFS_FMaterialTask>().Where(s => s.FType == type && s.FMaterialTeamID == teamId && s.FState == 1).ToList();
|
|
int result = 0;
|
|
|
|
if (taskList != null && taskList.Count > 0)
|
|
{
|
|
TFS_FMaterialTask fmt = taskList[0];
|
|
|
|
fmt.FCanEdit = 2;
|
|
fmt.FState = 2;
|
|
fmt.FEditUser = userId;
|
|
fmt.FEditDate = DateTime.Now;
|
|
|
|
result = db.Updateable(fmt).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|