|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Reflection;
|
|
|
|
|
|
using FactorySystemCommon;
|
|
|
|
|
|
using FactorySystemModel.EnumModel;
|
|
|
|
|
|
using FactorySystemModel.SqlSugarModel;
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
|
|
|
|
|
|
namespace FactorySystemBll
|
|
|
|
|
|
{
|
|
|
|
|
|
public class PackageBll
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取包材信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public object GetPackageInfo(int teamId)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
TFS_FTeamwork teamwork = db.Queryable<TFS_FTeamwork>().Where(s => s.FID == teamId).First();
|
|
|
|
|
|
TFS_PackageMain main;
|
|
|
|
|
|
if (teamwork.FPackID > 0) main = db.Queryable<TFS_PackageMain>().Where(s => s.FID == teamwork.FPackID).First();
|
|
|
|
|
|
else main = db.Queryable<TFS_PackageMain>().Where(string.Format("FID=(select FPackID from TFS_FTeamwork where FID={0})", teamId)).First();
|
|
|
|
|
|
if (main != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<TFS_PackageChild> childs = db.Queryable<TFS_PackageChild>().Where(s => s.FPackageID == teamwork.FPackID && s.FDeleted != 1).ToList();
|
|
|
|
|
|
return new
|
|
|
|
|
|
{
|
|
|
|
|
|
Main = main,
|
|
|
|
|
|
FCode = teamwork.FPackCode,
|
|
|
|
|
|
List = childs.Count == 0 ? new List<TFS_PackageChild>() : childs
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
return new { FCode = teamwork.FPackCode };
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 修改包材主信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int UpdatePackageData(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
int mainId = -1;
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
TFS_PackageMain main = db.Queryable<TFS_PackageMain>().Where(s => s.FCode == inParam["FCode"].ToString()).First();
|
|
|
|
|
|
if (main == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
main = new TFS_PackageMain();
|
|
|
|
|
|
SetFieldVal(typeof(TFS_PackageMain).GetProperties(), main, inParam);
|
|
|
|
|
|
main.FID = db.Insertable(main).AS("TFS_PackageMain").IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
SetFieldVal(typeof(TFS_PackageMain).GetProperties(), main, inParam);
|
|
|
|
|
|
inParam.Add("FEditDate", DateTime.Now);
|
|
|
|
|
|
db.Updateable(main).AS("TFS_PackageMain").Where(s => s.FID == main.FID).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
mainId = main.FID;
|
|
|
|
|
|
int teamId = int.Parse(inParam["FTeamID"].ToString());
|
|
|
|
|
|
//2022-10-08 所谓的成品字段值是包材的规格、毛重、净重
|
|
|
|
|
|
db.Ado.ExecuteCommand(string.Format(@"update a set a.FBaseSpecification=isnull(b.FSpecs,''),
|
|
|
|
|
|
a.FBaseGrossWeight=isnull(b.FGrossWeight,''),a.FBaseNetWeight=isnull(b.FNetWeight,'') from
|
|
|
|
|
|
TFS_ViewMaterial a,TFS_PackageMain b where a.FTeamID={0} and b.FID={1} and a.FViewType=1", teamId, mainId));
|
|
|
|
|
|
db.Updateable<TFS_FTeamwork>(new { FPackID = mainId, FPackCode = main.FCode }).Where(s => s.FID == teamId).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception) { }
|
|
|
|
|
|
return mainId;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 20230404 需求变更
|
|
|
|
|
|
* 增加包材新增、修改入口(自包材清单)
|
|
|
|
|
|
* 此部分功能和协同无关
|
|
|
|
|
|
* 从包材清单进入时,会带入FOperateType参数,且值为1
|
|
|
|
|
|
* 当FOperateType == 1,即由包材清单入口进入时调用
|
|
|
|
|
|
* **/
|
|
|
|
|
|
public int UpdatePackage(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
int mainId = -1;
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
TFS_PackageMain main = db.Queryable<TFS_PackageMain>().Where(s => s.FCode == inParam["FCode"].ToString()).First();
|
|
|
|
|
|
if (main == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
main = new TFS_PackageMain();
|
|
|
|
|
|
SetFieldVal(typeof(TFS_PackageMain).GetProperties(), main, inParam);
|
|
|
|
|
|
main.FID = db.Insertable(main).AS("TFS_PackageMain").IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
SetFieldVal(typeof(TFS_PackageMain).GetProperties(), main, inParam);
|
|
|
|
|
|
inParam.Add("FEditDate", DateTime.Now);
|
|
|
|
|
|
db.Updateable(main).AS("TFS_PackageMain").Where(s => s.FID == main.FID).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
mainId = main.FID;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception) { }
|
|
|
|
|
|
return mainId;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 不补充包材信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int NoSupplyPackageChild(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
//直接进度完成不让修改
|
|
|
|
|
|
int teamId = int.Parse(inParam["FTeamID"].ToString());
|
|
|
|
|
|
string taskSql = BaseBll.GetTaskSql(-1, 2, teamId, (int)Constant.TaskType.补充包材规格, 2);
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
int result = db.Ado.ExecuteCommand(taskSql);
|
|
|
|
|
|
TeamworkBll.ChangeTeamProcess(teamId, db);
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 包材子项新增
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int InsertChildData(Dictionary<string, object> inParam, List<TFS_PackageChild> childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
int childId = -1;
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
int userId = int.Parse(inParam["FEditUser"].ToString());
|
|
|
|
|
|
int mainId = int.Parse(inParam["FID"].ToString());
|
|
|
|
|
|
int teamId = int.Parse(inParam["FTeamID"].ToString());
|
|
|
|
|
|
{
|
|
|
|
|
|
List<TFS_PackageChild> updateList = childList.Where(s => s.FID > 0).ToList();
|
|
|
|
|
|
//删除已删除的
|
|
|
|
|
|
List<int> updateIds = updateList.Count > 0 ? updateList.Select(s => s.FID).ToList() : new List<int>() { -1 };
|
|
|
|
|
|
db.Updateable<TFS_PackageChild>(new { FDeleted = 1, FEditUser = userId, FEditDate = DateTime.Now })
|
|
|
|
|
|
.Where(s => !updateIds.Contains(s.FID) && s.FPackageID == mainId && s.FDeleted != 1).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
TFS_FTeamwork teamwork = db.Queryable<TFS_FTeamwork>().Where(s => s.FID == teamId).First();
|
|
|
|
|
|
bool hasTask = false;//是否创建“新子项包材申请”
|
|
|
|
|
|
List<int> viewFactory = new List<int>();//视图分工厂
|
|
|
|
|
|
foreach (TFS_PackageChild child in childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
child.FPackageID = mainId;
|
|
|
|
|
|
child.FEditUser = userId;
|
|
|
|
|
|
if (child.FID <= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (child.FMaterialID <= 0) child.FMaterialID = -1;
|
|
|
|
|
|
child.FID = db.Insertable(child).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (child.FMaterialID > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Material material = null;
|
|
|
|
|
|
List<TFS_ViewMaterial> viewList = db.Queryable<TFS_ViewMaterial>().Where(s => s.FMaterialID == child.FMaterialID
|
|
|
|
|
|
&& s.FDeleted != 1).ToList();
|
|
|
|
|
|
bool hasCreate = false;
|
|
|
|
|
|
if (viewList.Find(s => s.FFactoryID == teamwork.FCreateFactoryID) == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
hasCreate = true;
|
|
|
|
|
|
if (viewFactory.IndexOf(teamwork.FCreateFactoryID) == -1) viewFactory.Add(teamwork.FCreateFactoryID);
|
|
|
|
|
|
if (material == null) db.Queryable<TFS_Material>().Where(s => s.FID == child.FMaterialID).First();
|
|
|
|
|
|
TFS_ViewMaterial view = SetViewVal(material, teamwork, userId);
|
|
|
|
|
|
view.FFactoryCode = teamwork.FCreateFactoryCode;
|
|
|
|
|
|
view.FFactoryID = teamwork.FCreateFactoryID;
|
|
|
|
|
|
db.Insertable(view).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (viewList.Find(s => s.FFactoryID == teamwork.FProdFactoryID) == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (viewFactory.IndexOf(teamwork.FProdFactoryID) == -1) viewFactory.Add(teamwork.FProdFactoryID);
|
|
|
|
|
|
if (material == null) db.Queryable<TFS_Material>().Where(s => s.FID == child.FMaterialID).First();
|
|
|
|
|
|
TFS_ViewMaterial view = SetViewVal(material, teamwork, userId);
|
|
|
|
|
|
view.FFactoryCode = teamwork.FProdFactoryCode;
|
|
|
|
|
|
view.FFactoryID = teamwork.FProdFactoryID;
|
|
|
|
|
|
if (hasCreate) view.FQualityType4 = "05";
|
|
|
|
|
|
else view.FQualityType1 = "01";
|
|
|
|
|
|
db.Insertable(view).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
hasTask = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//删除视图
|
|
|
|
|
|
db.Deleteable<TFS_ViewMaterial>().Where(s => s.FTeamID == teamId && s.FViewType == (int)Constant.ViewType.包材视图)
|
|
|
|
|
|
.Where(string.Format("FMaterialID not in(select FMaterialID from TFS_PackageChild where FPackageID={0} and FDeleted!=1)", mainId))
|
|
|
|
|
|
.ExecuteCommand();
|
|
|
|
|
|
if (hasTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
BaseBll.CreateTaskData(teamId, userId, "10");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (viewFactory.Count > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
BaseBll.CreateTaskData(teamId, userId, "11", string.Join(",", viewFactory));
|
|
|
|
|
|
}
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
return childId;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 20230404 需求变更
|
|
|
|
|
|
* 增加包材新增、修改入口(自包材清单)
|
|
|
|
|
|
* 此部分功能和协同无关
|
|
|
|
|
|
* 从包材清单进入时,会带入FOperateType参数,且值为1
|
|
|
|
|
|
* 当FOperateType == 1,即由包材清单入口进入时调用
|
|
|
|
|
|
* **/
|
|
|
|
|
|
|
|
|
|
|
|
// 新的包材子项新增
|
|
|
|
|
|
public void InsertPackageChild(Dictionary<string, object> inParam, List<TFS_PackageChild> childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
int userId = int.Parse(inParam["FEditUser"].ToString());
|
|
|
|
|
|
int mainId = int.Parse(inParam["FID"].ToString());
|
|
|
|
|
|
|
|
|
|
|
|
foreach (TFS_PackageChild child in childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
child.FPackageID = mainId;
|
|
|
|
|
|
child.FEditUser = userId;
|
|
|
|
|
|
db.Insertable(child).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 新的包材子项更新(包括逻辑删除)
|
|
|
|
|
|
public void UpdatePackageChild(Dictionary<string, object> inParam, List<TFS_PackageChild> childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
int userId = int.Parse(inParam["FEditUser"].ToString());
|
|
|
|
|
|
int mainId = int.Parse(inParam["FID"].ToString());
|
|
|
|
|
|
|
|
|
|
|
|
foreach (TFS_PackageChild child in childList)
|
|
|
|
|
|
{
|
|
|
|
|
|
child.FEditUser = userId;
|
|
|
|
|
|
child.FEditDate = DateTime.Now;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
db.Updateable<TFS_PackageChild>(childList).ExecuteCommand();
|
|
|
|
|
|
|
|
|
|
|
|
//db.Updateable<TFS_PackageChild>(new {
|
|
|
|
|
|
|
|
|
|
|
|
// FEditUser = userId,
|
|
|
|
|
|
// FEditDate = DateTime.Now
|
|
|
|
|
|
//}).Where(s => s.FPackageID == mainId && s.FDeleted != 1).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导入包材
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public object InsertBatchPackageData(List<TFS_PackageMain> mainList, List<TFS_PackageChild> childList, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
|
|
|
|
|
|
List<TFS_PackageMain> mainList2 = new List<TFS_PackageMain>();
|
|
|
|
|
|
List<TFS_PackageChild> childList2 = new List<TFS_PackageChild>();
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < mainList.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_PackageMain item = mainList[i];
|
|
|
|
|
|
TFS_PackageMain main = db.Queryable<TFS_PackageMain>().Where(s => s.FCode == item.FCode).First();
|
|
|
|
|
|
if (main == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
main = item;
|
|
|
|
|
|
main.FEditUser = userId;
|
|
|
|
|
|
main.FFactoryID = -1;
|
|
|
|
|
|
main.FID = db.Insertable(main).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (mainList2.Find(s => s.FID == main.FID) == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
main.FFactoryCode = string.IsNullOrEmpty(item.FFactoryCode) ? main.FFactoryCode : item.FFactoryCode;
|
|
|
|
|
|
main.FCode = string.IsNullOrEmpty(item.FCode) ? main.FCode : item.FCode;
|
|
|
|
|
|
main.FBomUnit = string.IsNullOrEmpty(item.FBomUnit) ? main.FBomUnit : item.FBomUnit;
|
|
|
|
|
|
main.FRemark = string.IsNullOrEmpty(item.FRemark) ? main.FRemark : item.FRemark;
|
|
|
|
|
|
main.FSpecs = string.IsNullOrEmpty(item.FSpecs) ? main.FSpecs : item.FSpecs;
|
|
|
|
|
|
main.FNetWeight = GetWeight2(string.IsNullOrEmpty(item.FNetWeight) ? main.FNetWeight : item.FNetWeight);
|
|
|
|
|
|
main.FGrossWeight = GetWeight2(string.IsNullOrEmpty(item.FGrossWeight) ? main.FGrossWeight : item.FGrossWeight);
|
|
|
|
|
|
main.FSize = string.IsNullOrEmpty(item.FSize) ? main.FSize : item.FSize;
|
|
|
|
|
|
main.FVolume = string.IsNullOrEmpty(item.FVolume) ? main.FVolume : item.FVolume;
|
|
|
|
|
|
db.Updateable(main).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
TFS_PackageChild item2 = childList[i];
|
|
|
|
|
|
TFS_PackageChild child = db.Queryable<TFS_PackageChild>().Where(s => s.FCode == item2.FCode && s.FPackageID == main.FID).First();
|
|
|
|
|
|
|
|
|
|
|
|
TFS_Material material = db.Queryable<TFS_Material>().Where(s => s.FCode == item2.FCode).First();
|
|
|
|
|
|
if (child == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
child = item2;
|
|
|
|
|
|
child.FPackageID = main.FID;
|
|
|
|
|
|
child.FMaterialID = material != null ? material.FID : -1;
|
|
|
|
|
|
child.FEditUser = userId;
|
|
|
|
|
|
child.FID = db.Insertable(child).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
child.FPackageID = main.FID;
|
|
|
|
|
|
child.FMaterialID = material != null ? material.FID : -1;
|
|
|
|
|
|
child.FName = !string.IsNullOrEmpty(item2.FName) ? item2.FName : child.FName;
|
|
|
|
|
|
child.FCode = !string.IsNullOrEmpty(item2.FCode) ? item2.FCode : child.FCode;
|
|
|
|
|
|
child.FCount = !string.IsNullOrEmpty(item2.FCount) ? item2.FCount : child.FCount;
|
|
|
|
|
|
child.FUnit = !string.IsNullOrEmpty(item2.FUnit) ? item2.FUnit : child.FUnit;
|
|
|
|
|
|
child.FGroup = !string.IsNullOrEmpty(item2.FGroup) ? item2.FGroup : child.FGroup;
|
|
|
|
|
|
child.FOutSize = !string.IsNullOrEmpty(item2.FOutSize) ? item2.FOutSize : child.FOutSize;
|
|
|
|
|
|
child.FWeight = !string.IsNullOrEmpty(item2.FWeight) ? item2.FWeight : child.FWeight;
|
|
|
|
|
|
db.Updateable(child).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
mainList2.Add(main);
|
|
|
|
|
|
childList2.Add(child);
|
|
|
|
|
|
result += 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
ExceptionHelper.AddSystemJournal(null, new { mainList, childList }, new { mainList2, childList2 }, userId, "InsertBatchPackageData");
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private string GetWeight2(string weight)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(weight)) return "";
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (decimal.TryParse(weight, out decimal dWeight))
|
|
|
|
|
|
{
|
|
|
|
|
|
return Math.Round(dWeight, 2, MidpointRounding.AwayFromZero).ToString("f2");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception) { }
|
|
|
|
|
|
return weight;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 包材新增完成
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void TaskCompleted(Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
int taskId = int.Parse(inParam["FTaskID"].ToString()); ;
|
|
|
|
|
|
int teamId = int.Parse(inParam["FTeamID"].ToString());
|
|
|
|
|
|
string taskSql = BaseBll.GetTaskSql(taskId, 2, teamId, (int)Constant.TaskType.新包材新增);
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
db.Ado.ExecuteCommand(taskSql);
|
|
|
|
|
|
TeamworkBll.ChangeTeamProcess(teamId, db);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 对接子项代码
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public object DockChildCode(Dictionary<string, object> inParam, List<TFS_PackageChild> childs, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
|
|
|
|
|
|
db.BeginTran();
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
int teamId = int.Parse(inParam["FTeamID"].ToString());
|
|
|
|
|
|
TFS_FTeamwork teamwork = db.Queryable<TFS_FTeamwork>().Where(s => s.FID == teamId).First();
|
|
|
|
|
|
foreach (var item in childs)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_Material material = new TFS_Material()
|
|
|
|
|
|
{
|
|
|
|
|
|
FName = item.FName,
|
|
|
|
|
|
FType = "40",
|
|
|
|
|
|
FTestCode = "",
|
|
|
|
|
|
FFactoryID = teamwork.FCreateFactoryID,
|
|
|
|
|
|
FFactoryCode = teamwork.FCreateFactoryCode,
|
|
|
|
|
|
FMaterialGroup = item.FGroup,
|
|
|
|
|
|
FBaseUnit = item.FUnit,
|
|
|
|
|
|
FCode = item.FCode
|
|
|
|
|
|
};
|
|
|
|
|
|
material.FID = db.Insertable(material).IgnoreColumns(true).ExecuteReturnIdentity();
|
|
|
|
|
|
item.FAddDate = null;
|
|
|
|
|
|
item.FMaterialID = material.FID;
|
|
|
|
|
|
item.FCode = material.FCode;
|
|
|
|
|
|
item.FEditUser = userId;
|
|
|
|
|
|
item.FEditDate = DateTime.Now;
|
|
|
|
|
|
if (item.FID > 0) result += db.Updateable(item).IgnoreColumns(true).ExecuteCommand() + 1;
|
|
|
|
|
|
else result += db.Insertable(item).IgnoreColumns(true).ExecuteCommand() + 1;
|
|
|
|
|
|
|
|
|
|
|
|
TFS_ViewMaterial view = SetViewVal(material, teamwork, userId);
|
|
|
|
|
|
view.FBaseMaterialGroup = string.IsNullOrEmpty(material.FMaterialGroup) ? item.FGroup : "";
|
|
|
|
|
|
view.FFactoryCode = teamwork.FCreateFactoryCode;
|
|
|
|
|
|
view.FFactoryID = teamwork.FCreateFactoryID;
|
|
|
|
|
|
view.FBaseBasicMeter = material.FBaseUnit;
|
|
|
|
|
|
result += db.Insertable(view).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
if (teamwork.FCreateFactoryID != teamwork.FProdFactoryID)
|
|
|
|
|
|
{
|
|
|
|
|
|
view.FFactoryCode = teamwork.FProdFactoryCode;
|
|
|
|
|
|
view.FFactoryID = teamwork.FProdFactoryID;
|
|
|
|
|
|
result += db.Insertable(view).IgnoreColumns(true).ExecuteCommand();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
string taskSql = BaseBll.GetTaskSql(-1, 2, teamId, (int)Constant.TaskType.新子项包材申请, 2,
|
|
|
|
|
|
string.Format("(select count(1) from TFS_PackageChild where FPackageID={0} and FDeleted!=1 and FMaterialID<1)=0",
|
|
|
|
|
|
inParam["FID"].ToString()));
|
|
|
|
|
|
if (!string.IsNullOrEmpty(taskSql))
|
|
|
|
|
|
{
|
|
|
|
|
|
db.Ado.ExecuteCommand(taskSql);
|
|
|
|
|
|
TeamworkBll.ChangeTeamProcess(teamId, db);
|
|
|
|
|
|
}
|
|
|
|
|
|
string factory = teamwork.FCreateFactoryID.ToString();
|
|
|
|
|
|
if (teamwork.FCreateFactoryID != teamwork.FProdFactoryID) factory += "," + teamwork.FProdFactoryID;
|
|
|
|
|
|
BaseBll.CreateTaskData(teamId, userId, "11", factory, true, db);
|
|
|
|
|
|
db.CommitTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
db.RollbackTran();
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设置视图值
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private TFS_ViewMaterial SetViewVal(TFS_Material material, TFS_FTeamwork teamwork, int userId)
|
|
|
|
|
|
{
|
|
|
|
|
|
TFS_ViewMaterial view = new TFS_ViewMaterial()
|
|
|
|
|
|
{
|
|
|
|
|
|
FMaterialID = material.FID,
|
|
|
|
|
|
FTeamID = teamwork.FID,
|
|
|
|
|
|
FViewType = (int)Constant.ViewType.包材视图,
|
|
|
|
|
|
FLevel = 1,
|
|
|
|
|
|
FEditUser = userId,
|
|
|
|
|
|
FAddDate = DateTime.Now,
|
|
|
|
|
|
FBaseMaterialCode = string.IsNullOrEmpty(material.FPlmCode) ? material.FCode : material.FPlmCode,
|
|
|
|
|
|
FBaseTestCode = material.FTestCode,
|
|
|
|
|
|
FBaseMaterialDesc = material.FName
|
|
|
|
|
|
};
|
|
|
|
|
|
return view;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 类属性赋值
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void SetFieldVal(PropertyInfo[] props, object dataObj, Dictionary<string, object> inParam)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (PropertyInfo prop in props)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (inParam.ContainsKey(prop.Name))
|
|
|
|
|
|
{
|
|
|
|
|
|
object value = inParam[prop.Name];
|
|
|
|
|
|
if (prop.PropertyType.Name == "Decimal")
|
|
|
|
|
|
{
|
|
|
|
|
|
prop.SetValue(dataObj, ((decimal)value).ToString("#0.00"));
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (prop.PropertyType.Name == "Int32" || prop.PropertyType.Name == "Int64")
|
|
|
|
|
|
{
|
|
|
|
|
|
prop.SetValue(dataObj, int.Parse(value.ToString()));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
prop.SetValue(dataObj, value);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|