abp(net core)+easyui+efcore实现仓储管理系统——出库管理之四(五十三)
2023-09-11 14:14:12 时间
abp(net core)+easyui+efcore实现仓储管理系统目录
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI前端页面框架 (十八)
今天我们来创建出库单的控制器代码。
八 创建OutStockController继承自TPLMSControllerBase
1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击在领域层“ABP.TPLMS.Web.Mvc”项目中的Controller目录。 选择“添加” > “新建项…”。如下图。
2. 在弹出对话框“添加新项-ABP.TPLMS.Web.Mvc”中选择“控制器类”,然后在名称输入框中输入“OutStockController”,然后点击“添加”按钮。
3.在OutStockController.cs文件中输入如下代码,通过构造函数注入对应用服务的依赖。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Abp.Runtime.Validation;
using Abp.Web.Models;
using ABP.TPLMS.Controllers;
using ABP.TPLMS.Helpers;
using ABP.TPLMS.Models.InStock;
using ABP.TPLMS.OutStocks;
using ABP.TPLMS.OutStocks.Dto;
using Microsoft.AspNetCore.Mvc;
namespace ABP.TPLMS.Web.Controllers
{
public class OutStockController : TPLMSControllerBase
{
private readonly IOutStockOrderAppService _outOODAppService;
private readonly IOutStockOrderDetailAppService _outOODAppDetService;
private const int MAX_COUNT = 1000;
public OutStockController(IOutStockOrderAppService InSOAppService
, IOutStockOrderDetailAppService InSODAppService)
{
_outOODAppService = InSOAppService;
_outOODAppDetService = InSODAppService;
}
public IActionResult Index()
{
return View();
}
[DontWrapResult]
[HttpPost]
public string List()
{
var page = Request.Form["page"].ToString();
var size = Request.Form["rows"].ToString();
int pageIndex = page == null ? 1 : int.Parse(page);
int pageSize = size == null ? 20 : int.Parse(size);
PagedOutStockResultRequestDto paged = new PagedOutStockResultRequestDto();
paged.MaxResultCount = MAX_COUNT;
paged.SkipCount = ((pageIndex - 1) < 0 ? 0 : pageIndex - 1) * pageSize;
paged.BeginTime = DateTime.Now.AddMonths(-1);
paged.EndTime = DateTime.Now.AddDays(1);
var query = _outOODAppService.GetAll(paged).GetAwaiter().GetResult();
var isoList = query.Items;
int total = query.TotalCount;
var json = JsonEasyUI(isoList, total);
return json;
}
[DontWrapResult]
public string GetDetail(string no)
{
PagedOutStockDetailResultRequestDto paged = new PagedOutStockDetailResultRequestDto();
paged.MaxResultCount = MAX_COUNT;
paged.OutStockNo = no;
var outDetailList = _outOODAppDetService.GetAll(paged).GetAwaiter().GetResult().Items;
for (int i = 0; i < outDetailList.Count; i++)
{
outDetailList[i].SeqNo = i + 1;
}
var json = JsonEasyUI(outDetailList);
return json;
}
[HttpPost]
[DisableValidation]
public ActionResult Add(OutStockOrderDto iso)
{
string result = "NO";
try
{
PagedOutStockResultRequestDto condition = new PagedOutStockResultRequestDto();
condition.No = iso.No;
var outExists = _outOODAppService.GetAll(condition).GetAwaiter().GetResult();
if (outExists.TotalCount > 0)
{
return Content(result);
}
CreateUpdateOutStockOrderDto cuIso = ObjectMapper
.Map<CreateUpdateOutStockOrderDto>(iso);
// TODO: Add logic here
var obj = _outOODAppService.Create(cuIso);
result = "OK";
}
catch (Exception ex)
{
result = "NO";
}
return Content(result);
}
//[DontWrapResult]
[HttpPost]
[DisableValidation]
public string Update(OutStockOrderDto iso)
{
string result = "NO";
List<OutStockOrderDetailDto> list = new List<OutStockOrderDetailDto>();
try
{
string head = Request.Form["postdata"];
if (!string.IsNullOrEmpty(head))
{
//把json字符串转换成对象
iso = JsonHelper.Instance.Deserialize<OutStockOrderDto>(head);
}
list = GetDetailDtos();
if (iso == null)
{
return "没有表头!";
}
iso.OutStockOrderDetail = list;
result = _outOODAppService.Save(iso);
}
catch
{
}
if (result == "OK")
{
return "更新成功!";
}
else
return "更新失败!";
}
private List<OutStockOrderDetailDto> GetDetailDtos()
{
List<OutStockOrderDetailDto> list = new List<OutStockOrderDetailDto>();
string deleted = Request.Form["deleted"];
string inserted = Request.Form["inserted"];
string updated = Request.Form["updated"];
// TODO: Add update logic here
if (!string.IsNullOrEmpty(deleted))
{
//把json字符串转换成对象
List<OutStockOrderDetailDto> listDeleted = JsonHelper.Instance
.Deserialize<List<OutStockOrderDetailDto>>(deleted);
//TODO 下面就可以根据转换后的对象进行相应的操作了
if (listDeleted != null && listDeleted.Count > 0)
{
list.AddRange(listDeleted.ToArray());
}
}
if (!string.IsNullOrEmpty(inserted))
{
//把json字符串转换成对象
List<OutStockOrderDetailDto> listInserted = JsonHelper.Instance
.Deserialize<List<OutStockOrderDetailDto>>(inserted);
if (listInserted != null && listInserted.Count > 0)
{
list.AddRange(listInserted.ToArray());
}
}
if (!string.IsNullOrEmpty(updated))
{
//把json字符串转换成对象
List<OutStockOrderDetailDto> listUpdated = JsonHelper.Instance
.Deserialize<List<OutStockOrderDetailDto>>(updated);
if (listUpdated != null && listUpdated.Count > 0)
{
list.AddRange(listUpdated.ToArray());
}
}
return list;
}
[HttpPost]
[DisableValidation]
public ActionResult ImportInStockOrder(CargoModel isoder)
{
string result = "NO";
try
{
// TODO: 导入货物信息
result = _outOODAppService.ImportInStockDetail(isoder.Ids, isoder.No);
}
catch
{
}
return Content(result);
}
[HttpPost]
[DontWrapResult]
public ActionResult Delete(string ids)
{
string result = "NO";
try
{
// TODO: Add Delete logic here
bool flag = _outOODAppService.DeleteById(ids);
if (flag)
{
result = "OK";
}
}
catch
{
}
return Content(result);
}
}
}
相关文章
- .NET平台开源项目速览(5)深入使用与扩展SharpConfig组件
- 【原创】开源Math.NET基础数学类库使用(09)相关数论函数使用
- 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到Ubuntu 16.04
- .net core 启动域名及端口配置
- 问题-[WIN8.132位系统]安装Win8.1 遇到无法升级.NET Framework 3.5.1
- .NET开源Protobuf-net组件修炼手册
- ASP.NET购物车实现方法
- mvc.net分页查询案例——PagerExtension
- ASP.NET 解决session数据丢失的问题
- Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
- Asp.Net Web API 2第三课——.NET客户端调用Web API
- 【Asp.Net使用EasyUI】EasyUI combox实现联动
- Atitit ..Net Framework sdk 3.0 3.5 4.04.5 4.6 4.7 .net core版本新特性 v2 s22 1. 新特性来源于 down ms 官方网站1
- paip.vs2010 或.net 4.0安装出错解决大法.
- Spire.Office for .NET 8.1.4 Crack
- ASP.NET MVC - 样式和布局
- net start mysql 无法启动mysql解决方案之一【NET HELPMSG 3534】
- ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
- AC上百度网盘做了策略可以下载不能上传 但是网页访问不了出现NET:ERR_CERT_AUTHORITY_INVALID 错误
- ADO.NET入门教程(七) 谈谈Command对象高级应用
- VectorDraw.NET VS VectorDraw.OCX
- 【.Net实用方法总结】 整理并总结.NET 中的 System.IO.Pipelines(管道)
- net core HTTP Error 500.31 - Failed to load ASP.NET Core runtime HTTP Error 500.30