Merge branch 'dev' of https://git.tuotong-tech.com/tnb/tnb.server into dev
This commit is contained in:
@@ -54,4 +54,14 @@ public partial class BasMbomProcess : BaseEntity<string>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string route_detail_id { get; set; }
|
public string route_detail_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否时最后一道工序
|
||||||
|
/// </summary>
|
||||||
|
public int is_last { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 排序
|
||||||
|
/// </summary>
|
||||||
|
public int ordinal { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -282,6 +282,7 @@ namespace Tnb.BasicData
|
|||||||
|
|
||||||
if (mbomSaveDataInput != null && mbomSaveDataInput.processes != null)
|
if (mbomSaveDataInput != null && mbomSaveDataInput.processes != null)
|
||||||
{
|
{
|
||||||
|
int index = 0;
|
||||||
foreach (var process in mbomSaveDataInput.processes)
|
foreach (var process in mbomSaveDataInput.processes)
|
||||||
{
|
{
|
||||||
string mbomProcessId = SnowflakeIdHelper.NextId();
|
string mbomProcessId = SnowflakeIdHelper.NextId();
|
||||||
@@ -296,6 +297,8 @@ namespace Tnb.BasicData
|
|||||||
byproduct_status = process.byproduct_status,
|
byproduct_status = process.byproduct_status,
|
||||||
production_method = process.production_method,
|
production_method = process.production_method,
|
||||||
route_detail_id = process.route_detail_id,
|
route_detail_id = process.route_detail_id,
|
||||||
|
ordinal = ++index,
|
||||||
|
is_last = index==mbomSaveDataInput.processes.Count ? 1 : 0,
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -182,4 +182,10 @@ public partial class PrdMoTask : BaseEntity<string>
|
|||||||
/// 生产bom工序id
|
/// 生产bom工序id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? mbom_process_id { get; set; }
|
public string? mbom_process_id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 最后一道工序完成数量
|
||||||
|
/// </summary>
|
||||||
|
public int? last_process_complete_qty { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ using JNPF.DynamicApiController;
|
|||||||
using JNPF.FriendlyException;
|
using JNPF.FriendlyException;
|
||||||
using JNPF.Logging;
|
using JNPF.Logging;
|
||||||
using JNPF.Systems.Entitys.Permission;
|
using JNPF.Systems.Entitys.Permission;
|
||||||
|
using JNPF.Systems.Interfaces.System;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
@@ -40,6 +41,7 @@ namespace Tnb.ProductionMgr
|
|||||||
private readonly IToolMoldsService _moldService;
|
private readonly IToolMoldsService _moldService;
|
||||||
private readonly IPrdMoTaskService _prdMoTaskService;
|
private readonly IPrdMoTaskService _prdMoTaskService;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
|
private readonly IBillRullService _billRullService;
|
||||||
|
|
||||||
private static Dictionary<string, object> _dicWorkStationAndShopRelacion = new Dictionary<string, object>();
|
private static Dictionary<string, object> _dicWorkStationAndShopRelacion = new Dictionary<string, object>();
|
||||||
private static Dictionary<string, object> _dicWorkShop = new Dictionary<string, object>();
|
private static Dictionary<string, object> _dicWorkShop = new Dictionary<string, object>();
|
||||||
@@ -51,6 +53,7 @@ namespace Tnb.ProductionMgr
|
|||||||
IPrdMoTaskService prdMoTaskService,
|
IPrdMoTaskService prdMoTaskService,
|
||||||
IToolMoldsService moldsService,
|
IToolMoldsService moldsService,
|
||||||
IToolMoldMaintainTaskService maintainTaskService,
|
IToolMoldMaintainTaskService maintainTaskService,
|
||||||
|
IBillRullService billRullService,
|
||||||
IUserManager userManager
|
IUserManager userManager
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -58,6 +61,7 @@ namespace Tnb.ProductionMgr
|
|||||||
_maintainTaskService = maintainTaskService;
|
_maintainTaskService = maintainTaskService;
|
||||||
_moldService = moldsService;
|
_moldService = moldsService;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
|
_billRullService = billRullService;
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -226,6 +230,30 @@ namespace Tnb.ProductionMgr
|
|||||||
await _maintainTaskService.Create(maintaindTask);
|
await _maintainTaskService.Create(maintaindTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string reason = "";
|
||||||
|
if (!string.IsNullOrEmpty(input.reason))
|
||||||
|
{
|
||||||
|
List<PrdCancelClosedownReason> prdCancelClosedownReasons = await _db.Queryable<PrdCancelClosedownReason>().ToListAsync();
|
||||||
|
string[] reasonArr = input.reason.Split(",");
|
||||||
|
var reasonList = prdCancelClosedownReasons.Where(x => reasonArr.Contains(x.id)).Select(x => x.reason).ToList();
|
||||||
|
reason = string.Join(',', reasonList);
|
||||||
|
|
||||||
|
}
|
||||||
|
string code = await _billRullService.GetBillNumber("EqpRepair");
|
||||||
|
EqpRepairApply eqpRepairApply = new EqpRepairApply()
|
||||||
|
{
|
||||||
|
code = code,
|
||||||
|
name = eqp.name + "停机",
|
||||||
|
equip_id = input.eqp_id,
|
||||||
|
status = Tnb.EquipMgr.RepairApplyStatus.TOBEEXECUTED,
|
||||||
|
description = reason,
|
||||||
|
create_id = _userManager.UserId,
|
||||||
|
create_time = DateTime.Now,
|
||||||
|
remark = input.remark,
|
||||||
|
};
|
||||||
|
|
||||||
|
await _db.Insertable(eqpRepairApply).ExecuteCommandAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
else throw Oops.Oh(ErrorCode.COM1001);
|
else throw Oops.Oh(ErrorCode.COM1001);
|
||||||
|
|
||||||
|
|||||||
@@ -320,8 +320,9 @@ namespace Tnb.ProductionMgr
|
|||||||
result = await _db.Queryable<PrdMoTask>().LeftJoin<PrdMo>((a, b) => a.mo_id == b.id)
|
result = await _db.Queryable<PrdMoTask>().LeftJoin<PrdMo>((a, b) => a.mo_id == b.id)
|
||||||
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
|
.LeftJoin<BasMaterial>((a, b, c) => a.material_id == c.id)
|
||||||
.LeftJoin<OrganizeEntity>((a, b, c, d) => a.workline_id == d.Id)
|
.LeftJoin<OrganizeEntity>((a, b, c, d) => a.workline_id == d.Id)
|
||||||
|
.LeftJoin<BasProcess>((a,b,c,d,e)=>a.process_id==e.id)
|
||||||
.Where((a, b, c, d) => b.id == moId || b.parent_id == moId)
|
.Where((a, b, c, d) => b.id == moId || b.parent_id == moId)
|
||||||
.Select((a, b, c, d) => new PrdMoTaskOutput
|
.Select((a, b, c, d,e) => new PrdMoTaskOutput
|
||||||
{
|
{
|
||||||
mo_task_code = a.mo_task_code,
|
mo_task_code = a.mo_task_code,
|
||||||
mo_task_status = a.mo_task_status,
|
mo_task_status = a.mo_task_status,
|
||||||
@@ -329,10 +330,12 @@ namespace Tnb.ProductionMgr
|
|||||||
workline_name = d.FullName,
|
workline_name = d.FullName,
|
||||||
material_code = c.code,
|
material_code = c.code,
|
||||||
material_name = c.name,
|
material_name = c.name,
|
||||||
|
process_code = e.process_code,
|
||||||
|
process_name = e.process_name,
|
||||||
mo_task_qty = SqlFunc.Subqueryable<PrdMoTask>().Where(a => a.mo_id == moId).Count(),
|
mo_task_qty = SqlFunc.Subqueryable<PrdMoTask>().Where(a => a.mo_id == moId).Count(),
|
||||||
estimated_start_date = a.estimated_start_date.Value.ToString("yyyy-MM-dd HH"),
|
estimated_start_date = a.estimated_start_date.Value.ToString("yyyy-MM-dd HH"),
|
||||||
estimated_end_date = a.estimated_end_date.Value.ToString("yyyy-MM-dd HH"),
|
estimated_end_date = a.estimated_end_date.Value.ToString("yyyy-MM-dd HH"),
|
||||||
plan_qty = b.scheduled_qty,
|
plan_qty = a.scheduled_qty,
|
||||||
complete_qty = a.complete_qty,
|
complete_qty = a.complete_qty,
|
||||||
})
|
})
|
||||||
.Mapper(it =>
|
.Mapper(it =>
|
||||||
@@ -1263,7 +1266,22 @@ namespace Tnb.ProductionMgr
|
|||||||
.SetColumns(x => x.reported_work_qty == x.reported_work_qty + input.reported_qty)
|
.SetColumns(x => x.reported_work_qty == x.reported_work_qty + input.reported_qty)
|
||||||
.Where(x => x.id == input.mo_task_id).ExecuteCommandAsync();
|
.Where(x => x.id == input.mo_task_id).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
var mbomProcess = await db.Queryable<BasMbomProcess>().SingleAsync(x => x.id == prdMoTask.mbom_process_id);
|
||||||
|
if (mbomProcess.is_last==1 && prdMoTask != null && !string.IsNullOrEmpty(prdMoTask.parent_id))
|
||||||
|
{
|
||||||
|
var parentMoTask = await db.Queryable<PrdMoTask>().SingleAsync(x => x.id == prdMoTask.parent_id);
|
||||||
|
if (parentMoTask?.last_process_complete_qty == null)
|
||||||
|
{
|
||||||
|
await db.Updateable<PrdMoTask>()
|
||||||
|
.SetColumns(x => x.last_process_complete_qty == input.reported_qty)
|
||||||
|
.Where(x => x.id == prdMoTask.parent_id).ExecuteCommandAsync();
|
||||||
|
}else if (parentMoTask?.last_process_complete_qty != null)
|
||||||
|
{
|
||||||
|
await db.Updateable<PrdMoTask>()
|
||||||
|
.SetColumns(x => x.last_process_complete_qty == x.last_process_complete_qty + input.reported_qty)
|
||||||
|
.Where(x => x.id == prdMoTask.parent_id).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var master = await db.Queryable<PrdReportRecord>().FirstAsync(it => it.mo_task_id == input.mo_task_id);
|
var master = await db.Queryable<PrdReportRecord>().FirstAsync(it => it.mo_task_id == input.mo_task_id);
|
||||||
if (master != null)
|
if (master != null)
|
||||||
@@ -1318,6 +1336,9 @@ namespace Tnb.ProductionMgr
|
|||||||
}
|
}
|
||||||
|
|
||||||
deductNum = deductNum - (detail.num - detail.use_num);
|
deductNum = deductNum - (detail.num - detail.use_num);
|
||||||
|
|
||||||
|
if (deductNum <= 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deductNum > 0)
|
if (deductNum > 0)
|
||||||
@@ -1329,9 +1350,9 @@ namespace Tnb.ProductionMgr
|
|||||||
{
|
{
|
||||||
foreach (var detail in details)
|
foreach (var detail in details)
|
||||||
{
|
{
|
||||||
db.Updateable<PrdFeedingD>().SetColumns(x => x.use_num == x.num)
|
await db.Updateable<PrdFeedingD>().SetColumns(x => x.use_num == x.num)
|
||||||
.SetColumns(x=>x.status=="2")
|
.SetColumns(x=>x.status=="2")
|
||||||
.Where(x => x.id == detail.id);
|
.Where(x => x.id == detail.id).ExecuteCommandAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1341,6 +1362,10 @@ namespace Tnb.ProductionMgr
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//throw new Exception("无投入物料");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ namespace Tnb.ProductionMgr
|
|||||||
plan_end_date = a.estimated_end_date,
|
plan_end_date = a.estimated_end_date,
|
||||||
plan_qty = c.plan_qty,
|
plan_qty = c.plan_qty,
|
||||||
// complete_qty = SqlFunc.Subqueryable<PrdReport>().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty),
|
// complete_qty = SqlFunc.Subqueryable<PrdReport>().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty),
|
||||||
complete_qty = a.reported_work_qty+a.scrap_qty,
|
complete_qty = a.last_process_complete_qty,
|
||||||
mo_task_status = a.mo_task_status,
|
mo_task_status = a.mo_task_status,
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -94,8 +94,8 @@ namespace Tnb.ProductionMgr
|
|||||||
node.workline_id = $"{workLine.Item1}/{workLine.Item2}";
|
node.workline_id = $"{workLine.Item1}/{workLine.Item2}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
node.plan_start_date = item.estimated_start_date.HasValue ? item.estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
node.plan_start_date = item.plan_start_date.HasValue ? item.plan_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
||||||
node.plan_end_date = item.estimated_end_date.HasValue ? item.estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
node.plan_end_date = item.plan_end_date.HasValue ? item.plan_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
||||||
await GetChild(item.id, trees, dic);
|
await GetChild(item.id, trees, dic);
|
||||||
trees.Add(node);
|
trees.Add(node);
|
||||||
}
|
}
|
||||||
@@ -116,8 +116,12 @@ namespace Tnb.ProductionMgr
|
|||||||
|
|
||||||
private async Task GetChild(string parentId, List<PackReportTreeOutput> nodes, Dictionary<string, object> dic)
|
private async Task GetChild(string parentId, List<PackReportTreeOutput> nodes, Dictionary<string, object> dic)
|
||||||
{
|
{
|
||||||
var items = await _db.Queryable<PrdMoTask>().LeftJoin<BasProcess>((a, b) => a.process_id == b.id).LeftJoin<PrdMo>((a, b, c) => a.mo_id == c.id)
|
var items = await _db.Queryable<PrdMoTask>()
|
||||||
|
.LeftJoin<BasProcess>((a, b) => a.process_id == b.id)
|
||||||
|
.LeftJoin<PrdMo>((a, b, c) => a.mo_id == c.id)
|
||||||
|
.LeftJoin<BasMbomProcess>((a,b,c,d)=>a.mbom_process_id==d.id)
|
||||||
.Where(a => a.parent_id == parentId && a.mo_task_status != "ToBeScheduled")
|
.Where(a => a.parent_id == parentId && a.mo_task_status != "ToBeScheduled")
|
||||||
|
.OrderBy((a,b,c,d)=>d.ordinal)
|
||||||
.Select((a, b, c) => new PrdMoTask
|
.Select((a, b, c) => new PrdMoTask
|
||||||
{
|
{
|
||||||
id = a.id,
|
id = a.id,
|
||||||
@@ -129,7 +133,8 @@ namespace Tnb.ProductionMgr
|
|||||||
plan_start_date = a.estimated_start_date,
|
plan_start_date = a.estimated_start_date,
|
||||||
plan_end_date = a.estimated_end_date,
|
plan_end_date = a.estimated_end_date,
|
||||||
plan_qty = c.plan_qty,
|
plan_qty = c.plan_qty,
|
||||||
complete_qty = SqlFunc.Subqueryable<PrdReport>().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty),
|
//complete_qty = SqlFunc.Subqueryable<PrdReport>().Where(it => it.mo_task_code == a.mo_task_code).Sum(it => it.reported_work_qty),
|
||||||
|
complete_qty = a.reported_work_qty+a.scrap_qty,
|
||||||
mo_task_status = a.mo_task_status,
|
mo_task_status = a.mo_task_status,
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
@@ -147,6 +152,15 @@ namespace Tnb.ProductionMgr
|
|||||||
nsChild[i].process_id = $"{items[i].process_code}/{items[i].process_name}";
|
nsChild[i].process_id = $"{items[i].process_code}/{items[i].process_name}";
|
||||||
nsChild[i].plan_start_date = items[i].estimated_start_date.HasValue ? items[i].estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
nsChild[i].plan_start_date = items[i].estimated_start_date.HasValue ? items[i].estimated_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
||||||
nsChild[i].plan_end_date = items[i].estimated_end_date.HasValue ? items[i].estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
nsChild[i].plan_end_date = items[i].estimated_end_date.HasValue ? items[i].estimated_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
|
||||||
|
|
||||||
|
if (nsChild[i].workline_id.IsNotEmptyOrNull())
|
||||||
|
{
|
||||||
|
var workLine = _dicWorkLine.ContainsKey(nsChild[i].workline_id) ? (Tuple<string, string>)_dicWorkLine[nsChild[i].workline_id] : null;
|
||||||
|
if (workLine != null)
|
||||||
|
{
|
||||||
|
nsChild[i].workline_id = $"{workLine.Item1}/{workLine.Item2}";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nodes.AddRange(nsChild);
|
nodes.AddRange(nsChild);
|
||||||
|
|||||||
@@ -67,15 +67,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
||||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
||||||
var subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == subCarryId);
|
var subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == subCarryId);
|
||||||
|
|
||||||
//WmsCarrybindH wmsCarrybindH = carry?.Adapt<WmsCarrybindH>()!;
|
|
||||||
if (carry != null && subCarry != null)
|
if (carry != null && subCarry != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
carry.carry_status = "1";
|
carry.carry_status = "1";
|
||||||
var row = await _db.Updateable(carry).ExecuteCommandAsync();
|
var row = await _db.Updateable(carry).ExecuteCommandAsync();
|
||||||
subCarry.carry_status = "1";
|
subCarry.carry_status = "1";
|
||||||
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
|
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
|
||||||
|
//更新载具明细表
|
||||||
WmsCarryD wmsCarryD = new()
|
WmsCarryD wmsCarryD = new()
|
||||||
{
|
{
|
||||||
id = SnowflakeIdHelper.NextId(),
|
id = SnowflakeIdHelper.NextId(),
|
||||||
@@ -89,6 +87,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
};
|
};
|
||||||
row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
||||||
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
||||||
|
//更新载具绑定条码表
|
||||||
for (int i = 0; i < items.Count; i++)
|
for (int i = 0; i < items.Count; i++)
|
||||||
{
|
{
|
||||||
WmsCarrybindCode wmsCarrybindCode = new();
|
WmsCarrybindCode wmsCarrybindCode = new();
|
||||||
|
|||||||
@@ -98,12 +98,14 @@ namespace Tnb.WarehouseMgr
|
|||||||
var row = await _db.Updateable(newCarry).ExecuteCommandAsync();
|
var row = await _db.Updateable(newCarry).ExecuteCommandAsync();
|
||||||
WmsCarryReplaceH wmsCarryReplaceH = oldCarry.Adapt<WmsCarryReplaceH>();
|
WmsCarryReplaceH wmsCarryReplaceH = oldCarry.Adapt<WmsCarryReplaceH>();
|
||||||
wmsCarryReplaceH.id = SnowflakeIdHelper.NextId();
|
wmsCarryReplaceH.id = SnowflakeIdHelper.NextId();
|
||||||
wmsCarryReplaceH.org_id = oldCarry.org_id;
|
wmsCarryReplaceH.org_id = _userManager.User.OrganizeId;
|
||||||
wmsCarryReplaceH.bill_code = await _billRullService.GetBillNumber(WmsCarryConst.WMS_CARRY_REPLACE_ENCODE);
|
wmsCarryReplaceH.bill_code = await _billRullService.GetBillNumber(WmsCarryConst.WMS_CARRY_REPLACE_ENCODE);
|
||||||
wmsCarryReplaceH.carry_id = oldCarry.id;
|
wmsCarryReplaceH.carry_id = oldCarry.id;
|
||||||
wmsCarryReplaceH.carry_code = oldCarry.carry_code;
|
wmsCarryReplaceH.carry_code = oldCarry.carry_code;
|
||||||
wmsCarryReplaceH.newcarry_id = newCarry.id;
|
wmsCarryReplaceH.newcarry_id = newCarry.id;
|
||||||
wmsCarryReplaceH.newcarry_code = newCarry.carry_code;
|
wmsCarryReplaceH.newcarry_code = newCarry.carry_code;
|
||||||
|
wmsCarryReplaceH.create_id = _userManager.UserId;
|
||||||
|
wmsCarryReplaceH.create_time = DateTime.Now;
|
||||||
wmsCarryReplaceH.modify_id = null;
|
wmsCarryReplaceH.modify_id = null;
|
||||||
wmsCarryReplaceH.modify_time = null;
|
wmsCarryReplaceH.modify_time = null;
|
||||||
row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync();
|
row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync();
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
var row = await _db.Deleteable<WmsCarryD>().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync();
|
var row = await _db.Deleteable<WmsCarryD>().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync();
|
||||||
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
||||||
|
//更新载具解绑记录条码表
|
||||||
WmsCarryunbindCode wmsCarryUnbindCode = new();
|
WmsCarryunbindCode wmsCarryUnbindCode = new();
|
||||||
for (int i = 0; i < items.Count; i++)
|
for (int i = 0; i < items.Count; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -67,27 +67,28 @@ namespace Tnb.WarehouseMgr
|
|||||||
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
||||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
||||||
var subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == subCarryId);
|
var subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == subCarryId);
|
||||||
WmsCarryD wmsCarryD = new()
|
|
||||||
{
|
|
||||||
id = SnowflakeIdHelper.NextId(),
|
|
||||||
carry_id = carry.id,
|
|
||||||
org_id = carry?.org_id!,
|
|
||||||
membercarry_id = subCarry.id,
|
|
||||||
membercarry_code = subCarry.carry_code,
|
|
||||||
|
|
||||||
loc = input.data[nameof(WmsCarrybindH.loc)].ParseToInt(1),
|
|
||||||
create_id = _userManager.UserId,
|
|
||||||
create_time = DateTime.Now
|
|
||||||
};
|
|
||||||
//WmsCarrybindH wmsCarrybindH = carry?.Adapt<WmsCarrybindH>()!;
|
|
||||||
if (carry != null && subCarry != null)
|
if (carry != null && subCarry != null)
|
||||||
{
|
{
|
||||||
|
//更新载具明细
|
||||||
|
WmsCarryD wmsCarryD = new()
|
||||||
|
{
|
||||||
|
id = SnowflakeIdHelper.NextId(),
|
||||||
|
carry_id = carry.id,
|
||||||
|
org_id = carry?.org_id!,
|
||||||
|
membercarry_id = subCarry.id,
|
||||||
|
membercarry_code = subCarry.carry_code,
|
||||||
|
loc = input.data[nameof(WmsCarrybindH.loc)].ParseToInt(1),
|
||||||
|
create_id = _userManager.UserId,
|
||||||
|
create_time = DateTime.Now
|
||||||
|
};
|
||||||
var row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
var row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
||||||
carry.carry_status = "1";
|
carry.carry_status = "1";
|
||||||
row = await _db.Updateable(carry).ExecuteCommandAsync();
|
row = await _db.Updateable(carry).ExecuteCommandAsync();
|
||||||
subCarry.carry_status = "1";
|
subCarry.carry_status = "1";
|
||||||
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
|
row = await _db.Updateable(subCarry).ExecuteCommandAsync();
|
||||||
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
||||||
|
//更新载具绑定条码表
|
||||||
for (int i = 0; i < items.Count; i++)
|
for (int i = 0; i < items.Count; i++)
|
||||||
{
|
{
|
||||||
WmsCarrybindCode wmsCarrybindCode = new();
|
WmsCarrybindCode wmsCarrybindCode = new();
|
||||||
|
|||||||
@@ -65,8 +65,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTKPDA_ID, true);
|
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTKPDA_ID, true);
|
||||||
await _runService.Create(templateEntity, input);
|
await _runService.Create(templateEntity, input);
|
||||||
//入库取终点
|
//出库取起点
|
||||||
//var OutStockStrategyInput = new OutStockStrategyQuery { carry_id = input.data[nameof(OutStockStrategyQuery.carry_id)].ToString(), Size = 1 };
|
|
||||||
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == input.data[nameof(WmsMoveOutstock.carry_id)].ToString());
|
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == input.data[nameof(WmsMoveOutstock.carry_id)].ToString());
|
||||||
WmsPointH sPoint = null;
|
WmsPointH sPoint = null;
|
||||||
WmsPointH ePoint = null;
|
WmsPointH ePoint = null;
|
||||||
|
|||||||
@@ -66,11 +66,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
var subCarryId = input.data.ContainsKey("membercarry_id") ? input.data["membercarry_id"]?.ToString() : "";
|
||||||
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == carryId);
|
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == carryId);
|
||||||
var subCarry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == subCarryId);
|
var subCarry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == subCarryId);
|
||||||
//WmsCarryunbindH wmsCarryUnbindH = carry.Adapt<WmsCarryunbindH>();
|
|
||||||
if (carry != null && subCarry != null)
|
if (carry != null && subCarry != null)
|
||||||
{
|
{
|
||||||
var row = await _db.Deleteable<WmsCarryD>().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync();
|
var row = await _db.Deleteable<WmsCarryD>().Where(it => it.carry_id == carryId && it.membercarry_id == subCarryId).ExecuteCommandAsync();
|
||||||
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
var items = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == subCarryId).ToListAsync();
|
||||||
|
//更新载具解绑记录
|
||||||
WmsCarryunbindCode wmsCarryUnbindCode = new();
|
WmsCarryunbindCode wmsCarryUnbindCode = new();
|
||||||
for (int i = 0; i < items.Count; i++)
|
for (int i = 0; i < items.Count; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,9 +68,6 @@ namespace Tnb.WarehouseMgr
|
|||||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSEMPTYOUTSTKPDA_ID, true);
|
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSEMPTYOUTSTKPDA_ID, true);
|
||||||
await _runService.Create(templateEntity, input);
|
await _runService.Create(templateEntity, input);
|
||||||
|
|
||||||
/*//入库取终点
|
|
||||||
var inStockStrategyInput = new InStockStrategyQuery { warehouse_id = input.data[nameof(InStockStrategyQuery.warehouse_id)].ToString(), Size = 1 };
|
|
||||||
var endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);*/
|
|
||||||
//判断目标库位是否自动签收
|
//判断目标库位是否自动签收
|
||||||
var loc = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString());
|
var loc = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == input.data[nameof(WmsPointH.location_id)].ToString());
|
||||||
|
|
||||||
|
|||||||
@@ -75,12 +75,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
var carryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : "";
|
var carryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : "";
|
||||||
var feedBoxCode = input.data.ContainsKey("feedbox_code") ? input.data["feedbox_code"]?.ToString() : "";
|
var feedBoxCode = input.data.ContainsKey("feedbox_code") ? input.data["feedbox_code"]?.ToString() : "";
|
||||||
var carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.id == carryId);
|
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
||||||
var feedBox = await _db.Queryable<WmsFeedbox>().FirstAsync(it => it.id == feedBoxCode);
|
var feedBox = await _db.Queryable<WmsFeedbox>().SingleAsync(it => it.feedbox_code == feedBoxCode);
|
||||||
var carryMaterial = await _db.Queryable<WmsCarryMat>().FirstAsync(it => it.carry_id == carryId);
|
var carryMaterial = await _db.Queryable<WmsCarryMat>().FirstAsync(it => it.carry_id == carryId);
|
||||||
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it=>it.carry_id == carryId).ToListAsync();
|
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync();
|
||||||
if (carry != null && feedBox != null)
|
if (carry != null && feedBox != null)
|
||||||
{
|
{
|
||||||
|
//更新投料箱
|
||||||
feedBox.material_id = carryMaterial.material_id;
|
feedBox.material_id = carryMaterial.material_id;
|
||||||
feedBox.material_code = carryMaterial.material_code;
|
feedBox.material_code = carryMaterial.material_code;
|
||||||
feedBox.qty = carryMaterial.qty;
|
feedBox.qty = carryMaterial.qty;
|
||||||
@@ -89,7 +90,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
feedBox.create_id = _userManager.UserId;
|
feedBox.create_id = _userManager.UserId;
|
||||||
feedBox.create_time = DateTime.Now;
|
feedBox.create_time = DateTime.Now;
|
||||||
var row = await _db.Updateable(feedBox).ExecuteCommandAsync();
|
var row = await _db.Updateable(feedBox).ExecuteCommandAsync();
|
||||||
foreach(var carryCode in carryCodes)
|
//更新投料记录条码表
|
||||||
|
foreach (var carryCode in carryCodes)
|
||||||
{
|
{
|
||||||
WmsFeedingrecordCode wmsFeedingrecordCode = new();
|
WmsFeedingrecordCode wmsFeedingrecordCode = new();
|
||||||
wmsFeedingrecordCode.id = SnowflakeIdHelper.NextId();
|
wmsFeedingrecordCode.id = SnowflakeIdHelper.NextId();
|
||||||
@@ -106,6 +108,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
wmsFeedingrecordCode.create_time = DateTime.Now;
|
wmsFeedingrecordCode.create_time = DateTime.Now;
|
||||||
row = await _db.Insertable(wmsFeedingrecordCode).ExecuteCommandAsync();
|
row = await _db.Insertable(wmsFeedingrecordCode).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
//更新载具
|
||||||
row = await UpdateNullCarry(carry);
|
row = await UpdateNullCarry(carry);
|
||||||
isOk = (row > 0);
|
isOk = (row > 0);
|
||||||
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
|
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using JNPF.Common.Security;
|
|||||||
using JNPF.DependencyInjection;
|
using JNPF.DependencyInjection;
|
||||||
using JNPF.DynamicApiController;
|
using JNPF.DynamicApiController;
|
||||||
using JNPF.FriendlyException;
|
using JNPF.FriendlyException;
|
||||||
|
using JNPF.Logging;
|
||||||
using JNPF.Systems.Entitys.Dto.Department;
|
using JNPF.Systems.Entitys.Dto.Department;
|
||||||
using JNPF.Systems.Entitys.Dto.Organize;
|
using JNPF.Systems.Entitys.Dto.Organize;
|
||||||
using JNPF.Systems.Entitys.Dto.SysConfig;
|
using JNPF.Systems.Entitys.Dto.SysConfig;
|
||||||
@@ -248,7 +249,8 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra
|
|||||||
if (await _repository.IsAnyAsync(o => o.ParentId == input.parentId && o.FullName == input.fullName && o.Category == "department" && o.DeleteMark == null))
|
if (await _repository.IsAnyAsync(o => o.ParentId == input.parentId && o.FullName == input.fullName && o.Category == "department" && o.DeleteMark == null))
|
||||||
throw Oops.Oh(ErrorCode.D2019);
|
throw Oops.Oh(ErrorCode.D2019);
|
||||||
OrganizeEntity? entity = input.Adapt<OrganizeEntity>();
|
OrganizeEntity? entity = input.Adapt<OrganizeEntity>();
|
||||||
entity.Category = "department";
|
// entity.Category = "department";
|
||||||
|
entity.Category = input.category;
|
||||||
entity.Id = SnowflakeIdHelper.NextId();
|
entity.Id = SnowflakeIdHelper.NextId();
|
||||||
entity.EnabledMark = 1;
|
entity.EnabledMark = 1;
|
||||||
entity.CreatorTime = DateTime.Now;
|
entity.CreatorTime = DateTime.Now;
|
||||||
@@ -473,7 +475,8 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra
|
|||||||
var processVal = jsonObj.GetValue("rowprocess");
|
var processVal = jsonObj.GetValue("rowprocess");
|
||||||
if (processVal is not null)
|
if (processVal is not null)
|
||||||
{
|
{
|
||||||
var dic = _repository.GetList().ToDictionary(x => x.FullName, x => x.Id);
|
//modifyby zhoukeda 2023.06.25
|
||||||
|
var dic = _repository.GetList(x=>x.DeleteMark==null).ToDictionary(x => x.FullName, x => x.Id);
|
||||||
var procList = jsonObj.Value<JArray>("rowprocess");
|
var procList = jsonObj.Value<JArray>("rowprocess");
|
||||||
var pids = procList.Select(x => x.Value<string>("id")).Distinct().ToList();
|
var pids = procList.Select(x => x.Value<string>("id")).Distinct().ToList();
|
||||||
var dbProcIds = await _repository.AsSugarClient().Queryable<BasProcessStation>().Where(it => pids.Contains(it.process_id)).Select(it => it.process_id).ToListAsync();
|
var dbProcIds = await _repository.AsSugarClient().Queryable<BasProcessStation>().Where(it => pids.Contains(it.process_id)).Select(it => it.process_id).ToListAsync();
|
||||||
@@ -517,8 +520,9 @@ public class DepartmentService : IDepartmentService, IDynamicApiController, ITra
|
|||||||
if (sysConfig.qyhIsSynOrg) await _synThirdInfoService.SynDep(1, 1, sysConfig, orgList);
|
if (sysConfig.qyhIsSynOrg) await _synThirdInfoService.SynDep(1, 1, sysConfig, orgList);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
Log.Error(e.Message);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,8 @@
|
|||||||
<ProjectReference Include="..\..\visualdev\Tnb.VisualDev.Engine\Tnb.VisualDev.Engine.csproj" />
|
<ProjectReference Include="..\..\visualdev\Tnb.VisualDev.Engine\Tnb.VisualDev.Engine.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Tnb.Core" Version="2023.5.25.958" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Reference in New Issue
Block a user