This commit is contained in:
DEVICE8\12494
2023-04-28 14:45:00 +08:00
9 changed files with 512 additions and 147 deletions

View File

@@ -0,0 +1,15 @@
namespace Tnb.BasicData.Entities.Dto
{
public class ProcessStationInput
{
/// <summary>
/// 工序id
/// </summary>
public string process_id { get; set; }
/// <summary>
/// 工位id集合
/// </summary>
public List<string> stationIds { get; set; }
}
}

View File

@@ -7,100 +7,38 @@ namespace Tnb.BasicData.Entities
///物料单位 ///物料单位
///</summary> ///</summary>
[SugarTable("bas_material_unit")] [SugarTable("bas_material_unit")]
public class BasMaterialUnit : BaseEntity<string> public class BasMaterialUnit : BaseEntity<string>
{ {
public BasMaterialUnit(){ public BasMaterialUnit()
{
}
/// <summary>
/// Desc:辅助单位
/// Default:
/// Nullable:False
/// </summary>
public string auxiliary_unit_id { get; set; }
} /// <summary>
/// Desc:关联物料id
/// Default:
/// Nullable:False
/// </summary>
public string material_id { get; set; }
/// <summary> /// <summary>
/// Desc:物料IDBAS_MATERIAL.ID /// Desc:主单位数量
/// Default: /// Default:NULL::character varying
/// Nullable:False /// Nullable:True
/// </summary> /// </summary>
[SugarColumn(ColumnName="material_id")] public string number_of_primary_unit { get; set; }
public string MaterialId {get;set;}
/// <summary>
/// Desc:单位ID,BAS_UNIT.ID
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName="unit_id")]
public string UnitId {get;set;}
/// <summary>
/// Desc:比例
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName="relation_qty")]
public decimal RelationQty {get;set;}
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName="create_time")]
public DateTime CreateTime {get;set;}
/// <summary>
/// Desc:修改时间
/// Default:
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="modify_time")]
public DateTime? ModifyTime {get;set;}
/// <summary>
/// Desc:扩展字段
/// Default:
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="extras")]
public string Extras {get;set;}
/// <summary>
/// Desc:所属组织ID
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="org_id")]
public string OrgId {get;set;}
/// <summary>
/// Desc:条码
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="bar_code")]
public string BarCode {get;set;}
/// <summary>
/// Desc:时间戳(用于并发控制)
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="timestamp")]
public string Timestamp {get;set;}
/// <summary>
/// Desc:创建用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="create_id")]
public string CreateId {get;set;}
/// <summary>
/// Desc:修改用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName="modify_id")]
public string ModifyId {get;set;}
/// <summary>
/// Desc:辅助单位数量
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string number_of_auxiliary_unit { get; set; }
} }
} }

View File

@@ -0,0 +1,212 @@
using SqlSugar;
using Tnb.Common.Contracts;
namespace Tnb.BasicData.Entities
{
///<summary>
///工序资料
///</summary>
[SugarTable("bas_process")]
public class BasProcess : BaseEntity<string>
{
public BasProcess()
{
}
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? create_time { get; set; }
/// <summary>
/// Desc:修改时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// Desc:所属组织ID
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string org_id { get; set; }
/// <summary>
/// Desc:工序代码
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_code { get; set; }
/// <summary>
/// Desc:工序名称
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_name { get; set; }
/// <summary>
/// Desc:数据收集方式
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_collection { get; set; }
/// <summary>
/// Desc:工序类型
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_type { get; set; }
/// <summary>
/// Desc:工序属性
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_attribute { get; set; }
/// <summary>
/// Desc:必过工序
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string must_pass { get; set; }
/// <summary>
/// Desc:处理时间
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string process_time { get; set; }
/// <summary>
/// Desc:时间单位
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string time_unit { get; set; }
/// <summary>
/// Desc:备注
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string remark { get; set; }
/// <summary>
/// Desc:时间戳(用于并发控制)
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string timestamp { get; set; }
/// <summary>
/// Desc:创建用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string create_id { get; set; }
/// <summary>
/// Desc:修改用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string modify_id { get; set; }
/// <summary>
/// Desc:扩展字段
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string extras { get; set; }
/// <summary>
/// Desc:状态
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string status { get; set; }
/// <summary>
/// Desc:单次扫码
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string single_scan_type { get; set; }
/// <summary>
/// Desc:工位
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string station { get; set; }
/// <summary>
/// Desc:一码到底
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string only_scan_type { get; set; }
/// <summary>
/// Desc:次品项列表
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string defective_items { get; set; }
/// <summary>
/// Desc:用料追溯关系
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string material_traced_back_relationship { get; set; }
/// <summary>
/// Desc:不合格品投产
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string defective_products_put_into_production { get; set; }
/// <summary>
/// Desc:报告模板
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string report_template { get; set; }
/// <summary>
/// Desc:生产描述
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string descrip { get; set; }
/// <summary>
/// Desc:附件
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string attachment { get; set; }
/// <summary>
/// Desc:扩展字段2
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string extras2 { get; set; }
/// <summary>
/// Desc:扩展字段3
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string extras3 { get; set; }
}
}

