Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2024-08-27 11:35:38 +08:00
6 changed files with 119 additions and 93 deletions

View File

@@ -1119,7 +1119,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
// 获取下到输送线9和10的未完成的转库单 // 获取下到输送线9和10的未完成的转库单
List<WmsMaterialTransfer> WmsMaterialTransfers = db_Floor2UpMachinecodetimer.Queryable<WmsMaterialTransfer>() List<WmsMaterialTransfer> WmsMaterialTransfers = db_Floor2UpMachinecodetimer.Queryable<WmsMaterialTransfer>()
.InnerJoin<WmsMaterialTransferCarry>((a, b) => a.id == b.bill_id) .InnerJoin<WmsMaterialTransferCarry>((a, b) => a.id == b.bill_id)
.Where((a, b) => a.warehouse_instock == "33780009364245" && a.warehouse_outstock == "2" && a.remainbindracknum > 0 .Where((a, b) => (a.warehouse_instock == WmsWareHouseConst.WAREHOUSE_ZCC_ID || a.warehouse_instock == WmsWareHouseConst.WAREHOUSE_HCC_ID) && a.warehouse_outstock == "2" && a.remainbindracknum > 0
&& b.carry_code == barcode).ToList(); && b.carry_code == barcode).ToList();
if (WmsMaterialTransfers.Count() == 0) if (WmsMaterialTransfers.Count() == 0)
@@ -1228,7 +1228,6 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
}).Where(r => r.id == WmsMaterialTransfer.id).ExecuteCommandAsync(); }).Where(r => r.id == WmsMaterialTransfer.id).ExecuteCommandAsync();
LoggerFloor2UpDownMachine.LogInformation($@"【上升降机】回写转库单的剩余可绑定料架数量"); LoggerFloor2UpDownMachine.LogInformation($@"【上升降机】回写转库单的剩余可绑定料架数量");
// 开始码垛 // 开始码垛
bool result_开始码垛 = await Floor2UpDownMachinecode_SetTag(MechanicalArmConsts., target.stackingposition.ToString()); bool result_开始码垛 = await Floor2UpDownMachinecode_SetTag(MechanicalArmConsts., target.stackingposition.ToString());
LoggerFloor2UpDownMachine.LogInformation($@"【上升降机】码垛位{target.stackingposition}码垛结果 {result_开始码垛}"); LoggerFloor2UpDownMachine.LogInformation($@"【上升降机】码垛位{target.stackingposition}码垛结果 {result_开始码垛}");

View File

@@ -144,4 +144,9 @@ public partial class WmsCarryH : BaseEntity<string>
/// 入库时间 /// 入库时间
/// </summary> /// </summary>
public DateTime? instock_time { get; set; } public DateTime? instock_time { get; set; }
/// <summary>
/// 转库单ID
/// </summary>
public string? material_tranfer_billid { get; set; }
} }

View File

@@ -54,4 +54,9 @@ public partial class WmsPrdInstockD : BaseEntity<string>
/// </summary> /// </summary>
public string? status { get; set; } public string? status { get; set; }
/// <summary>
/// 生产仓库
/// </summary>
public string? scwarehouse_id { get; set; }
} }

View File

