abp(net core)+easyui+efcore实现仓储管理系统——出库管理之二(五十)
abp(net core)+easyui+efcore实现仓储管理系统目录
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI前端页面框架 (十八)
最近工作有点忙,已经有几个月没有更新了,计划在年前会把出库单管理写完。明年计划升级到Net Core 3.1或是net 5,具体看有没有空闲时间了。这就是最近的两个计划,不过有时候计划赶不上变化。
在上一篇文章中我们创建了出库单的实体类,并使用CodeFirst功能创建了数据库表,接下我们来创建一些有关与出库单有关的DTO类与查询分页类。
四、定义应用服务接口需要用到的DTO类
为了在进行查询出库单表头,我们需要创建, PagedOutStockResultRequestDto类,用来将查询条件数据传递到基础设施层.
1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击“ABP.TPLMS.Application”项目,在弹出菜单中选择“添加” > “新建文件夹”,并重命名为“OutStocks”
2. 使用鼠标右键单击我们刚才创建的“OutStocks”文件夹,在弹出菜单中选择“添加” > “新建文件夹”,并重命名为“Dto”。
3.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 PagedOutStockResultRequestDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.OutStocks.Dto
{ public class PagedOutStockResultRequestDto : PagedResultRequestDto
{ public string Keyword { get; set; }
public string InStockNo { get; set; }
public DateTime BeginTime { get; set; } DateTime m_EndTime; /// <summary>
/// 查询截止日期,如果当前时间小于100年前,就给一个默认日期(明天)
/// </summary>
public DateTime EndTime { get { if (m_EndTime < DateTime.Now.AddYears(-100)) return DateTime.Now.AddDays(1); else return m_EndTime; }
set
{
m_EndTime = value; }
} public string OwnerName { get; set; } public string No { get; set; }
}
}
4.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 PagedOutStockDetailResultRequestDto,然后选择“添加”。此类根据入库单单号与出库单单号查询出库单的明细数据。代码如下。
using Abp.Application.Services.Dto;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.OutStocks.Dto
{ public class PagedOutStockDetailResultRequestDto : PagedResultRequestDto
{ public string Keyword { get; set; } public string InStockNo { get; set; } public string OutStockNo { get; set; } }
}
5.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 OutStockOrderDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text; namespace ABP.TPLMS.OutStocks.Dto
{ [AutoMapFrom(typeof(OutStockOrder))]
public class OutStockOrderDto : EntityDto<int>
{ public string No { get; set; } /// <summary>
/// 客户名称
/// </summary>
public string CustomerName { get; set; } /// <summary>
/// 车牌号
/// </summary>
public string VehicleNo { get; set; } /// <summary>
/// 客户代码
/// </summary>
public string CustomerCode { get; set; } /// <summary>
/// 收货人代码
/// </summary>
public string ConsigneeCode { get; set; } /// <summary>
/// 收货人
/// </summary>
public string Consignee { get; set; } /// <summary>
/// 收货人社会信用代码
/// </summary>
public string ConsigneeSCCD { get; set; } /// <summary>
/// 托运人,发货人
/// </summary>
public string Shipper { get; set; } /// <summary>
/// 托运人,发货人代码
/// </summary>
public string ShipperCode { get; set; } /// <summary>
/// 托运人,发货人社会信用代码
/// </summary>
public string ShipperSCCD { get; set; } /// <summary>
/// 通知人
/// </summary>
public string Notify { get; set; } /// <summary>
/// 通知人代码
/// </summary>
public string NotifyCode { get; set; } /// <summary>
/// 通知人社会信用代码
/// </summary>
public string NotifySCCD { get; set; } /// <summary>
/// 送货单号
/// </summary>
public string DeliveryNo { get; set; } /// <summary>
/// 仓库号
/// </summary>
public string WarehouseNo { get; set; } /// <summary>
/// 货主
/// </summary> [StringLength(MaxLength)]
public string OwnerName { get; set; } public decimal Gwt { get; set; }
public decimal Nwt { get; set; }
public int PackageQty { get; set; } /// <summary>
/// 理货时间
/// </summary>
public string TallyTime { get; set; } /// <summary>
/// 理货员
/// </summary> public string TallyClerk { get; set; }
public string Oper { get; set; } public int Status { get; set; }
public string OwnerCode { get; set; } /// <summary>
/// 预计出库时间
/// </summary>
public string PreOutStockTime { get; set; } /// <summary>
/// 审核人
/// </summary>
public string Checker { get; set; }
public string CheckTime { get; set; } public string Remark { get; set; } public DateTime CreationTime { get; set; }
public string LastUpdateTime { get; set; } public string LastOper { get; set; } public List<OutStockOrderDetailDto> OutStockOrderDetail { get; set; } }
}
6.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 CreateUpdateOutStockOrderDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text; namespace ABP.TPLMS.OutStocks.Dto
{ [AutoMapTo(typeof(OutStockOrder))] public class CreateUpdateOutStockOrderDto : EntityDto<int>
{ public const int MaxLength = 255; [StringLength(50)] [Required] public string No { get; set; } /// <summary>
/// 客户名称
/// </summary> [StringLength(MaxLength)] public string CustomerName { get; set; } /// <summary>
/// 车牌号
/// </summary> public string VehicleNo { get; set; } /// <summary>
/// 客户代码
/// </summary>
[StringLength(50)] public string CustomerCode { get; set; } /// <summary>
/// 收货人代码
/// </summary>
[Required]
public string ConsigneeCode { get; set; } /// <summary>
/// 收货人
/// </summary>
[Required]
public string Consignee { get; set; } /// <summary>
/// 收货人社会信用代码
/// </summary>
public string ConsigneeSCCD { get; set; } /// <summary>
/// 托运人,发货人
/// </summary>
[Required]
public string Shipper { get; set; } /// <summary>
/// 托运人,发货人代码
/// </summary>
[Required]
public string ShipperCode { get; set; } /// <summary>
/// 托运人,发货人社会信用代码
/// </summary>
public string ShipperSCCD { get; set; } /// <summary>
/// 通知人
/// </summary>
public string Notify { get; set; } /// <summary>
/// 通知人代码
/// </summary>
public string NotifyCode { get; set; } /// <summary>
/// 通知人社会信用代码
/// </summary>
public string NotifySCCD { get; set; } /// <summary>
/// 送货单号
/// </summary>
public string DeliveryNo { get; set; } /// <summary>
/// 仓库号
/// </summary>
public string WarehouseNo { get; set; } /// <summary>
/// 货主
/// </summary>
[StringLength(MaxLength)]
[Required]
public string OwnerName { get; set; } public decimal Gwt { get; set; }
public decimal Nwt { get; set; }
public int PackageQty { get; set; } /// <summary>
/// 理货时间
/// </summary>
[StringLength(20)]
public string TallyTime { get; set; } /// <summary>
/// 理货员
/// </summary> [StringLength(50)]
public string TallyClerk { get; set; } [StringLength(50)]
public string Oper { get; set; }
public int Status { get; set; } [StringLength(50)]
public string OwnerCode { get; set; } /// <summary>
/// 预计出库时间
/// </summary>
[StringLength(20)] public string PreOutStockTime { get; set; } /// <summary>
/// 审核人
/// </summary>
[StringLength(50)] public string Checker { get; set; }
[StringLength(20)] public string CheckTime { get; set; }
[StringLength(1000)] public string Remark { get; set; }
public DateTime CreationTime { get; set; } [StringLength(20)]
public string LastUpdateTime { get; set; } [StringLength(50)] public string LastOper { get; set; } public List<CreateUpdateInStockOrderDetailDto> InStockOrderDetail { get; set; } } }
7. 重复上面的第3,4,5步,我们来创建OutStockDetailDto与CreateUpdateOutStockDetailDto。
7.1 OutStockDetailDto
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using Abp.Domain.Entities;
using Abp.Domain.Entities.Auditing;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace ABP.TPLMS.OutStocks.Dto
{
[AutoMapFrom(typeof(OutStockOrderDetail))]
public class OutStockOrderDetailDto : EntityDto<int>
{
public int SupplierId { get; set; }
public string CargoCode { get; set; }
public string HSCode { get; set; }
public string CargoName { get; set; }
public string Spcf { get; set; }
public string Unit { get; set; }
/// <summary>
/// 目的国
/// </summary>
public string DestCountry { get; set; }
/// <summary>
/// 原产国
/// </summary>
public string Country { get; set; }
public string Brand { get; set; }
public string Curr { get; set; }
public string Package { get; set; }
public decimal Length { get; set; }
public decimal Width { get; set; }
public decimal Height { get; set; }
public decimal Vol { get; set; }
public decimal Price { get; set; }
public decimal TotalAmt { get; set; }
public decimal GrossWt { get; set; }
public decimal NetWt { get; set; }
public DateTime CreationTime { get; set; }
public string InStockNo { get; set; }
public int InStockOrderDetailId { get; set; }
public decimal Qty { get; set; }
public decimal LawfQty { get; set; }
public decimal SecdLawfQty { get; set; }
public string LawfUnit { get; set; }
public string SecdLawfUnit { get; set; }
public string Batch { get; set; }
public string Loc { get; set; }
}
}
7.2 CreateUpdateOutStockDetailDto
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using Abp.Domain.Entities;
using Abp.Domain.Entities.Auditing;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace ABP.TPLMS.OutStocks.Dto
{
[AutoMapTo(typeof(OutStockOrderDetail))]
public class CreateUpdateOutStockOrderDetailDto : EntityDto<int>
{
public const int MaxLength = 255;
public int SupplierId { get; set; }
[MaxLength(50)]
public string CargoCode { get; set; }
[MaxLength(10)]
public string HSCode { get; set; }
[MaxLength(MaxLength)]
public string CargoName { get; set; }
[MaxLength(MaxLength)]
public string Spcf { get; set; }
[MaxLength(20)]
public string Unit { get; set; }
/// <summary>
/// 目的国
/// </summary>
[MaxLength(20)]
public string DestCountry { get; set; }
/// <summary>
/// 原产国
/// </summary>
[MaxLength(20)]
public string Country { get; set; }
[MaxLength(50)]
public string Brand { get; set; }
[MaxLength(20)]
public string Curr { get; set; }
[MaxLength(20)]
public string Package { get; set; }
public decimal Length { get; set; }
public decimal Width { get; set; }
public decimal Height { get; set; }
public decimal Vol { get; set; }
public decimal Price { get; set; }
public decimal TotalAmt { get; set; }
public decimal GrossWt { get; set; }
public decimal NetWt { get; set; }
public DateTime CreationTime { get; set; }
[MaxLength(20)]
public string InStockNo { get; set; }
public int InStockOrderDetailId { get; set; }
public decimal Qty { get; set; }
public decimal LawfQty { get; set; }
public decimal SecdLawfQty { get; set; }
[MaxLength(20)]
public string LawfUnit { get; set; }
[MaxLength(20)]
public string SecdLawfUnit { get; set; }
[MaxLength(20)]
public string Batch { get; set; }
public string Loc { get; set; }
}
}
abp(net core)+easyui+efcore实现仓储管理系统——出库管理之二(五十)的更多相关文章
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之三(五十一)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之三(五十二)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之四(五十三)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之五(五十四)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之六(五十五)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- Abp(net core)+easyui+efcore实现仓储管理系统——出库管理之七(五十六)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- Abp(net core)+easyui+efcore实现仓储管理系统——出库管理之八(五十七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之九(四十五)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
随机推荐
- 【HttpRunner v3.x】笔记 ——3. 录制生成测试用例
在正式手动编写case之前,我们可以先来熟悉下httprunner的录制生成用例功能. 用postman的童鞋都知道,里面有个功能可以将接口转换成代码,可以直接copy过来使用,提升case编写效率. ...
- three.js尝试(一)模拟演唱会效果
工作闲暇之余,偶然翻到了Three.js的官网,立刻被它酷炫的案例给惊艳到了,当即下定决心要试验摸索一番,于是看demo,尝试,踩坑,解决问题,终于搞定了,一个模拟演唱会场景. 主角围绕一个钢管在舞动 ...
- vue3.0 加载json的“另类”方法(非ajax)
问题 加载json一定要用ajax的方式吗? 最近学习vue3.0,在实现一个功能的时候发现一个问题-- 写代码的时候,需要的json太长.太多,和代码放在一起太混乱.看代码总有翻来翻去,又没有&qu ...
- [01] C#网络编程的最佳实践
网络框架的选择 C++语言里面有asio和libuv等网络库, 可以方便的进行各种高效编程. 但是C#里面, 情况不太一样, C#自带的网络API有多种. 例如: Socket TcpStream(同 ...
- CSS3 RGBA 属性高级用法
这个属性的兼容问题比较简单,IE8已经支持这个属性,IE6和IE7也可以通过hack支持.RGBA和CSS2里的RBG属性差不多,只是RGBA属性多了一个透明度的定义,CSS3标准里对RGBA属性的解 ...
- PHP的七个数组指针函数
1. PHP的七个数组指针函数 函数 描述 reset() 将一个数组的内部指针重置到首位,并返回第一个元素的值 end() 将一个数组的内部指针移动到数组的最后一个元素所在的位置,并返回最后一个元素 ...
- 常见重构技巧 - 5种方式去除多余的if else
常见重构技巧 - 去除多余的if else 最为常见的是代码中使用很多的if/else,或者switch/case:如何重构呢?方法特别多,本文带你学习其中的技巧. 常见重构技巧 - 去除多余的if ...
- netty之handler read
有时候会有一系列的处理in的handler,使用fireChannelRead处理传递 转载自https://blog.csdn.net/u011702633/article/details/8205 ...
- win10 系统出现“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。”
公司无法访问共享 \192.168.7.101.win+R 输入gpedit.msc2.计算机配置-管理模板–网络-lanman 工作站-找到"启用不安全的来宾登录"选择 已启用. ...
- kubernetes部署Percona XtraDB Cluster集群
PXC介绍 全称percona-xtradb-cluster,提供了MySQL高可用的一种实现方法.PXC集群以节点组成(推荐至少3节点,便于故障恢复),每个节点都是基于常规的 MySQL Serve ...