View File

@@ -0,0 +1,109 @@
using SqlSugar;
using Tnb.Common.Contracts;
namespace Tnb.BasicData.Entities
{
///<summary>
///工序与工位的关联信息
///</summary>
[SugarTable("bas_process_station")]
public class BasProcessStation : BaseEntity<string>
{
public BasProcessStation()
{
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey = true)]
public string id { get; set; }
/// <summary>
/// Desc:工序IDBAS_PROCESS.ID
/// Default:
/// Nullable:False
/// </summary>
public string process_id { get; set; }
// /// <summary>
// /// Desc:工序代码
// /// Default:
// /// Nullable:False
// /// </summary>
// public string process_code { get; set; }
/// <summary>
/// Desc:工位IDBAS_STATION.ID
/// Default:
/// Nullable:False
/// </summary>
public string station_id { get; set; }
// /// <summary>
// /// Desc:工位代码
// /// Default:
// /// Nullable:False
// /// </summary>
// public string station_code { get; set; }
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:False
/// </summary>
public DateTime create_time { get; set; }
/// <summary>
/// Desc:修改时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// Desc:扩展字段
/// Default:
/// Nullable:True
/// </summary>
public string extras { get; set; }
/// <summary>
/// Desc:所属组织ID
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string org_id { get; set; }
/// <summary>
/// Desc:备注
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string remark { get; set; }
/// <summary>
/// Desc:时间戳(用于并发控制)
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string timestamp { get; set; }
/// <summary>
/// Desc:创建用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string create_id { get; set; }
/// <summary>
/// Desc:修改用户
/// Default:NULL::character varying
/// Nullable:True
/// </summary>
public string modify_id { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using JNPF.Common.Dtos.VisualDev;
using JNPF.VisualDev;
using Tnb.BasicData.Entities.Dto;
namespace Tnb.BasicData.Interfaces
{
public interface IBasProcessService
{
OverideVisualDevFunc OverideFuncs { get; }
/// <summary>
/// 重写新增
/// </summary>
/// <param name="parameters"></param>
public Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput);
}
}

View File

@@ -9,6 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\visualdev\Tnb.VisualDev.Engine\Tnb.VisualDev.Engine.csproj" />
<ProjectReference Include="..\Tnb.BasicData.Entitys\Tnb.BasicData.Entitys.csproj" /> <ProjectReference Include="..\Tnb.BasicData.Entitys\Tnb.BasicData.Entitys.csproj" />
</ItemGroup> </ItemGroup>

View File

@@ -1,4 +1,5 @@
using JNPF.Common.Core.Manager; using JNPF.Common.Core.Manager;
using JNPF.Common.Security;
using JNPF.DependencyInjection; using JNPF.DependencyInjection;
using JNPF.DynamicApiController; using JNPF.DynamicApiController;
using JNPF.Systems.Interfaces.System; using JNPF.Systems.Interfaces.System;
@@ -28,62 +29,36 @@ namespace Tnb.BasicData
_dictionaryDataService = dictionaryDataService; _dictionaryDataService = dictionaryDataService;
} }
// [HttpPost] /// <summary>
// public async Task<Dictionary<string,string>> GetEbomVersionAndRouteName(Dictionary<string,string> parameters) /// 复制物料
// { /// </summary>
// string materialId = parameters["materialId"]; /// <param name="parameters">物料id id</param>
// var db = _repository.AsSugarClient(); [HttpPost]
// var dic = await _dictionaryDataService.GetDicByKey(DicTypeKey.MeasurementUnit); public async Task<string> Copy(Dictionary<string, string> parameters)
// // var momDbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(x => x.FullName == DbName.TNBMON); {
// // if (momDbLink != null) string id = parameters["id"];
// // { BasMaterial basMaterial = await _repository.GetByIdAsync(id);
// // db = _dbManager.ChangeDataBase(momDbLink);
// // } List<BasMaterialUnit> materialUnits = await _repository.AsSugarClient().Queryable<BasMaterialUnit>().Where(x => x.material_id == id).ToListAsync();
//
// var ebom = await db.Queryable<BasEbomH>() string newId = SnowflakeIdHelper.NextId();
// .LeftJoin<BasRouteH>((a,b)=>a.route_id==b.id) basMaterial.id = newId;
// .Where((a,b) => a.material_id == materialId) basMaterial.code += "_复制的请修改";
// .Select((a,b)=>new basMaterial.name += "_复制的请修改";
// {
// a.id, DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
// a.version, {
// b.name, await _repository.InsertAsync(basMaterial);
// }).SingleAsync(); foreach (BasMaterialUnit basMaterialUnit in materialUnits)
// return new Dictionary<string,string>() {
// { basMaterialUnit.id = SnowflakeIdHelper.NextId();
// ["version"] = ebom?.version, basMaterialUnit.material_id = newId;
// ["routeName"] = ebom?.name, }
// ["routeId"] = ebom?.id
// }; await _repository.AsSugarClient().Insertable<BasMaterialUnit>(materialUnits).ExecuteCommandAsync();
// } });
// [HttpPost] return result.IsSuccess ? "复制成功" : result.ErrorMessage;
// public async Task<List<ElementSelectDto>> GetMaterialUnits(Dictionary<string,string> parameters) }
// {
// string materialId = parameters["materialId"];
// var db = _repository.AsSugarClient();
//
// var type = await db.Queryable<DictionaryTypeEntity>().Where(x => x.EnCode == DictConst.MeasurementUnit)
// .SingleAsync();
// string typeId = type?.Id;
// var queryable1 = db.Queryable<BasMaterial>()
// .LeftJoin<DictionaryDataEntity>((a,b)=>a.unit_id==b.EnCode && b.DictionaryTypeId==typeId)
// .Where((a,b) => a.Id == materialId)
// .Select((a,b)=> new ElementSelectDto
// {
// value = b.EnCode,
// label = b.FullName,
// });
// var queryable2 = db.Queryable<BasMaterial>()
// .LeftJoin<DictionaryDataEntity>((a,b)=>a.pickunit_id==b.EnCode && b.DictionaryTypeId==typeId)
// .Where((a,b) => a.Id == materialId)
// .Select((a,b)=> new ElementSelectDto
// {
// value = b.EnCode,
// label = b.FullName,
// });
// List<ElementSelectDto> data = await db.Union(queryable1, queryable2).ToListAsync();
// return data;
// }
} }
} }

