@@ -1220,7 +1220,8 @@ namespace Tnb.WarehouseMgr
Logger . LogInformation ( $@"【上升降机】更新料架 {target.rackcode} 在二楼配送的目标工位 {targetWorkstation}" ) ;
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 ( ) ;
}
else if ( target . note = = "下升降机" )
@@ -2474,6 +2475,7 @@ namespace Tnb.WarehouseMgr
[HttpPost]
public async Task TaskComplate ( TaskCompleUpInput input )
{
var db = _db . CopyNew ( ) ;
try
{
@@ -2629,99 +2631,13 @@ namespace Tnb.WarehouseMgr
work_station = ""
} ) . Where ( r = > r . id = = dt . carry_id ) . ExecuteCommandAsync ( ) ;
await QTRK2BIP ( dt , db ) ;
// require_code是任务单
//string mo_task_code = dt.require_code;
}
else if ( dt . biz_type = = "erp_qtrk" )
{
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 ( ) ;
await QTRK2BIP ( dt , db ) ;
}
#endregion
@@ -2763,6 +2679,106 @@ namespace Tnb.WarehouseMgr
_ = 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>