diff --git a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs index 9a4b6193..bf221193 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckTaskService.cs @@ -468,135 +468,133 @@ namespace Tnb.QcMgr //}, db); #endregion - //载具需要在中储仓和暂存仓才需要暂控 - List prdReports = await db.Queryable().LeftJoin((a, b) => a.material_box_code == b.carry_code).LeftJoin((a, b, c) => b.location_id == c.id).LeftJoin((a, b, c, d) => c.wh_id == d.id).Where((a, b, c, d) => a.mo_task_id == prdMoTask.id && a.create_time >= CheckTaskInput.startEndTime[0].TimeStampToDateTime() && a.create_time <= CheckTaskInput.startEndTime[1].TimeStampToDateTime() && (c.wh_id == WmsWareHouseConst.WAREHOUSE_ZC_ID || c.wh_id == WmsWareHouseConst.WAREHOUSE_ZCC_ID)).ToListAsync(); - if (prdReports != null) + List prdReports= await db.Queryable().Where(x => x.mo_task_id == prdMoTask.id && x.create_time >= CheckTaskInput.startEndTime[0].TimeStampToDateTime() && x.create_time <= CheckTaskInput.startEndTime[1].TimeStampToDateTime()).ToListAsync(); + //List carryCodes = await db.Queryable().Where(x => x.mo_task_id == prdMoTask.id && x.create_time >= CheckTaskInput.startEndTime[0].TimeStampToDateTime() && x.create_time <= CheckTaskInput.startEndTime[1].TimeStampToDateTime()).Select(x => x.material_box_code).Distinct().ToListAsync(); + var carryCodes= prdReports.Select(r=>r.material_box_code).Distinct().ToList(); + if (carryCodes != null && carryCodes.Count > 0) { - var carryCodes = prdReports.Select(r => r.material_box_code).Distinct().ToList(); - if (carryCodes != null && carryCodes.Count > 0) + await db.Updateable() + .SetColumns(x => x.is_check == ((int)EnumCheckConclusion.暂控).ToString()) + .SetColumns(x => x.carry_status == "6")//把料架状态改为退料状态,会自动触发把料架上的子载具从二楼暂存仓退回一楼中储仓任务 + .Where(x => carryCodes.Contains(x.carry_code)) + .ExecuteCommandAsync(); + + #region 记录被暂控的载具信息 + //var qcCheckExecCarrys = new List(); + //foreach(var carryCode in carryCodes) + //{ + // var wmsCarryH = await db.Queryable().Where(r => r.carry_code == carryCode).FirstAsync(); + // if (wmsCarryH == null) + // continue; + + // WmsCarryCode wmsCarryCode = await db.Queryable().FirstAsync(x => x.carry_id == wmsCarryH.id); + // BasLocation basLocation = await db.Queryable().Where(r => r.location_code == wmsCarryH.location_code).FirstAsync(); + // WmsCarryMat wmsCarryMat = await db.Queryable().Where(r => r.carry_id == wmsCarryH.id).FirstAsync(); + + // var qcCheckExecCarry = new QcCheckExecCarry() + // { + // qc_check_exec_id = QcCheckExecH.id, + // carry_id = wmsCarryH.id, + // carry_code = wmsCarryH.carry_code, + // warehouse_id = basLocation != null ? basLocation.wh_id : "", + // qty = wmsCarryCode != null ? wmsCarryCode.codeqty.ToString() : "", + // status = wmsCarryH.is_check, + // location_id = basLocation != null ? basLocation.id : "", + // location_code = basLocation != null ? basLocation.location_code : "", + // material_id= wmsCarryMat?.material_id, + // create_id = _userManager.UserId, + // create_time = DateTime.Now + // }; + // qcCheckExecCarrys.Add(qcCheckExecCarry); + //} + //_ = await db.Insertable(qcCheckExecCarrys).ExecuteCommandAsync(); + #endregion + + #region 记录暂控处理单主/子表信息 + + if(carryCodes!=null && carryCodes.Count > 0) { - await db.Updateable() - .SetColumns(x => x.is_check == ((int)EnumCheckConclusion.暂控).ToString()) - .SetColumns(x => x.carry_status == "6")//把料架状态改为退料状态,会自动触发把料架上的子载具从二楼暂存仓退回一楼中储仓任务 - .Where(x => carryCodes.Contains(x.carry_code)) - .ExecuteCommandAsync(); - #region 记录被暂控的载具信息 - //var qcCheckExecCarrys = new List(); - //foreach(var carryCode in carryCodes) - //{ - // var wmsCarryH = await db.Queryable().Where(r => r.carry_code == carryCode).FirstAsync(); - // if (wmsCarryH == null) - // continue; - - // WmsCarryCode wmsCarryCode = await db.Queryable().FirstAsync(x => x.carry_id == wmsCarryH.id); - // BasLocation basLocation = await db.Queryable().Where(r => r.location_code == wmsCarryH.location_code).FirstAsync(); - // WmsCarryMat wmsCarryMat = await db.Queryable().Where(r => r.carry_id == wmsCarryH.id).FirstAsync(); - - // var qcCheckExecCarry = new QcCheckExecCarry() - // { - // qc_check_exec_id = QcCheckExecH.id, - // carry_id = wmsCarryH.id, - // carry_code = wmsCarryH.carry_code, - // warehouse_id = basLocation != null ? basLocation.wh_id : "", - // qty = wmsCarryCode != null ? wmsCarryCode.codeqty.ToString() : "", - // status = wmsCarryH.is_check, - // location_id = basLocation != null ? basLocation.id : "", - // location_code = basLocation != null ? basLocation.location_code : "", - // material_id= wmsCarryMat?.material_id, - // create_id = _userManager.UserId, - // create_time = DateTime.Now - // }; - // qcCheckExecCarrys.Add(qcCheckExecCarry); - //} - //_ = await db.Insertable(qcCheckExecCarrys).ExecuteCommandAsync(); - #endregion - - #region 记录暂控处理单主/子表信息 - - if (carryCodes != null && carryCodes.Count > 0) + var basMaterial = await db.Queryable().Where(r => r.id == prdMoTask.material_id).FirstAsync(); + string outWHid = ""; string inWHid = ""; + if (basMaterial.category_id.Contains("DGJCJ") || basMaterial.category_id.Contains("ZSJ")) { + outWHid = WmsWareHouseConst.WAREHOUSE_ZC_ID; + inWHid = "中储不合格品仓id"; + } + else if (basMaterial.category_id.Contains("CGJCJ")) + { + outWHid = WmsWareHouseConst.WAREHOUSE_HCC_ID; + inWHid = "长管不合格品仓id"; + } - var basMaterial = await db.Queryable().Where(r => r.id == prdMoTask.material_id).FirstAsync(); - string outWHid = ""; string inWHid = ""; - if (basMaterial.category_id.Contains("DGJCJ") || basMaterial.category_id.Contains("ZSJ")) - { - outWHid = WmsWareHouseConst.WAREHOUSE_ZC_ID; - inWHid = "中储不合格品仓id"; - } - else if (basMaterial.category_id.Contains("CGJCJ")) - { - outWHid = WmsWareHouseConst.WAREHOUSE_HCC_ID; - inWHid = "长管不合格品仓id"; - } + var carryIds = await db.Queryable().Where(r => carryCodes.Contains(r.carry_code)).Select(r => r.id).ToListAsync(); + var wmsCarryCodes = await db.Queryable().Where(r => carryIds.Contains(r.carry_id) && r.material_id == QcCheckExecH.materialid).ToListAsync(); + var codeQty = wmsCarryCodes == null ? 0 : wmsCarryCodes.Sum(r => r.codeqty); + var qcTempControlH = new QcTempControlH() + { + id = SnowflakeIdHelper.NextId(), + bill_code = await _billRullService.GetBillNumber(CodeTemplateConst.QCCONTROLTEMP_CODE), + source_code = QcCheckExecH.bill_code, + pro_task_code = QcCheckExecH.mo_task_code, + out_warehouse_id = outWHid, + in_warehouse_id = inWHid, + material_id = QcCheckExecH.materialid, + material_code = basMaterial.code, + control_lx_qty = carryCodes.Count.ToString(), + control_qty = codeQty.ToString(), + result = "暂控", + loger_id = _userManager.UserId, + confirmer_id = "", + status = ((int)EnumTempControlStatus.待确认).ToString(), + called_box_qty = "0", + called_qty = "0", + leave_call_box_qty = carryCodes.Count.ToString(), + leave_call_qty = codeQty.ToString(), + create_id = _userManager.UserId, + create_time = DateTime.Now, + }; - var carryIds = await db.Queryable().Where(r => carryCodes.Contains(r.carry_code)).Select(r => r.id).ToListAsync(); - var wmsCarryCodes = await db.Queryable().Where(r => carryIds.Contains(r.carry_id) && r.material_id == QcCheckExecH.materialid).ToListAsync(); - var codeQty = wmsCarryCodes == null ? 0 : wmsCarryCodes.Sum(r => r.codeqty); - var qcTempControlH = new QcTempControlH() + await db.Insertable(qcTempControlH).ExecuteCommandAsync(); + + var qcTempControlDs = new List(); + foreach (var carryCode in carryCodes) + { + var wmsCarryH = await db.Queryable().Where(r => r.carry_code == carryCode).FirstAsync(); + if (wmsCarryH == null) + continue; + + WmsCarryCode wmsCarryCode = await db.Queryable().FirstAsync(x => x.carry_id == wmsCarryH.id); + BasLocation basLocation = await db.Queryable().Where(r => r.location_code == wmsCarryH.location_code).FirstAsync(); + if (basLocation == null) + throw Oops.Bah($"未找到编号为{wmsCarryH.location_code}的库位"); + WmsCarryMat wmsCarryMat = await db.Queryable().Where(r => r.carry_id == wmsCarryH.id).FirstAsync(); + BasWarehouse basWarehouse = await db.Queryable().Where(r => r.id == basLocation.wh_id).FirstAsync(); + var _prdReports = prdReports.Where(r => r.material_box_code == carryCode).First(); + var qcTempConD = new QcTempControlD() { - id = SnowflakeIdHelper.NextId(), - bill_code = await _billRullService.GetBillNumber(CodeTemplateConst.QCCONTROLTEMP_CODE), - source_code = QcCheckExecH.bill_code, - pro_task_code = QcCheckExecH.mo_task_code, - out_warehouse_id = outWHid, - in_warehouse_id = inWHid, - material_id = QcCheckExecH.materialid, - material_code = basMaterial.code, - control_lx_qty = carryCodes.Count.ToString(), - control_qty = codeQty.ToString(), - result = "暂控", - loger_id = _userManager.UserId, - confirmer_id = "", - status = ((int)EnumTempControlStatus.待确认).ToString(), - called_box_qty = "0", - called_qty = "0", - leave_call_box_qty = carryCodes.Count.ToString(), - leave_call_qty = codeQty.ToString(), + bill_id = qcTempControlH.id, + carry_id = wmsCarryH.id, + carry_code = carryCode, + warehouse_id = basLocation?.wh_id, + warehouse_code = basWarehouse.whcode, + location_code = basLocation?.location_code, + location_id = basLocation?.id, + qty = wmsCarryCode?.codeqty.ToString(), + submiter = _prdReports == null ? null : _prdReports.create_id, + maker_id = "", create_id = _userManager.UserId, create_time = DateTime.Now, + check_status = "暂控", + call_status = "未呼叫" }; - - await db.Insertable(qcTempControlH).ExecuteCommandAsync(); - - var qcTempControlDs = new List(); - foreach (var carryCode in carryCodes) - { - var wmsCarryH = await db.Queryable().Where(r => r.carry_code == carryCode).FirstAsync(); - if (wmsCarryH == null) - continue; - - WmsCarryCode wmsCarryCode = await db.Queryable().FirstAsync(x => x.carry_id == wmsCarryH.id); - BasLocation basLocation = await db.Queryable().Where(r => r.location_code == wmsCarryH.location_code).FirstAsync(); - if (basLocation == null) - throw Oops.Bah($"未找到编号为{wmsCarryH.location_code}的库位"); - WmsCarryMat wmsCarryMat = await db.Queryable().Where(r => r.carry_id == wmsCarryH.id).FirstAsync(); - BasWarehouse basWarehouse = await db.Queryable().Where(r => r.id == basLocation.wh_id).FirstAsync(); - var _prdReports = prdReports.Where(r => r.material_box_code == carryCode).First(); - var qcTempConD = new QcTempControlD() - { - bill_id = qcTempControlH.id, - carry_id = wmsCarryH.id, - carry_code = carryCode, - warehouse_id = basLocation?.wh_id, - warehouse_code = basWarehouse.whcode, - location_code = basLocation?.location_code, - location_id = basLocation?.id, - qty = wmsCarryCode?.codeqty.ToString(), - submiter = _prdReports == null ? null : _prdReports.create_id, - maker_id = "", - create_id = _userManager.UserId, - create_time = DateTime.Now, - check_status = "暂控", - call_status = "未呼叫" - }; - qcTempControlDs.Add(qcTempConD); - } - await db.Insertable(qcTempControlDs).ExecuteCommandAsync(); + qcTempControlDs.Add(qcTempConD); } - #endregion + await db.Insertable(qcTempControlDs).ExecuteCommandAsync(); } + #endregion } + } else { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs index ce9f179b..eacc7c05 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs @@ -140,21 +140,6 @@ namespace Tnb.WarehouseMgr } wmsMaterialSignH.biz_type = wmsDistaskH.biz_type; - //已记录的物料签收记录表 - var wmsMaterialSignDs_ed = await _db.Queryable().Where(r => r.source_id == wmsDistaskH.source_id).ToListAsync(); - if (wmsMaterialSignDs_ed != null && wmsMaterialSignDs_ed.Count > 0) - { - //已下发数量 - var wmsRawmatOutstockD = await _db.Queryable().Where(r => r.id == wmsDistaskH.source_id).FirstAsync(); - var signed_qty = wmsMaterialSignDs_ed.Sum(r => r.sign_qty);//已签收数量 - var nowSign_qty = input.details.Sum(r => r.sign_qty);//当前需要签收数量 - //总签收数量不能大于总的下发数量 - if (signed_qty + nowSign_qty > wmsRawmatOutstockD.actual_outstock_qty) - { - throw new AppFriendlyException($"已签收数量{signed_qty},当前签收数量{nowSign_qty},总签收数量{signed_qty + nowSign_qty}不能大于已下发数量{wmsRawmatOutstockD.actual_outstock_qty}", 500); - } - } - // wms其它出库记录主表 OtherOutstockAddDetailInput otherOutstockAddDetailInput = new OtherOutstockAddDetailInput(); switch (wmsDistaskH.biz_type) @@ -212,7 +197,6 @@ namespace Tnb.WarehouseMgr wmsMaterialSignD.code_batch = wmsCarryCode.code_batch; wmsMaterialSignD.qty = wmsCarryCode.codeqty; wmsMaterialSignD.sign_qty = item.sign_qty; - wmsMaterialSignD.source_id = wmsDistaskH.source_id; wmsMaterialSignDs.Add(wmsMaterialSignD); wmsCarryCode.codeqty = wmsCarryCode.codeqty - item.sign_qty; diff --git a/apihost/Tnb.API.Entry/Configurations/Cache.json b/apihost/Tnb.API.Entry/Configurations/Cache.json index 52e8c235..7a6d1350 100644 --- a/apihost/Tnb.API.Entry/Configurations/Cache.json +++ b/apihost/Tnb.API.Entry/Configurations/Cache.json @@ -2,19 +2,19 @@ "Cache": { "CacheType": "RedisCache", //MemoryCache "ip": "127.0.0.1", - "port": 6378, + "port": 6379, "password": "05jWEoJa8v", "RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0" }, "Redis": { "ip": "127.0.0.1", - "port": 6378, + "port": 6379, "password": "05jWEoJa8v", "RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0" }, "Redis2": { "ip": "127.0.0.1", - "port": 6378, + "port": 6379, "password": "05jWEoJa8v", "RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=1" } diff --git a/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json b/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json index 2e6e4525..01aa1fd4 100644 --- a/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json +++ b/apihost/Tnb.API.Entry/Configurations/ConnectionStrings.json @@ -4,13 +4,13 @@ "DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite; //"Host": "192.168.11.109", "Host": "127.0.0.1", - "Port": "5431", + "Port": "5432", //"DBName": "tianyi_db", //"UserName": "postgres", //"Password": "pass@word123", - "DBName": "tianyi_cwk2", - "UserName": "totong", - "Password": "IPANyxGSKxIXg0dBM", + "DBName": "tianyi", + "UserName": "postgres", + "Password": "pass@word123", //SqlServer //"DefaultConnection": "server={0},{1};database={2};uid={3};pwd={4};MultipleActiveResultSets=true" //Kdbndp