@@ -704,7 +704,8 @@ namespace Tnb.WarehouseMgr
string transfer_type = ""; string transfer_type = "";
// 中储仓到暂存仓 // 中储仓到暂存仓
if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID && warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZCC_ID) if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID
&& (warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZCC_ID || warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_HCC_ID))
{ {
int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count(); int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count();
if (count > 0) if (count > 0)

View File

@@ -1220,7 +1220,8 @@ namespace Tnb.WarehouseMgr
Logger.LogInformation($@"【上升降机】更新料架 {target.rackcode} 在二楼配送的目标工位 {targetWorkstation}"); Logger.LogInformation($@"【上升降机】更新料架 {target.rackcode} 在二楼配送的目标工位 {targetWorkstation}");
await _db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH await _db.Updateable<WmsCarryH>().SetColumns(r => new WmsCarryH
{ {
work_station = targetWorkstation work_station = targetWorkstation,
material_tranfer_billid = wmsMaterialTransferD.bill_id
}).Where(r => r.id == target.rackid).ExecuteCommandAsync(); }).Where(r => r.id == target.rackid).ExecuteCommandAsync();
} }
else if (target.note == "下升降机") else if (target.note == "下升降机")
@@ -2474,6 +2475,7 @@ namespace Tnb.WarehouseMgr
[HttpPost] [HttpPost]
public async Task TaskComplate(TaskCompleUpInput input) public async Task TaskComplate(TaskCompleUpInput input)
{ {
var db = _db.CopyNew(); var db = _db.CopyNew();
try try
{ {
@@ -2629,99 +2631,13 @@ namespace Tnb.WarehouseMgr
work_station = "" work_station = ""
}).Where(r => r.id == dt.carry_id).ExecuteCommandAsync(); }).Where(r => r.id == dt.carry_id).ExecuteCommandAsync();
await QTRK2BIP(dt, db);
// require_code是任务单 // require_code是任务单
//string mo_task_code = dt.require_code; //string mo_task_code = dt.require_code;
} }
else if (dt.biz_type == "erp_qtrk") else if (dt.biz_type == "erp_qtrk")
{ {
WmsMaterialTransfer wmsMaterialTransfer = await db.Queryable<WmsMaterialTransfer>().SingleAsync(x=>x.id==dt.source_id); await QTRK2BIP(dt, db);
List<WmsMaterialTransferD> wmsMaterialTransferDs = await db.Queryable<WmsMaterialTransferD>().Where(x=>x.bill_id==dt.source_id).ToListAsync();
List<String> materialIds = wmsMaterialTransferDs.Select(x=>x.material_id).Distinct().ToList();
List<String> unitCodes = wmsMaterialTransferDs.Select(x => x.unit_id).Distinct().ToList();
List<DictionaryDataEntity> unitDatas = await db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId)
.Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
.Select((x,y)=>y)
.ToListAsync();
List<string> ids = new List<string>();
ids.Add(wmsMaterialTransfer.create_id);
ids.Add(WmsWareHouseConst.AdministratorOrgId);
ids.Add(wmsMaterialTransfer.warehouse_instock);
ids.AddRange(materialIds);
ids.AddRange(unitDatas.Select(x=>x.Id).ToList());
List<ErpExtendField> erpExtendFields = await db.Queryable<ErpExtendField>().Where(x=>ids.Contains(x.table_id)).ToListAsync();
string erpCreateId = erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.create_id)?.user_id ?? "";
ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId));
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
List<WmsErpWarehouserelaH> erpWarehouserelaHs = await _db.Queryable<WmsErpWarehouserelaH>().Where(x=>x.id!=null).ToListAsync();
BasWarehouse basWarehouse = await db.Queryable<BasWarehouse>().SingleAsync(x=>x.id==wmsMaterialTransfer.warehouse_instock);
string whcode = basWarehouse?.whcode ?? "";
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
Dictionary<string, object> erpRequestData = new Dictionary<string, object>();
erpRequestData.Add("approver",erpCreateId);
erpRequestData.Add("billmaker",erpCreateId);
erpRequestData.Add("corpoid",erpOrg.corpoid);
erpRequestData.Add("corpvid",erpOrg.corpvid);
erpRequestData.Add("creationtime",nowStr);
erpRequestData.Add("creator",erpCreateId);
erpRequestData.Add("ctrantypeid","0001H11000000000D30Z");
// erpRequestData.Add("cwarehouseid",erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? "");
erpRequestData.Add("cwarehouseid",erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "");
erpRequestData.Add("cwhsmanagerid","");
erpRequestData.Add("dbilldate",nowStr);
erpRequestData.Add("dmakedate",nowStr);
erpRequestData.Add("ntotalnum",wmsMaterialTransferDs.Sum(x=>x.qty));
erpRequestData.Add("pk_group",erpOrg.pk_group);
erpRequestData.Add("pk_org",erpOrg.pk_org);
erpRequestData.Add("pk_org_v",erpOrg.pk_org_v);
erpRequestData.Add("vbillcode",wmsMaterialTransfer.bill_code);
erpRequestData.Add("vtrantypecode","4A-01");
List<Dictionary<string, object>> erpRequestDataDetails = new List<Dictionary<string, object>>();
foreach(WmsMaterialTransferD item in wmsMaterialTransferDs)
{
erpRequestDataDetails.Add(new Dictionary<string, object>()
{
["cbodytranstypecode"] = "4A-01",
["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "",
["cgeneralbid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "",
["cgeneralbid"] = null,
["cgeneralhid"] = null,
["cmaterialoid"] = erpExtendFields.Find(x=>x.table_id==item.material_id)?.cmaterialoid ?? "",
["cmaterialvid"] = erpExtendFields.Find(x=>x.table_id==item.material_id)?.cmaterialvid ?? "",
["corpoid"] = erpOrg.corpoid,
["corpvid"] = erpOrg.corpvid,
["crowno"] = (wmsMaterialTransferDs.FindIndex(x=>x.id==item.id)+1) * 10,
["cunitid"] = erpExtendFields.Find(x=>x.table_id==(unitDatas.Find(x=>x.EnCode==item.unit_id)?.Id ?? ""))?.cunitid ?? "",
["cvendorid"] = "",
["cvendorvid"] = "",
["dbizdate"] = nowStr,
["nnum"] = item.qty,
["pk_group"] = erpOrg.pk_group,
["pk_org"] = erpOrg.pk_org,
["pk_org_v"] = erpOrg.pk_org_v,
["csourcebillbid"] = item.erp_line_pk,
["csourcebillhid"] = wmsMaterialTransfer.erp_pk,
["vbatchcode"] = item.code_batch,
});
}
erpRequestData.Add("dtls",erpRequestDataDetails);
requestData.Add(erpRequestData);
BasFactoryConfig config = await db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
thirdWebapiRecord.name = "其它入库";
thirdWebapiRecord.method = "POST";
// thirdWebapiRecord.url = config.value+"uapws/rest/generalin/save";
thirdWebapiRecord.url = config.value+"uapws/rest/generalin/save";
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
thirdWebapiRecord.create_time = DateTime.Now;
await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
} }
#endregion #endregion
@@ -2763,6 +2679,106 @@ namespace Tnb.WarehouseMgr
_ = GenTaskExecute(); _ = GenTaskExecute();
} }
} }
async Task QTRK2BIP(WmsDistaskH? dt, ISqlSugarClient db)
{
if (string.IsNullOrEmpty(dt.source_id))
{
Logger.LogWarning($"上传其它入库到BIP时转库单ID为空无法上传 任务信息:{JsonConvert.SerializeObject(dt)}");
return;
}
WmsMaterialTransfer wmsMaterialTransfer = await db.Queryable<WmsMaterialTransfer>().SingleAsync(x => x.id == dt.source_id);
List<WmsMaterialTransferD> wmsMaterialTransferDs = await db.Queryable<WmsMaterialTransferD>().Where(x => x.bill_id == dt.source_id).ToListAsync();
List<String> materialIds = wmsMaterialTransferDs.Select(x => x.material_id).Distinct().ToList();
List<String> unitCodes = wmsMaterialTransferDs.Select(x => x.unit_id).Distinct().ToList();
List<DictionaryDataEntity> unitDatas = await db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId)
.Where((x, y) => x.EnCode == DictConst.MeasurementUnit && unitCodes.Contains(y.EnCode))
.Select((x, y) => y)
.ToListAsync();
List<string> ids = new List<string>();
ids.Add(wmsMaterialTransfer.create_id);
ids.Add(WmsWareHouseConst.AdministratorOrgId);
ids.Add(wmsMaterialTransfer.warehouse_instock);
ids.AddRange(materialIds);
ids.AddRange(unitDatas.Select(x => x.Id).ToList());
List<ErpExtendField> erpExtendFields = await db.Queryable<ErpExtendField>().Where(x => ids.Contains(x.table_id)).ToListAsync();
string erpCreateId = erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.create_id)?.user_id ?? "";
ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId));
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
List<WmsErpWarehouserelaH> erpWarehouserelaHs = await _db.Queryable<WmsErpWarehouserelaH>().Where(x => x.id != null).ToListAsync();
BasWarehouse basWarehouse = await db.Queryable<BasWarehouse>().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_instock);
string whcode = basWarehouse?.whcode ?? "";
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
Dictionary<string, object> erpRequestData = new Dictionary<string, object>();
erpRequestData.Add("approver", erpCreateId);
erpRequestData.Add("billmaker", erpCreateId);
erpRequestData.Add("corpoid", erpOrg.corpoid);
erpRequestData.Add("corpvid", erpOrg.corpvid);
erpRequestData.Add("creationtime", nowStr);
erpRequestData.Add("creator", erpCreateId);
erpRequestData.Add("ctrantypeid", "0001H11000000000D30Z");
// erpRequestData.Add("cwarehouseid",erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? "");
erpRequestData.Add("cwarehouseid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "");
erpRequestData.Add("cwhsmanagerid", "");
erpRequestData.Add("dbilldate", nowStr);
erpRequestData.Add("dmakedate", nowStr);
erpRequestData.Add("ntotalnum", wmsMaterialTransferDs.Sum(x => x.qty));
erpRequestData.Add("pk_group", erpOrg.pk_group);
erpRequestData.Add("pk_org", erpOrg.pk_org);
erpRequestData.Add("pk_org_v", erpOrg.pk_org_v);
erpRequestData.Add("vbillcode", wmsMaterialTransfer.bill_code);
erpRequestData.Add("vtrantypecode", "4A-01");
List<Dictionary<string, object>> erpRequestDataDetails = new List<Dictionary<string, object>>();
foreach (WmsMaterialTransferD item in wmsMaterialTransferDs)
{
erpRequestDataDetails.Add(new Dictionary<string, object>()
{
["cbodytranstypecode"] = "4A-01",
["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "",
["cgeneralbid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "",
["cgeneralbid"] = null,
["cgeneralhid"] = null,
["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialoid ?? "",
["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == item.material_id)?.cmaterialvid ?? "",
["corpoid"] = erpOrg.corpoid,
["corpvid"] = erpOrg.corpvid,
["crowno"] = (wmsMaterialTransferDs.FindIndex(x => x.id == item.id) + 1) * 10,
["cunitid"] = erpExtendFields.Find(x => x.table_id == (unitDatas.Find(x => x.EnCode == item.unit_id)?.Id ?? ""))?.cunitid ?? "",
["cvendorid"] = "",
["cvendorvid"] = "",
["dbizdate"] = nowStr,
["nnum"] = item.qty,
["pk_group"] = erpOrg.pk_group,
["pk_org"] = erpOrg.pk_org,
["pk_org_v"] = erpOrg.pk_org_v,
["csourcebillbid"] = item.erp_line_pk,
["csourcebillhid"] = wmsMaterialTransfer.erp_pk,
["vbatchcode"] = item.code_batch,
});
}
erpRequestData.Add("dtls", erpRequestDataDetails);
requestData.Add(erpRequestData);
BasFactoryConfig config = await db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
thirdWebapiRecord.name = "其它入库";
thirdWebapiRecord.method = "POST";
// thirdWebapiRecord.url = config.value+"uapws/rest/generalin/save";
thirdWebapiRecord.url = config.value + "uapws/rest/generalin/save";
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
thirdWebapiRecord.create_time = DateTime.Now;
await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
}
/// <summary> /// <summary>
/// 出入库策略启用、禁用状态修改 /// 出入库策略启用、禁用状态修改
/// </summary> /// </summary>

View File

@@ -1624,7 +1624,7 @@ namespace Tnb.WarehouseMgr
commonCreatePretaskInput.carry_code = wmsCarryH.carry_code; commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
commonCreatePretaskInput.task_type = ""; commonCreatePretaskInput.task_type = "";
commonCreatePretaskInput.biz_type = "FloorCallMaterial"; commonCreatePretaskInput.biz_type = "FloorCallMaterial";
commonCreatePretaskInput.source_id = ""; commonCreatePretaskInput.source_id = wmsCarryH.material_tranfer_billid;
commonCreatePretaskInput.require_code = ""; commonCreatePretaskInput.require_code = "";
commonCreatePretaskInput.require_id = prdMoTask.id; commonCreatePretaskInput.require_id = prdMoTask.id;
commonCreatePretaskInput.require_code = prdMoTask.mo_task_code; commonCreatePretaskInput.require_code = prdMoTask.mo_task_code;