| VueWebCoreApi/Controllers/ImportExcelController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| VueWebCoreApi/Controllers/KanBanManagerentController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| VueWebCoreApi/DLL/BLL/KanBanManagerentBLL.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| VueWebCoreApi/DLL/DAL/KanBanManagerentDAL.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| VueWebCoreApi/appsettings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
VueWebCoreApi/Controllers/ImportExcelController.cs
@@ -218,5 +218,31 @@ return mes; } #endregion #region[测似保存图片提交数据] /// <summary> /// 测似保存图片提交数据 /// </summary> /// <param name="imageBase64s">测似保存图片提交数据</param> /// <returns></returns> [Route(template: "UploadImages")] [HttpPost] [ApiExplorerSettings(IgnoreApi = true)] public async Task<IActionResult> UploadImages([FromBody] List<string> imageBase64s) { foreach (var imageBase64 in imageBase64s) { byte[] imageBytes = Convert.FromBase64String(imageBase64); string imagePath = Path.Combine("wwwroot/MouldRecordImage/", $"image_{Guid.NewGuid()}.png"); // 生成唯一的文件名 using (FileStream fs = new FileStream(imagePath, FileMode.Create)) { await fs.WriteAsync(imageBytes, 0, imageBytes.Length); } } return Ok("Images uploaded successfully."); } #endregion } } VueWebCoreApi/Controllers/KanBanManagerentController.cs
@@ -21,13 +21,12 @@ /// <summary> /// 车间看板,上生产信息 /// </summary> /// <param name="wkshopcode">车间编码</param> /// <returns></returns> [Route(template: "WorkShopProduceTopData")] [HttpGet] public JsonResult WorkShopProduceTopData(string wkshopcode) public JsonResult WorkShopProduceTopData() { mes = KanBanManagerentBLL.WorkShopProduceTopData(wkshopcode); mes = KanBanManagerentBLL.WorkShopProduceTopData(); return Json(mes); } #endregion @@ -36,13 +35,12 @@ /// <summary> /// 车间看板,下左近一周不良趋势 /// </summary> /// <param name="wkshopcode">车间编码</param> /// <returns></returns> [Route(template: "WorkShopProduceBottomLeftData")] [HttpGet] public JsonResult WorkShopProduceBottomLeftData(string wkshopcode) public JsonResult WorkShopProduceBottomLeftData() { mes = KanBanManagerentBLL.WorkShopProduceBottomLeftData(wkshopcode); mes = KanBanManagerentBLL.WorkShopProduceBottomLeftData(); return Json(mes); } #endregion @@ -51,13 +49,12 @@ /// <summary> /// 车间看板,下右近一月不良统计 /// </summary> /// <param name="wkshopcode">车间编码</param> /// <returns></returns> [Route(template: "WorkShopProduceBottomRightData")] [HttpGet] public JsonResult WorkShopProduceBottomRightData(string wkshopcode) public JsonResult WorkShopProduceBottomRightData() { mes = KanBanManagerentBLL.WorkShopProduceBottomRightData(wkshopcode); mes = KanBanManagerentBLL.WorkShopProduceBottomRightData(); return Json(mes); } #endregion @@ -67,13 +64,12 @@ /// <summary> /// 车间综合看板,左上生产订单 /// </summary> /// <param name="wkshopcode">车间编码字符串集</param> /// <returns></returns> [Route(template: "WorkShopCompreLeftTop")] [HttpGet] public JsonResult WorkShopCompreLeftTop(string wkshopcode) public JsonResult WorkShopCompreLeftTop() { mes = KanBanManagerentBLL.WorkShopCompreLeftTop(wkshopcode); mes = KanBanManagerentBLL.WorkShopCompreLeftTop(); return Json(mes); } #endregion @@ -105,5 +101,51 @@ return Json(mes); } #endregion #region[仓库看板,左上产品待入库列表] /// <summary> /// 仓库看板,左上产品待入库列表 /// </summary> /// <returns></returns> [Route(template: "WareHouseTopLeftData")] [HttpGet] public JsonResult WareHouseTopLeftData() { mes = KanBanManagerentBLL.WareHouseTopLeftData(); return Json(mes); } #endregion #region[仓库看板,左下产品待发货列表] /// <summary> /// 仓库看板,左下产品待发货列表 /// </summary> /// <returns></returns> [Route(template: "WareHouseTopBottomData")] [HttpGet] public JsonResult WareHouseTopBottomData() { mes = KanBanManagerentBLL.WareHouseTopBottomData(); return Json(mes); } #endregion #region[仓库看板,右即时库存] /// <summary> /// 仓库看板,右上成品库、半成品库top5库存排行 /// </summary> /// <returns></returns> [Route(template: "WareHouseRightTopData")] [HttpGet] public JsonResult WareHouseRightTopData() { mes = KanBanManagerentBLL.WareHouseRightTopData(); return Json(mes); } #endregion } } VueWebCoreApi/DLL/BLL/KanBanManagerentBLL.cs
@@ -10,31 +10,31 @@ public class KanBanManagerentBLL { #region[车间看板,上生产信息] public static ToMessage WorkShopProduceTopData(string wkshopcode) public static ToMessage WorkShopProduceTopData() { return KanBanManagerentDAL.WorkShopProduceTopData(wkshopcode); return KanBanManagerentDAL.WorkShopProduceTopData(); } #endregion #region[车间看板,下左近一周不良趋势] public static ToMessage WorkShopProduceBottomLeftData(string wkshopcode) public static ToMessage WorkShopProduceBottomLeftData() { return KanBanManagerentDAL.WorkShopProduceBottomLeftData(wkshopcode); return KanBanManagerentDAL.WorkShopProduceBottomLeftData(); } #endregion #region[车间看板,下右近一月不良统计] public static ToMessage WorkShopProduceBottomRightData(string wkshopcode) public static ToMessage WorkShopProduceBottomRightData() { return KanBanManagerentDAL.WorkShopProduceBottomRightData(wkshopcode); return KanBanManagerentDAL.WorkShopProduceBottomRightData(); } #endregion #region[车间综合看板,左上生产订单] public static ToMessage WorkShopCompreLeftTop(string wkshopcode) public static ToMessage WorkShopCompreLeftTop() { return KanBanManagerentDAL.WorkShopCompreLeftTop(wkshopcode); return KanBanManagerentDAL.WorkShopCompreLeftTop(); } #endregion @@ -51,5 +51,30 @@ return KanBanManagerentDAL.WorkShopCompreRightBottom(); } #endregion #region[仓库看板,左上产品待入库列表] public static ToMessage WareHouseTopLeftData() { return KanBanManagerentDAL.WareHouseTopLeftData(); } #endregion #region[仓库看板,左下产品待发货列表] public static ToMessage WareHouseTopBottomData() { return KanBanManagerentDAL.WareHouseTopBottomData(); } #endregion #region[仓库看板,右即时库存] public static ToMessage WareHouseRightTopData() { return KanBanManagerentDAL.WareHouseRightTopData(); } #endregion } } VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs
VueWebCoreApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -13,16 +13,13 @@ public static ToMessage mes = new ToMessage(); //定义全局返回信息对象 #region[车间看板,上生产信息] public static ToMessage WorkShopProduceTopData(string wkshopcode) public static ToMessage WorkShopProduceTopData() { string sql = ""; var dynamicParams = new DynamicParameters(); try { string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[] sql = @"select * from h_v_JLKanBan_WorkshopTop where wkshp_code in @wkshoplist"; dynamicParams.Add("@wkshoplist", wkshoplist); var data = DapperHelper.selectdata(sql, dynamicParams); sql = @"select * from h_v_JLKanBan_WorkshopTop"; var data = DapperHelper.selecttable(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = data; @@ -39,26 +36,17 @@ #endregion #region[车间看板,下左近一周不良趋势] public static ToMessage WorkShopProduceBottomLeftData(string wkshopcode) public static ToMessage WorkShopProduceBottomLeftData() { string sql = ""; Dictionary<object, object> dir = new Dictionary<object, object>(); try { //存储过程名(当前时间往前一周) string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[] sql = @"h_p_JLKanBan_WorkshopBottomLeft"; for (int i = 0; i < wkshoplist.Length; i++) { var dynamicParams = new DynamicParameters(); dynamicParams.Add("@wkshop_code", wkshoplist[i].ToString()); var dt = DapperHelper.selectProcedure(sql, dynamicParams); dir.Add(wkshoplist[i].ToString(), dt); } var data = DapperHelper.lissql(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = dir; mes.data = data; } catch (Exception e) { @@ -72,16 +60,13 @@ #endregion #region[车间看板,下右近一月不良统计] public static ToMessage WorkShopProduceBottomRightData(string wkshopcode) public static ToMessage WorkShopProduceBottomRightData() { string sql = ""; var dynamicParams = new DynamicParameters(); try { string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[] sql = @"select * from h_v_JLKanBan_WorkshopBottomRight where wkshp_code in @wkshoplist"; dynamicParams.Add("@wkshoplist", wkshoplist); var data = DapperHelper.selectdata(sql, dynamicParams); sql = @"select * from h_v_JLKanBan_WorkshopBottomRight"; var data = DapperHelper.selecttable(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = data; @@ -99,46 +84,18 @@ #region[车间综合看板,左上生产订单] public static ToMessage WorkShopCompreLeftTop(string wkshopcode) public static ToMessage WorkShopCompreLeftTop() { var sql = ""; var dynamicParams = new DynamicParameters(); Dictionary<object, object> dir = new Dictionary<object, object>(); Dictionary<object, object> dir0 = new Dictionary<object, object>(); Dictionary<object, object> dir1 = new Dictionary<object, object>(); try { string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[] sql = @"select * from h_v_JLKanBan_WorkShopCompreLeftTop"; var data = DapperHelper.selecttable(sql); sql = @"select * from h_v_JLKanBan_WorkShopCompreLeftCenter"; var data1 = DapperHelper.selecttable(sql); for (int i = 0; i < wkshoplist.Length; i++) { var top0 = data.AsEnumerable() .Where(row => row.Field<string>("wkshp_code") == wkshoplist[i].ToString()) // 添加查询条件 .Select(group => new { wkshp_code = group.Field<string>("wkshp_code"), plan_qty = group.Field<decimal>("plan_qty"), good_qty = group.Field<decimal>("good_qty") }).DefaultIfEmpty(new { wkshp_code = wkshoplist[i].ToString(), plan_qty = 0m, good_qty = 0m })//为空时指定默认值 .ToList(); dir0.Add(wkshoplist[i].ToString(), top0); var top1 = data1.AsEnumerable() .Where(row => row.Field<string>("wkshp_code") == wkshoplist[i].ToString()) // 添加查询条件 .Select(group => new { wkshp_code = group.Field<string>("wkshp_code"), plan_qty = group.Field<decimal>("plan_qty"), quantity = group.Field<decimal>("quantity") }).DefaultIfEmpty(new { wkshp_code = wkshoplist[i].ToString(), plan_qty = 0m, quantity = 0m })//为空时指定默认值 .ToList(); dir1.Add(wkshoplist[i].ToString(), top1); } dir.Add("LeftTop", dir0); dir.Add("LeftBottom", dir1); dir.Add("LeftTop", data); dir.Add("LeftBottom", data1); mes.code = "200"; mes.message = "查询成功!"; mes.data = dir; @@ -189,14 +146,31 @@ Dictionary<object, object> dir = new Dictionary<object, object>(); try { sql = @"select * from h_v_JLKanBan_WorkShopCompreRightBottom"; var data = DapperHelper.selecttable(sql); dir.Add("Y", data.Rows[0]["BaseQuantity"].ToString()); dir.Add("B", data.Rows[1]["BaseQuantity"].ToString()); dir.Add("C", data.Rows[2]["BaseQuantity"].ToString()); //存储过程名 sql = @"h_p_IFCLD_StockInventory"; var data = DapperHelper.lissql(sql); if (data.Rows.Count > 0) { // 使用Lambda表达式对qty列进行汇总,并通过type列分组 var groupedData = data.AsEnumerable() .GroupBy(row => row.Field<string>("FErpCls")) .Select(group => new { Type = group.Key, Qty = group.Sum(row => row.Field<decimal>("FCUUQty")) }).ToList(); mes.code = "200"; mes.message = "查询成功!"; mes.data = dir; mes.data = groupedData; } else { mes.code = "300"; mes.count = 0; mes.message = "暂无库存信息!"; mes.data = null; } } catch (Exception e) { @@ -208,5 +182,80 @@ return mes; } #endregion #region[仓库看板,左上产品待入库列表] public static ToMessage WareHouseTopLeftData() { string sql = ""; try { //获取仓库生产加工单待入库列表 sql = @"select * from h_v_MHKanBan_WareHouseTopLeft order by voucherdate"; var data = DapperHelper.selecttable(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = data; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.message = e.Message; mes.data = null; } return mes; } #endregion #region[仓库看板,左下产品待发货列表] public static ToMessage WareHouseTopBottomData() { string sql = ""; try { //获取仓库销售订单产品待发货列表 sql = @"select * from h_v_MHKanBan_WareHouseTopBottom order by voucherdate"; var data = DapperHelper.selecttable(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = data; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.message = e.Message; mes.data = null; } return mes; } #endregion #region[仓库看板,右即时库存] public static ToMessage WareHouseRightTopData() { string sql = ""; try { sql = @"h_p_IFCLD_SumStockInventory"; var data = DapperHelper.lissql(sql); mes.code = "200"; mes.message = "查询成功!"; mes.data = data; } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.message = e.Message; mes.data = null; } return mes; } #endregion } } VueWebCoreApi/appsettings.json
@@ -9,7 +9,7 @@ "AllowedHosts": "*", //服务器环境 "ConnectionStrings": { "DBServer": "Data Source=121.196.36.24,1533;Initial Catalog=vmes_JL;User ID=sa;Password=xkd@20230101;pooling=false", "DBServer": "Data Source=192.168.1.190;Initial Catalog=vmes;User ID=sa;Password=Xkd123456;pooling=false", //企业编码 "CompanyCode": "000", //企业名称 @@ -25,7 +25,7 @@ //session失效时间 "InProc": "240", //Excel导出模板配置IP "FileIP": "http://121.196.36.24:8021/", "FileIP": "http://192.168.1.190:8000/", //jwtkey "SigningKey": "Hello World" }