From b7f53ba61fbc1844d7b92ff852762b140d46ab54 Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期一, 23 六月 2025 19:58:16 +0800
Subject: [PATCH] 最新

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 172 insertions(+), 0 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
index 4203711..64d0815 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
@@ -1,15 +1,20 @@
 锘縰sing AutoMapper;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Excel;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
 using SqlSugar;
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
+using WIDESEA_Core.Utilities;
 using WIDESEA_DTO.Stock;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IRecordRepository;
@@ -17,6 +22,7 @@
 using WIDESEA_IStockRepository;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
+using WIDESEA_StockRepository;
 
 namespace WIDESEA_StockService
 {
@@ -181,5 +187,171 @@
             residueQuantity = needQuantity;
             return outStocks;
         }
+        /// <summary>
+        /// 鍒犻櫎鏁版嵁
+        /// </summary>
+        /// <param name="keys">涓婚敭鏁扮粍</param>
+        /// <returns></returns>
+        public virtual WebResponseContent DeleteData(object[] keys)
+        {
+            try
+            {
+
+                List<Dt_StockInfo> stockList = BaseDal.QureyDataByIds(keys);
+                
+                var stokd= stockList.Where(x=>x.StockStatus != (int)StockStatusEmun.缁勭洏鏆傚瓨).ToList();
+                if(stokd.Count > 0 )
+                {
+                    return WebResponseContent.Instance.Error("鍒犻櫎澶辫触锛佸彧鑳藉垹闄も�滅粍鐩樻殏瀛樷�濈殑淇℃伅");
+                }
+                foreach (var item in stockList)
+                {
+                    var stodet=_stockRepository.StockInfoDetailRepository.QueryFirst(x => x.StockId == item.Id);
+                    _stockRepository.StockInfoDetailRepository.DeleteData(stodet);
+                }
+                
+                if (typeof(Dt_StockInfodt).GetNavigatePro() == null)
+                    return BaseDal.DeleteDataByIds(keys) ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error();
+                else
+                {
+                    if (keys != null)
+                    {
+                        Type detailType = typeof(Dt_StockInfodt).GetDetailType();
+                        string name = typeof(Dt_StockInfodt).GetMainIdByDetail();
+                        List<object> dynamicDelKeys = new List<object>();
+
+                        for (int i = 0; i < keys.Length; i++)
+                        {
+                            dynamicDelKeys.Add(keys[i]);
+                        }
+                        ((SqlSugarClient)BaseDal.Db).BeginTran();
+
+                        if (dynamicDelKeys.Count > 0)
+                            BaseDal.Db.Deleteable<object>().AS(detailType.Name).Where($"{name} in (@id)", new { id = dynamicDelKeys.ToArray() }).ExecuteCommandHasChange();
+
+                        BaseDal.DeleteDataByIds(keys);
+
+                        ((SqlSugarClient)BaseDal.Db).CommitTran();
+
+                        return WebResponseContent.Instance.OK();
+                    }
+                    else
+                    {
+                        return WebResponseContent.Instance.Error("鍙傛暟閿欒");
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                ((SqlSugarClient)BaseDal.Db).RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+
+        //瀵煎嚭
+        public override WebResponseContent Export(PageDataOptions options)
+        {
+
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
+                IExporter exporter = new ExcelExporter();
+                //娣诲姞鏉′欢
+                string wheres = options.ValidatePageOptions(TProperties);
+                //鑾峰彇鎺掑簭瀛楁
+                Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
+
+                List<Dt_StockInfo> entities = BaseDal.QueryData(wheres, orderbyDic);
+                List<Dt_StockInfoDetail> detdata = _stockInfoDetail.QueryData();
+                List<Dt_StockInfodt> stolist= new List<Dt_StockInfodt>();
+                for (int i = 0; i < entities.Count; i++)
+                {
+                    Dt_StockInfoDetail dt_StockIndet = detdata.Where(x => x.StockId == entities[i].Id).FirstOrDefault();
+                    string MaterialTypet = "鍘熸潗鏂�";
+                    if (entities[i].MaterialType == (int)InventoryMaterialType.鎴愬搧)
+                    {
+                        MaterialTypet = "鎴愬搧";
+                    }
+                    else if(entities[i].MaterialType == (int)InventoryMaterialType.绌烘墭)
+                    {
+                        MaterialTypet = "绌烘墭";
+                    }
+
+                    string Wlstatust = "寰呮";
+                    if (entities[i].Wlstatus== (int)InventoryMaterialStatus.鍚堟牸)
+                    {
+                        Wlstatust = "鍚堟牸";
+                    }
+                    else if (entities[i].Wlstatus == (int)InventoryMaterialStatus.涓嶅悎鏍�)
+                    {
+                        Wlstatust = "涓嶅悎鏍�";
+                    }
+                    else if (entities[i].Wlstatus == (int)InventoryMaterialStatus.绌烘墭)
+                    {
+                        Wlstatust = "绌烘墭";
+                    }
+                    else if (entities[i].Wlstatus == (int)InventoryMaterialStatus.閫�璐�)
+                    {
+                        Wlstatust = "閫�璐�";
+                    }
+                    else if (entities[i].Wlstatus == (int)InventoryMaterialStatus.杩斿伐)
+                    {
+                        Wlstatust = "杩斿伐";
+                    }
+                    else if (entities[i].Wlstatus == (int)InventoryMaterialStatus.鐗归噰)
+                    {
+                        Wlstatust = "鐗归噰";
+                    }
+
+                    Dt_StockInfodt dt_ = new Dt_StockInfodt()
+                    {
+                        PalletCode = entities[i].PalletCode,
+                        MaterialType = MaterialTypet,
+                        LocationCode = entities[i].LocationCode,
+                        Wlstatus = Wlstatust,
+                        MaterielCode = dt_StockIndet?.MaterielCode ?? "", // 濡傛灉 dt_StockIndet 涓� null锛屼娇鐢ㄧ┖瀛楃涓蹭綔涓洪粯璁ゅ��
+                        MaterielName = dt_StockIndet?.MaterielName ?? "",
+                        OrderNo = dt_StockIndet?.OrderNo ?? "",
+                        BatchNo = dt_StockIndet?.BatchNo ?? "",
+                        SerialNumber = dt_StockIndet?.SerialNumber ?? "",
+                        StockQuantity = dt_StockIndet?.StockQuantity ?? 0, // 鍋囪 StockQuantity 鏄暟鍊肩被鍨嬶紝浣跨敤 0 浣滀负榛樿鍊�
+                        BatchNoName = dt_StockIndet?.BatchNoName ?? "",
+                        CreateDate = dt_StockIndet?.CreateDate ?? DateTime.MinValue, // 鍋囪 CreateDate 鏄棩鏈熺被鍨嬶紝浣跨敤榛樿鏃堕棿
+                        Remark = entities[i].Remark,
+                    };
+                    stolist.Add(dt_);
+                }
+
+                byte[] data = exporter.ExportAsByteArray(stolist).Result;
+
+                string fileName = "1.xlsx";
+
+                FileHelper.WriteFile(savePath, fileName, data);
+
+                content = WebResponseContent.Instance.OK(data: savePath + "\\" + fileName);
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;
+        }
+
+        public class Dt_StockInfodt: Dt_StockInfoDetail
+        {
+            [ExporterHeader(DisplayName = "鎵樼洏缂栧彿")]
+            public string PalletCode { get; set; }
+
+            [ExporterHeader(DisplayName = "绫诲瀷")]
+            public string MaterialType { get; set; }
+
+            [ExporterHeader(DisplayName = "璐т綅缂栧彿")]
+            public string LocationCode { get; set; }
+
+            [ExporterHeader(DisplayName = "鐗╂枡鐘舵��")]
+            public string Wlstatus { get; set; }
+        }
     }
 }

--
Gitblit v1.9.3