View File

@@ -0,0 +1,90 @@
using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys;
using JNPF.VisualDev.Interfaces;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
/// <summary>
/// 工序定义
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModelId)]
public class BasProcessService : IOverideVisualDevService, IDynamicApiController, ITransient
{
public const string ModelId = "25483283228965";
private readonly ISqlSugarRepository<BasProcess> _repository;
private readonly DataBaseManager _dbManager;
private readonly IUserManager _userManager;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public BasProcessService(
ISqlSugarRepository<BasProcess> repository,
IUserManager userManager,
IRunService runService,
IVisualDevService visualDevService,
DataBaseManager dbManager)
{
_repository = repository;
_userManager = userManager;
_dbManager = dbManager;
_runService = runService;
_visualDevService = visualDevService;
OverideFuncs.CreateAsync = Create;
}
/// <summary>
/// 保存工序工位关联表
/// </summary>
/// <param name="processStationInput">process_id 工序id</param>
/// <param name="processStationInput">stationIds 工位id集合</param>
[HttpPost]
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
{
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
{
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModelId, true);
await _runService.Create(templateEntity, visualDevModelDataCrInput);
string processId = visualDevModelDataCrInput.data["ReturnIdentity"].ToString();
List<BasProcessStation> list = new List<BasProcessStation>();
foreach (var item in (JArray)visualDevModelDataCrInput.data["station"])
{
string processStationId = SnowflakeIdHelper.NextId();
list.Add(new BasProcessStation()
{
id = processStationId,
org_id = _userManager.GetUserInfo().Result.organizeId,
process_id = processId,
station_id = item.Last().ToString(),
create_id = _userManager.UserId,
create_time = DateTime.Now,
});
}
await _repository.AsSugarClient().Insertable<BasProcessStation>(list).ExecuteCommandAsync();
});
return result.IsSuccess ? "保存成功" : result.ErrorMessage;
}
}
}

View File

@@ -721,7 +721,15 @@ public class RunService : IRunService, ITransient
dictionarySql.Clear(); dictionarySql.Clear();
tableField.Add("ReturnIdentity", mainId); tableField.Add("ReturnIdentity", mainId);
dictionarySql.Add("MainTableReturnIdentity", new List<Dictionary<string, object>>() { tableField }); dictionarySql.Add("MainTableReturnIdentity", new List<Dictionary<string, object>>() { tableField });
}
//modify by zhoukeda 20230428 雪花id返回至传入参数中 开始
if (templateInfo.FormModel.primaryKeyPolicy.Equals(1))
{
dataInput.data.Add("ReturnIdentity", mainId);
} }
//modify by zhoukeda 20230428 雪花id返回至传入参数中 结束
// 拼接副表 sql // 拼接副表 sql
if (templateInfo.AuxiliaryTableFieldsModelList.Any()) if (templateInfo.AuxiliaryTableFieldsModelList.Any())