| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 将接口返回的数据插入到数据库中 |
| | | /// </summary> |
| | | /// <param name="palletBinding">栈板绑定信息</param> |
| | | /// <returns>插入记录数</returns> |
| | | public int InsertPalletBindingData(MesPalletBinding palletBinding) |
| | | /// 将接口返回的数据插入到数据库中 |
| | | /// </summary> |
| | | /// <param name="palletBinding">栈板绑定信息</param> |
| | | /// <returns>插入记录数</returns> |
| | | public int InsertPalletBindingData(MesPalletBinding palletBinding) |
| | | { |
| | | var response = GetTransferListByStackCodeAsync(palletBinding).Result; |
| | | |
| | | if (response?.Data?.SnList == null || |
| | | string.IsNullOrEmpty(response.Data.StackCode)) |
| | | { |
| | | var response = GetTransferListByStackCodeAsync(palletBinding).Result; |
| | | |
| | | if (response?.Data?.SnList == null || string.IsNullOrEmpty(response.Data.StackCode)) |
| | | { |
| | | return 0; |
| | | } |
| | | |
| | | int insertedCount = 0; |
| | | |
| | | try |
| | | { |
| | | // 准备要插入的数据列表 |
| | | var bindingList = new List<MesPalletBinding1>(); |
| | | |
| | | foreach (var snItem in response.Data.SnList) |
| | | { |
| | | var binding = new MesPalletBinding1 |
| | | { |
| | | Stackcode = response.Data.StackCode, |
| | | SnNo = snItem.SnNo, |
| | | TicketNo = snItem.TickeNo, |
| | | Mediumboxcode = snItem.MediumBoxCode, |
| | | CreateDate = DateTime.Now, |
| | | IsInbound = 0 // 默认未入库 |
| | | }; |
| | | |
| | | bindingList.Add(binding); |
| | | } |
| | | |
| | | // 批量插入数据到数据库 |
| | | if (bindingList.Any()) |
| | | { |
| | | // 批量插入新数据 |
| | | var insertedIds = Db.Insertable(bindingList).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand(); |
| | | insertedCount = insertedIds; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"插入栈板绑定数据失败: {ex.Message}"); |
| | | } |
| | | |
| | | return insertedCount; |
| | | return 0; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检查栈板码在数据库中是否存在 |
| | | /// </summary> |
| | | /// <param name="stackCode">栈板码</param> |
| | | /// <returns>存在返回true,否则返回false</returns> |
| | | public bool CheckStackCodeExists(string stackCode) |
| | | int insertedCount = 0; |
| | | |
| | | try |
| | | { |
| | | try |
| | | // 准备要插入的数据列表 |
| | | var bindingList = new List<MesPalletBinding1>(); |
| | | var bindingLogList = new List<MesPalletBindingLog>(); |
| | | |
| | | foreach (var snItem in response.Data.SnList) |
| | | { |
| | | if (string.IsNullOrEmpty(stackCode)) |
| | | var binding = new MesPalletBinding1 |
| | | { |
| | | return false; |
| | | } |
| | | Stackcode = response.Data.StackCode, |
| | | SnNo = snItem.SnNo, |
| | | TicketNo = snItem.TickeNo, |
| | | Mediumboxcode = snItem.MediumBoxCode, |
| | | CreateDate = DateTime.Now, |
| | | IsInbound = 0 // 默认未入库 |
| | | }; |
| | | |
| | | // 查询MES_PALLET_BINDING表中是否存在该栈板码的数据 |
| | | var exists = Db.Queryable<MesPalletBinding1>() |
| | | .Any(x => x.Stackcode == stackCode); |
| | | bindingList.Add(binding); |
| | | |
| | | return exists; |
| | | var bindingLog = new MesPalletBindingLog |
| | | { |
| | | StackCode = response.Data.StackCode, |
| | | SnNo = snItem.SnNo, |
| | | TicketNo = snItem.TickeNo, |
| | | MediumBoxCode = snItem.MediumBoxCode, |
| | | CreateDate = DateTime.Now, |
| | | OperationType = "0" // 默认未入库 |
| | | }; |
| | | |
| | | bindingLogList.Add(bindingLog); |
| | | } |
| | | catch (Exception ex) |
| | | |
| | | // 批量插入数据到数据库 |
| | | if (bindingList.Any()) |
| | | { |
| | | throw new Exception($"检查栈板码是否存在时出错: {ex.Message}"); |
| | | // 批量插入新数据 |
| | | var insertedIds = Db.Insertable(bindingList).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand(); |
| | | |
| | | var insertedIds1 = Db.Insertable(bindingLogList).PageSize(1) |
| | | .IgnoreColumnsNull() |
| | | .ExecuteCommand(); |
| | | insertedCount = insertedIds + insertedIds1; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 将接口返回的数据插入到数据库中(带存在性检查) |
| | | /// </summary> |
| | | /// <param name="palletBinding">栈板绑定信息</param> |
| | | /// <returns>操作结果</returns> |
| | | public async Task<int> InsertPalletBindingDataWithCheckAsync(MesPalletBinding palletBinding) |
| | | catch (Exception ex) |
| | | { |
| | | // 先检查栈板码是否存在 |
| | | bool exists = CheckStackCodeExists(palletBinding.StackCode); |
| | | return exists ? 1 : |
| | | // 调用原来的插入方法 |
| | | InsertPalletBindingData(palletBinding); |
| | | throw new Exception($"插入栈板绑定数据失败: {ex.Message}"); |
| | | } |
| | | |
| | | return insertedCount; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检查栈板码在数据库中是否存在 |
| | | /// </summary> |
| | | /// <param name="stackCode">栈板码</param> |
| | | /// <returns>存在返回true,否则返回false</returns> |
| | | public bool CheckStackCodeExists(string stackCode) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(stackCode)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | // 查询MES_PALLET_BINDING表中是否存在该栈板码的数据 |
| | | var exists = Db.Queryable<MesPalletBinding1>() |
| | | .Any(x => x.Stackcode == stackCode); |
| | | |
| | | return exists; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"检查栈板码是否存在时出错: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 将接口返回的数据插入到数据库中(带存在性检查) |
| | | /// </summary> |
| | | /// <param name="palletBinding">栈板绑定信息</param> |
| | | /// <returns>操作结果</returns> |
| | | public async Task<int> InsertPalletBindingDataWithCheckAsync( |
| | | MesPalletBinding palletBinding) |
| | | { |
| | | // 先检查栈板码是否存在 |
| | | bool exists = CheckStackCodeExists(palletBinding.StackCode); |
| | | return exists |
| | | ? 1 |
| | | : |
| | | // 调用原来的插入方法 |
| | | InsertPalletBindingData(palletBinding); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据栈板码删除旧数据 |
| | | /// </summary> |