@ -1,110 +1,109 @@
using System ;
using System.Collections.Generic ;
using System.Globalization ;
using Michelin_WebAPI.Data ;
using Michelin_WebAPI.Entities ;
using Michelin_WebAPI.Repositories.Interface ;
using Michelin_WebAPI.TaskServices.Interface ;
using Microsoft.EntityFrameworkCore.Storage ;
using System.Linq ;
using AutoMapper ;
using EFCoreDatabase.Data ;
using EFCoreDatabase.Entities ;
using EFCoreDatabase.Repositories.Interface ;
using Microsoft.Extensions.Logging ;
using Michelin_WebAPI.Helper ;
using NewWMS WebAPI.Helper;
using Microsoft.EntityFrameworkCore ;
using Newtonsoft.Json ;
using NewWMSWebAPI.Helper ;
using NewWMSWebAPI.TaskService.Interface ;
namespace Michelin_WebAPI.TaskServices.Implement
{
public class ManagePreOut : IManagePreOut
{
private readonly MichelinDBContext _ context ;
private readonly IMapper _ mapper ;
private readonly DmDBContext _ context ;
private readonly IManageRepository _ manageRepository ;
private readonly IWhCellRepository _ whCellRepository ;
private readonly IStorageRepository _ storageRepository ;
private readonly IManageHelper _ manageHelper ;
private readonly ILogger < ManagePreOut > _l ogger ;
public ManagePreOut ( IManageRepository manageRepository , IWhCellRepository whCellRepository , IStorageRepository storageRepository , IManageHelper manageHelper , MichelinDBContext context , IMapper mapper , ILogger < ManagePreOut > logger )
public ManagePreOut ( IManageRepository manageRepository , IWhCellRepository whCellRepository , IStorageRepository storageRepository , IManageHelper manageHelper , DmDBContext context , ILogger < ManagePreOut > logger )
{
_ manageRepository = manageRepository ;
_ whCellRepository = whCellRepository ;
_ storageRepository = storageRepository ;
_ manageHelper = manageHelper ;
_ context = context ;
_ mapper = mapper ;
_l ogger = logger ;
}
public bool FabricateListCreate ( List < MANAGE_MAIN > manageMains , out string sResult )
{
//检查当前的manageMains中的雪花ID是否为同一个
//public bool FabricateListCreate(List<MANAGE_MAIN> manageMains, out string sResult)
//{
// //检查当前的manageMains中的雪花ID是否为同一个
var snowFlakeList = manageMains . Select ( x = > x . BUCKET_GROUP ) . Distinct ( ) ;
//tlt20231211:当前雪花ID有问题:需要进行重新赋值,将所有的雪花ID重新赋值
if ( snowFlakeList . Any ( ) )
{
_l ogger . LogInformation ( $"1.ManageMains with old bucket_group number :{JsonConvert.SerializeObject(snowFlakeList)}" ) ;
// var snowFlakeList = manageMains.Select(x => x.BUCKET_GROUP).Distinct();
// //tlt20231211:当前雪花ID有问题:需要进行重新赋值,将所有的雪花ID重新赋值
// if (snowFlakeList.Any())
// {
// _logger.LogInformation( $"1.ManageMains with old bucket_group number :{JsonConvert.SerializeObject(snowFlakeList)}");
var bucketGroup = SnowFlake . SnowflakeIDcreator . nextId ( ) . ToString ( ) ;
// var bucketGroup = SnowFlake.SnowflakeIDcreator.nextId().ToString();
foreach ( var manageMain in manageMains )
{
manageMain . BUCKET_GROUP = bucketGroup ;
}
_l ogger . LogInformation ( $"2.Because the bucket_group number is not same, Modified the Bucket_Group number :{bucketGroup};ManageMains :{JsonConvert.SerializeObject(manageMains.Select(x => new { x.STOCK_BARCODE, x.BUCKET_GROUP }).Distinct())} " ) ;
// foreach (var manageMain in manageMains)
// {
// manageMain.BUCKET_GROUP = bucketGroup;
// }
// _logger.LogInformation( $"2.Because the bucket_group number is not same, Modified the Bucket_Group number :{bucketGroup};ManageMains :{JsonConvert.SerializeObject(manageMains.Select(x => new { x.STOCK_BARCODE, x.BUCKET_GROUP }).Distinct())} ");
}
// }
bool bResult = true ;
sResult = string . Empty ;
var transaction = _ context . Database . BeginTransaction ( ) ;
try
{
// bool bResult = true;
// sResult = string.Empty;
// var transaction = _context.Database.BeginTransaction();
// try
// {
foreach ( var manageMain in manageMains )
{
var bucketMain =
_ storageRepository . GetStorageMainByBucket ( manageMain . STOCK_BARCODE ) ;
var bucketLists = _ storageRepository . GetStorageLists ( bucketMain . STORAGE_ID ) ;
var lstManageList = new List < MANAGE_LIST > ( ) ;
//根据autoMapper映射变量信息
lstManageList . AddRange ( bucketLists . Select ( storageList = > _ mapper . Map < MANAGE_LIST > ( storageList ) ) ) ;
//tlt20230717:设置GOODS_PROPERTY8为本次出库桶数量
foreach ( var manageList in lstManageList )
{
manageList . GOODS_PROPERTY8 = manageMains . Count . ToString ( ) ;
}
bResult = ManageCreate ( manageMain , lstManageList , false , true , false , out sResult ) ;
if ( ! bResult )
break ;
// foreach (var manageMain in manageMains)
// {
// var bucketMain =
// _storageRepository.GetStorageMainByBucket(manageMain.STOCK_BARCODE);
// var bucketLists = _storageRepository.GetStorageLists(bucketMain.STORAGE_ID);
// var lstManageList = new List<MANAGE_LIST>();
// //根据autoMapper映射变量信息
// lstManageList.AddRange(bucketLists.Select(storageList => _mapper.Map<MANAGE_LIST>(storageList)));
// //tlt20230717:设置GOODS_PROPERTY8为本次出库桶数量
// foreach (var manageList in lstManageList)
// {
// manageList.GOODS_PROPERTY8 = manageMains.Count.ToString();
// }
// bResult = ManageCreate(manageMain, lstManageList, false, true, false, out sResult);
// if (!bResult)
// break;
}
}
catch ( Exception ex )
{
bResult = false ;
Console . WriteLine ( ex . Message ) ;
sResult = ex . Message ;
_l ogger . LogError ( $"FabricateListCreate Exception:{ex.Message}" ) ;
}
finally
{
if ( bResult )
{
transaction . Commit ( ) ;
}
else
{
transaction . Rollback ( ) ;
}
}
return bResult ;
}
// }
// }
// catch (Exception ex)
// {
// bResult = false;
// Console.WriteLine(ex.Message);
// sResult = ex.Message;
// _logger.LogError( $"FabricateListCreate Exception:{ex.Message}");
// }
// finally
// {
// if (bResult)
// {
// transaction.Commit();
// }
// else
// {
// transaction.Rollback();
// }
// }
// return bResult;
//}
public bool ManageCreate ( MANAGE_MAIN mMANAGE_MAIN ,
@ -228,38 +227,19 @@ namespace Michelin_WebAPI.TaskServices.Implement
mManageMain . MANAGE_LEVEL = string . Empty ;
mManageMain . MANAGE_REMARK = string . Empty ;
//tlt20220629:新属性添加
mManageMain . WEIGHT_PALLET = sStorageMain . WEIGHT_PALLET ;
mManageMain . PG_CODE = sStorageMain . PG_CODE ;
mManageMain . TRANSACTION_NUMBER = sStorageMain . TRANSACTION_NUMBER ;
mManageMain . BUCKET_NUMBER = sStorageMain . BUCKET_NUMBER ;
mManageMain . BUCKET_GROUP = sStorageMain . BUCKET_GROUP ;
mManageMain . OperationRequestID = sStorageMain . OperationRequestID ;
mManageMain . OperationToExecuteID = sStorageMain . OperationToExecuteID ;
mManageMain . VirtualNameMachinePalletizer = sStorageMain . VirtualNameMachinePalletizer ;
mManageMain . MFDCode = sStorageMain . MFDCode ;
mManageMain . MATIND = sStorageMain . MATIND ;
mManageMain . NIP = sStorageMain . NIP ;
mManageMain . IMP = sStorageMain . IMP ;
mManageMain . ItemIdentification = sStorageMain . ItemIdentification ;
mManageMain . ItemTraceability = sStorageMain . ItemTraceability ;
mManageMain . ItemHdvDate = sStorageMain . ItemHdvDate ;
mManageMain . ItemHdvTime = sStorageMain . ItemHdvTime ;
mManageMain . ItemFabricationDate = sStorageMain . ItemFabricationDate ;
mManageMain . ItemFabricationTime = sStorageMain . ItemFabricationTime ;
//添加list
foreach ( STORAGE_LIST mSTORAGE_LIST in tempStorageList )
{
//根据映射关系添加信息
var mManageList = _ mapper . Map < MANAGE_LIST > ( mSTORAGE_LIST ) ;
////添加list
//foreach (STORAGE_LIST mSTORAGE_LIST in tempStorageList)
//{
// //根据映射关系添加信息
// var mManageList = _mapper.Map<MANAGE_LIST>(mSTORAGE_LIST);
////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////
lstManageList . Add ( mManageList ) ;
// lstManageList.Add(mManageList);
}
//}
//根据终止节点下移库任务
bResult = _ manageHelper . ManageMoveTaskCreate ( mManageMain ,